File Coverage

blib/lib/Cfn/Resource/AWS/IoT/TopicRule.pm
Criterion Covered Total %
statement 176 176 100.0
branch n/a
condition n/a
subroutine 60 60 100.0
pod 0 2 0.0
total 236 238 99.1


line stmt bran cond sub pod time code
1             # AWS::IoT::TopicRule generated from spec 18.4.0
2 3     3   2244 use Moose::Util::TypeConstraints;
  3         10  
  3         32  
3              
4             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule',
5             from 'HashRef',
6             via { Cfn::Resource::Properties::AWS::IoT::TopicRule->new( %$_ ) };
7              
8             package Cfn::Resource::AWS::IoT::TopicRule {
9 3     3   6936 use Moose;
  3         8  
  3         24  
10             extends 'Cfn::Resource';
11             has Properties => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule', is => 'rw', coerce => 1);
12            
13             sub AttributeList {
14 1     1 0 5 [ 'Arn' ]
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              
23             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyVariant',
24             as 'Cfn::Value';
25              
26             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyVariant',
27             from 'HashRef',
28             via {
29             if (my $f = Cfn::TypeLibrary::try_function($_)) {
30             return $f
31             } else {
32             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::AssetPropertyVariant->new( %$_ );
33             }
34             };
35              
36             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::AssetPropertyVariant {
37 3     3   21600 use Moose;
  3         7  
  3         16  
38 3     3   18988 use MooseX::StrictConstructor;
  3         9  
  3         318  
39             extends 'Cfn::Value::TypedValue';
40            
41             has BooleanValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
42             has DoubleValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
43             has IntegerValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
44             has StringValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
45             }
46              
47             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyTimestamp',
48             as 'Cfn::Value';
49              
50             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyTimestamp',
51             from 'HashRef',
52             via {
53             if (my $f = Cfn::TypeLibrary::try_function($_)) {
54             return $f
55             } else {
56             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::AssetPropertyTimestamp->new( %$_ );
57             }
58             };
59              
60             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::AssetPropertyTimestamp {
61 3     3   10625 use Moose;
  3         7  
  3         20  
62 3     3   19014 use MooseX::StrictConstructor;
  3         10  
  3         15  
63             extends 'Cfn::Value::TypedValue';
64            
65             has OffsetInNanos => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
66             has TimeInSeconds => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
67             }
68              
69             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SigV4Authorization',
70             as 'Cfn::Value';
71              
72             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SigV4Authorization',
73             from 'HashRef',
74             via {
75             if (my $f = Cfn::TypeLibrary::try_function($_)) {
76             return $f
77             } else {
78             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::SigV4Authorization->new( %$_ );
79             }
80             };
81              
82             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::SigV4Authorization {
83 3     3   9767 use Moose;
  3         12  
  3         17  
84 3     3   19351 use MooseX::StrictConstructor;
  3         7  
  3         20  
85             extends 'Cfn::Value::TypedValue';
86            
87             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
88             has ServiceName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
89             has SigningRegion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
90             }
91             subtype 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyValue',
92             as 'Cfn::Value',
93             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
94             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
95              
96             coerce 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyValue',
97             from 'HashRef',
98             via {
99             if (my $f = Cfn::TypeLibrary::try_function($_)) {
100             return $f
101             } else {
102             die 'Only accepts functions';
103             }
104             },
105             from 'ArrayRef',
106             via {
107             Cfn::Value::Array->new(Value => [
108             map {
109             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyValue')->coerce($_)
110             } @$_
111             ]);
112             };
113              
114             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyValue',
115             as 'Cfn::Value';
116              
117             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyValue',
118             from 'HashRef',
119             via {
120             if (my $f = Cfn::TypeLibrary::try_function($_)) {
121             return $f
122             } else {
123             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::AssetPropertyValue->new( %$_ );
124             }
125             };
126              
127             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::AssetPropertyValue {
128 3     3   10488 use Moose;
  3         6  
  3         18  
129 3     3   19495 use MooseX::StrictConstructor;
  3         9  
  3         16  
130             extends 'Cfn::Value::TypedValue';
131            
132             has Quality => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
133             has Timestamp => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyTimestamp', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
134             has Value => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyVariant', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
135             }
136              
137             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::PutItemInput',
138             as 'Cfn::Value';
139              
140             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::PutItemInput',
141             from 'HashRef',
142             via {
143             if (my $f = Cfn::TypeLibrary::try_function($_)) {
144             return $f
145             } else {
146             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::PutItemInput->new( %$_ );
147             }
148             };
149              
150             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::PutItemInput {
151 3     3   9746 use Moose;
  3         16  
  3         21  
152 3     3   19170 use MooseX::StrictConstructor;
  3         9  
  3         25  
153             extends 'Cfn::Value::TypedValue';
154            
155             has TableName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
156             }
157             subtype 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::PutAssetPropertyValueEntry',
158             as 'Cfn::Value',
159             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
160             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
161              
162             coerce 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::PutAssetPropertyValueEntry',
163             from 'HashRef',
164             via {
165             if (my $f = Cfn::TypeLibrary::try_function($_)) {
166             return $f
167             } else {
168             die 'Only accepts functions';
169             }
170             },
171             from 'ArrayRef',
172             via {
173             Cfn::Value::Array->new(Value => [
174             map {
175             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::IoT::TopicRule::PutAssetPropertyValueEntry')->coerce($_)
176             } @$_
177             ]);
178             };
179              
180             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::PutAssetPropertyValueEntry',
181             as 'Cfn::Value';
182              
183             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::PutAssetPropertyValueEntry',
184             from 'HashRef',
185             via {
186             if (my $f = Cfn::TypeLibrary::try_function($_)) {
187             return $f
188             } else {
189             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::PutAssetPropertyValueEntry->new( %$_ );
190             }
191             };
192              
193             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::PutAssetPropertyValueEntry {
194 3     3   10237 use Moose;
  3         8  
  3         16  
195 3     3   19199 use MooseX::StrictConstructor;
  3         8  
  3         19  
196             extends 'Cfn::Value::TypedValue';
197            
198             has AssetId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
199             has EntryId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
200             has PropertyAlias => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
201             has PropertyId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
202             has PropertyValues => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::AssetPropertyValue', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
203             }
204              
205             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::HttpAuthorization',
206             as 'Cfn::Value';
207              
208             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::HttpAuthorization',
209             from 'HashRef',
210             via {
211             if (my $f = Cfn::TypeLibrary::try_function($_)) {
212             return $f
213             } else {
214             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::HttpAuthorization->new( %$_ );
215             }
216             };
217              
218             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::HttpAuthorization {
219 3     3   9845 use Moose;
  3         8  
  3         42  
220 3     3   19087 use MooseX::StrictConstructor;
  3         12  
  3         17  
221             extends 'Cfn::Value::TypedValue';
222            
223             has Sigv4 => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SigV4Authorization', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
224             }
225             subtype 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::HttpActionHeader',
226             as 'Cfn::Value',
227             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
228             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
229              
230             coerce 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::HttpActionHeader',
231             from 'HashRef',
232             via {
233             if (my $f = Cfn::TypeLibrary::try_function($_)) {
234             return $f
235             } else {
236             die 'Only accepts functions';
237             }
238             },
239             from 'ArrayRef',
240             via {
241             Cfn::Value::Array->new(Value => [
242             map {
243             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::IoT::TopicRule::HttpActionHeader')->coerce($_)
244             } @$_
245             ]);
246             };
247              
248             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::HttpActionHeader',
249             as 'Cfn::Value';
250              
251             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::HttpActionHeader',
252             from 'HashRef',
253             via {
254             if (my $f = Cfn::TypeLibrary::try_function($_)) {
255             return $f
256             } else {
257             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::HttpActionHeader->new( %$_ );
258             }
259             };
260              
261             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::HttpActionHeader {
262 3     3   10212 use Moose;
  3         8  
  3         17  
263 3     3   19147 use MooseX::StrictConstructor;
  3         11  
  3         16  
264             extends 'Cfn::Value::TypedValue';
265            
266             has Key => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
267             has Value => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
268             }
269              
270             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::StepFunctionsAction',
271             as 'Cfn::Value';
272              
273             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::StepFunctionsAction',
274             from 'HashRef',
275             via {
276             if (my $f = Cfn::TypeLibrary::try_function($_)) {
277             return $f
278             } else {
279             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::StepFunctionsAction->new( %$_ );
280             }
281             };
282              
283             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::StepFunctionsAction {
284 3     3   9657 use Moose;
  3         17  
  3         20  
285 3     3   19949 use MooseX::StrictConstructor;
  3         7  
  3         18  
286             extends 'Cfn::Value::TypedValue';
287            
288             has ExecutionNamePrefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
289             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
290             has StateMachineName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
291             }
292              
293             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SqsAction',
294             as 'Cfn::Value';
295              
296             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SqsAction',
297             from 'HashRef',
298             via {
299             if (my $f = Cfn::TypeLibrary::try_function($_)) {
300             return $f
301             } else {
302             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::SqsAction->new( %$_ );
303             }
304             };
305              
306             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::SqsAction {
307 3     3   10466 use Moose;
  3         9  
  3         18  
308 3     3   19693 use MooseX::StrictConstructor;
  3         10  
  3         18  
309             extends 'Cfn::Value::TypedValue';
310            
311             has QueueUrl => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
312             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
313             has UseBase64 => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
314             }
315              
316             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SnsAction',
317             as 'Cfn::Value';
318              
319             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SnsAction',
320             from 'HashRef',
321             via {
322             if (my $f = Cfn::TypeLibrary::try_function($_)) {
323             return $f
324             } else {
325             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::SnsAction->new( %$_ );
326             }
327             };
328              
329             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::SnsAction {
330 3     3   10242 use Moose;
  3         8  
  3         19  
331 3     3   19610 use MooseX::StrictConstructor;
  3         7  
  3         19  
332             extends 'Cfn::Value::TypedValue';
333            
334             has MessageFormat => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
335             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
336             has TargetArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
337             }
338              
339             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::S3Action',
340             as 'Cfn::Value';
341              
342             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::S3Action',
343             from 'HashRef',
344             via {
345             if (my $f = Cfn::TypeLibrary::try_function($_)) {
346             return $f
347             } else {
348             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::S3Action->new( %$_ );
349             }
350             };
351              
352             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::S3Action {
353 3     3   10187 use Moose;
  3         11  
  3         17  
354 3     3   19465 use MooseX::StrictConstructor;
  3         10  
  3         19  
355             extends 'Cfn::Value::TypedValue';
356            
357             has BucketName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
358             has Key => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
359             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
360             }
361              
362             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::RepublishAction',
363             as 'Cfn::Value';
364              
365             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::RepublishAction',
366             from 'HashRef',
367             via {
368             if (my $f = Cfn::TypeLibrary::try_function($_)) {
369             return $f
370             } else {
371             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::RepublishAction->new( %$_ );
372             }
373             };
374              
375             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::RepublishAction {
376 3     3   9960 use Moose;
  3         8  
  3         15  
377 3     3   19590 use MooseX::StrictConstructor;
  3         9  
  3         16  
378             extends 'Cfn::Value::TypedValue';
379            
380             has Qos => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
381             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
382             has Topic => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
383             }
384              
385             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::LambdaAction',
386             as 'Cfn::Value';
387              
388             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::LambdaAction',
389             from 'HashRef',
390             via {
391             if (my $f = Cfn::TypeLibrary::try_function($_)) {
392             return $f
393             } else {
394             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::LambdaAction->new( %$_ );
395             }
396             };
397              
398             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::LambdaAction {
399 3     3   9950 use Moose;
  3         8  
  3         15  
400 3     3   19399 use MooseX::StrictConstructor;
  3         7  
  3         19  
401             extends 'Cfn::Value::TypedValue';
402            
403             has FunctionArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
404             }
405              
406             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::KinesisAction',
407             as 'Cfn::Value';
408              
409             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::KinesisAction',
410             from 'HashRef',
411             via {
412             if (my $f = Cfn::TypeLibrary::try_function($_)) {
413             return $f
414             } else {
415             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::KinesisAction->new( %$_ );
416             }
417             };
418              
419             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::KinesisAction {
420 3     3   9969 use Moose;
  3         8  
  3         18  
421 3     3   19390 use MooseX::StrictConstructor;
  3         13  
  3         19  
422             extends 'Cfn::Value::TypedValue';
423            
424             has PartitionKey => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
425             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
426             has StreamName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
427             }
428              
429             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotSiteWiseAction',
430             as 'Cfn::Value';
431              
432             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotSiteWiseAction',
433             from 'HashRef',
434             via {
435             if (my $f = Cfn::TypeLibrary::try_function($_)) {
436             return $f
437             } else {
438             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::IotSiteWiseAction->new( %$_ );
439             }
440             };
441              
442             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::IotSiteWiseAction {
443 3     3   9870 use Moose;
  3         9  
  3         19  
444 3     3   19460 use MooseX::StrictConstructor;
  3         9  
  3         15  
445             extends 'Cfn::Value::TypedValue';
446            
447             has PutAssetPropertyValueEntries => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::PutAssetPropertyValueEntry', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
448             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
449             }
450              
451             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotEventsAction',
452             as 'Cfn::Value';
453              
454             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotEventsAction',
455             from 'HashRef',
456             via {
457             if (my $f = Cfn::TypeLibrary::try_function($_)) {
458             return $f
459             } else {
460             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::IotEventsAction->new( %$_ );
461             }
462             };
463              
464             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::IotEventsAction {
465 3     3   9792 use Moose;
  3         10  
  3         15  
466 3     3   19040 use MooseX::StrictConstructor;
  3         12  
  3         19  
467             extends 'Cfn::Value::TypedValue';
468            
469             has InputName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
470             has MessageId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
471             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
472             }
473              
474             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotAnalyticsAction',
475             as 'Cfn::Value';
476              
477             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotAnalyticsAction',
478             from 'HashRef',
479             via {
480             if (my $f = Cfn::TypeLibrary::try_function($_)) {
481             return $f
482             } else {
483             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::IotAnalyticsAction->new( %$_ );
484             }
485             };
486              
487             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::IotAnalyticsAction {
488 3     3   9717 use Moose;
  3         7  
  3         18  
489 3     3   18873 use MooseX::StrictConstructor;
  3         7  
  3         16  
490             extends 'Cfn::Value::TypedValue';
491            
492             has ChannelName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
493             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
494             }
495              
496             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::HttpAction',
497             as 'Cfn::Value';
498              
499             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::HttpAction',
500             from 'HashRef',
501             via {
502             if (my $f = Cfn::TypeLibrary::try_function($_)) {
503             return $f
504             } else {
505             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::HttpAction->new( %$_ );
506             }
507             };
508              
509             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::HttpAction {
510 3     3   9685 use Moose;
  3         9  
  3         16  
511 3     3   19034 use MooseX::StrictConstructor;
  3         8  
  3         19  
512             extends 'Cfn::Value::TypedValue';
513            
514             has Auth => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::HttpAuthorization', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
515             has ConfirmationUrl => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
516             has Headers => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::HttpActionHeader', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
517             has Url => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
518             }
519              
520             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::FirehoseAction',
521             as 'Cfn::Value';
522              
523             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::FirehoseAction',
524             from 'HashRef',
525             via {
526             if (my $f = Cfn::TypeLibrary::try_function($_)) {
527             return $f
528             } else {
529             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::FirehoseAction->new( %$_ );
530             }
531             };
532              
533             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::FirehoseAction {
534 3     3   9891 use Moose;
  3         12  
  3         49  
535 3     3   18957 use MooseX::StrictConstructor;
  3         8  
  3         23  
536             extends 'Cfn::Value::TypedValue';
537            
538             has DeliveryStreamName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
539             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
540             has Separator => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
541             }
542              
543             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::ElasticsearchAction',
544             as 'Cfn::Value';
545              
546             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::ElasticsearchAction',
547             from 'HashRef',
548             via {
549             if (my $f = Cfn::TypeLibrary::try_function($_)) {
550             return $f
551             } else {
552             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::ElasticsearchAction->new( %$_ );
553             }
554             };
555              
556             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::ElasticsearchAction {
557 3     3   9836 use Moose;
  3         11  
  3         26  
558 3     3   19762 use MooseX::StrictConstructor;
  3         16  
  3         15  
559             extends 'Cfn::Value::TypedValue';
560            
561             has Endpoint => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
562             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
563             has Index => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
564             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
565             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
566             }
567              
568             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBv2Action',
569             as 'Cfn::Value';
570              
571             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBv2Action',
572             from 'HashRef',
573             via {
574             if (my $f = Cfn::TypeLibrary::try_function($_)) {
575             return $f
576             } else {
577             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::DynamoDBv2Action->new( %$_ );
578             }
579             };
580              
581             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::DynamoDBv2Action {
582 3     3   9927 use Moose;
  3         11  
  3         15  
583 3     3   19180 use MooseX::StrictConstructor;
  3         9  
  3         15  
584             extends 'Cfn::Value::TypedValue';
585            
586             has PutItem => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::PutItemInput', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
587             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
588             }
589              
590             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBAction',
591             as 'Cfn::Value';
592              
593             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBAction',
594             from 'HashRef',
595             via {
596             if (my $f = Cfn::TypeLibrary::try_function($_)) {
597             return $f
598             } else {
599             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::DynamoDBAction->new( %$_ );
600             }
601             };
602              
603             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::DynamoDBAction {
604 3     3   10255 use Moose;
  3         17  
  3         869  
605 3     3   19080 use MooseX::StrictConstructor;
  3         8  
  3         20  
606             extends 'Cfn::Value::TypedValue';
607            
608             has HashKeyField => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
609             has HashKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
610             has HashKeyValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
611             has PayloadField => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
612             has RangeKeyField => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
613             has RangeKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
614             has RangeKeyValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
615             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
616             has TableName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
617             }
618              
619             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchMetricAction',
620             as 'Cfn::Value';
621              
622             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchMetricAction',
623             from 'HashRef',
624             via {
625             if (my $f = Cfn::TypeLibrary::try_function($_)) {
626             return $f
627             } else {
628             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::CloudwatchMetricAction->new( %$_ );
629             }
630             };
631              
632             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::CloudwatchMetricAction {
633 3     3   9989 use Moose;
  3         10  
  3         17  
634 3     3   19309 use MooseX::StrictConstructor;
  3         7  
  3         18  
635             extends 'Cfn::Value::TypedValue';
636            
637             has MetricName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
638             has MetricNamespace => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
639             has MetricTimestamp => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
640             has MetricUnit => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
641             has MetricValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
642             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
643             }
644              
645             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchAlarmAction',
646             as 'Cfn::Value';
647              
648             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchAlarmAction',
649             from 'HashRef',
650             via {
651             if (my $f = Cfn::TypeLibrary::try_function($_)) {
652             return $f
653             } else {
654             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::CloudwatchAlarmAction->new( %$_ );
655             }
656             };
657              
658             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::CloudwatchAlarmAction {
659 3     3   9895 use Moose;
  3         9  
  3         18  
660 3     3   19316 use MooseX::StrictConstructor;
  3         10  
  3         22  
661             extends 'Cfn::Value::TypedValue';
662            
663             has AlarmName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
664             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
665             has StateReason => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
666             has StateValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
667             }
668             subtype 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::Action',
669             as 'Cfn::Value',
670             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
671             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
672              
673             coerce 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::Action',
674             from 'HashRef',
675             via {
676             if (my $f = Cfn::TypeLibrary::try_function($_)) {
677             return $f
678             } else {
679             die 'Only accepts functions';
680             }
681             },
682             from 'ArrayRef',
683             via {
684             Cfn::Value::Array->new(Value => [
685             map {
686             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::IoT::TopicRule::Action')->coerce($_)
687             } @$_
688             ]);
689             };
690              
691             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::Action',
692             as 'Cfn::Value';
693              
694             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::Action',
695             from 'HashRef',
696             via {
697             if (my $f = Cfn::TypeLibrary::try_function($_)) {
698             return $f
699             } else {
700             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::Action->new( %$_ );
701             }
702             };
703              
704             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::Action {
705 3     3   10608 use Moose;
  3         8  
  3         19  
706 3     3   19050 use MooseX::StrictConstructor;
  3         9  
  3         16  
707             extends 'Cfn::Value::TypedValue';
708            
709             has CloudwatchAlarm => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchAlarmAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
710             has CloudwatchMetric => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchMetricAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
711             has DynamoDB => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
712             has DynamoDBv2 => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBv2Action', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
713             has Elasticsearch => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::ElasticsearchAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
714             has Firehose => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::FirehoseAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
715             has Http => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::HttpAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
716             has IotAnalytics => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotAnalyticsAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
717             has IotEvents => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotEventsAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
718             has IotSiteWise => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotSiteWiseAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
719             has Kinesis => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::KinesisAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
720             has Lambda => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::LambdaAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
721             has Republish => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::RepublishAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
722             has S3 => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::S3Action', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
723             has Sns => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SnsAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
724             has Sqs => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SqsAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
725             has StepFunctions => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::StepFunctionsAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
726             }
727              
728             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::TopicRulePayload',
729             as 'Cfn::Value';
730              
731             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::TopicRulePayload',
732             from 'HashRef',
733             via {
734             if (my $f = Cfn::TypeLibrary::try_function($_)) {
735             return $f
736             } else {
737             return Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::TopicRulePayload->new( %$_ );
738             }
739             };
740              
741             package Cfn::Resource::Properties::Object::AWS::IoT::TopicRule::TopicRulePayload {
742 3     3   10412 use Moose;
  3         8  
  3         19  
743 3     3   19013 use MooseX::StrictConstructor;
  3         12  
  3         16  
744             extends 'Cfn::Value::TypedValue';
745            
746             has Actions => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::Action', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
747             has AwsIotSqlVersion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
748             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
749             has ErrorAction => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::Action', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
750             has RuleDisabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
751             has Sql => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
752             }
753              
754             package Cfn::Resource::Properties::AWS::IoT::TopicRule {
755 3     3   9586 use Moose;
  3         10  
  3         21  
756 3     3   19146 use MooseX::StrictConstructor;
  3         15  
  3         44  
757             extends 'Cfn::Resource::Properties';
758            
759             has RuleName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
760             has TopicRulePayload => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::TopicRulePayload', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
761             }
762              
763             1;
764             ### main pod documentation begin ###
765              
766             =encoding UTF-8
767              
768             =head1 NAME
769              
770             Cfn::Resource::AWS::IoT::TopicRule - Cfn resource for AWS::IoT::TopicRule
771              
772             =head1 DESCRIPTION
773              
774             This module implements a Perl module that represents the CloudFormation object AWS::IoT::TopicRule.
775              
776             See L<Cfn> for more information on how to use it.
777              
778             =head1 AUTHOR
779              
780             Jose Luis Martinez
781             CAPSiDE
782             jlmartinez@capside.com
783              
784             =head1 COPYRIGHT and LICENSE
785              
786             Copyright (c) 2013 by CAPSiDE
787             This code is distributed under the Apache 2 License. The full text of the
788             license can be found in the LICENSE file included with this module.
789              
790             =cut