File Coverage

blib/lib/Cfn/Resource/AWS/IoT/TopicRule.pm
Criterion Covered Total %
statement 116 116 100.0
branch n/a
condition n/a
subroutine 40 40 100.0
pod 0 2 0.0
total 156 158 98.7


line stmt bran cond sub pod time code
1             # AWS::IoT::TopicRule generated from spec 5.3.0
2 3     3   1911 use Moose::Util::TypeConstraints;
  3         7  
  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   5957 use Moose;
  3         11  
  3         22  
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 1224 [ 'ap-east-1','ap-northeast-1','ap-northeast-2','ap-northeast-3','ap-south-1','ap-southeast-1','ap-southeast-2','ca-central-1','cn-north-1','cn-northwest-1','eu-central-1','eu-north-1','eu-west-1','eu-west-2','eu-west-3','me-south-1','sa-east-1','us-east-1','us-east-2','us-gov-east-1','us-gov-west-1','us-west-1','us-west-2' ]
18             }
19             }
20              
21              
22              
23             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::PutItemInput',
24             as 'Cfn::Value';
25              
26             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::PutItemInput',
27             from 'HashRef',
28             via {
29             if (my $f = Cfn::TypeLibrary::try_function($_)) {
30             return $f
31             } else {
32             return Cfn::Resource::Properties::AWS::IoT::TopicRule::PutItemInputValue->new( %$_ );
33             }
34             };
35              
36             package Cfn::Resource::Properties::AWS::IoT::TopicRule::PutItemInputValue {
37 3     3   19347 use Moose;
  3         8  
  3         18  
38 3     3   17373 use MooseX::StrictConstructor;
  3         7  
  3         29  
39             extends 'Cfn::Value::TypedValue';
40            
41             has TableName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
42             }
43              
44             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::StepFunctionsAction',
45             as 'Cfn::Value';
46              
47             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::StepFunctionsAction',
48             from 'HashRef',
49             via {
50             if (my $f = Cfn::TypeLibrary::try_function($_)) {
51             return $f
52             } else {
53             return Cfn::Resource::Properties::AWS::IoT::TopicRule::StepFunctionsActionValue->new( %$_ );
54             }
55             };
56              
57             package Cfn::Resource::Properties::AWS::IoT::TopicRule::StepFunctionsActionValue {
58 3     3   9480 use Moose;
  3         7  
  3         20  
59 3     3   17249 use MooseX::StrictConstructor;
  3         6  
  3         16  
60             extends 'Cfn::Value::TypedValue';
61            
62             has ExecutionNamePrefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
63             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
64             has StateMachineName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
65             }
66              
67             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SqsAction',
68             as 'Cfn::Value';
69              
70             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SqsAction',
71             from 'HashRef',
72             via {
73             if (my $f = Cfn::TypeLibrary::try_function($_)) {
74             return $f
75             } else {
76             return Cfn::Resource::Properties::AWS::IoT::TopicRule::SqsActionValue->new( %$_ );
77             }
78             };
79              
80             package Cfn::Resource::Properties::AWS::IoT::TopicRule::SqsActionValue {
81 3     3   8969 use Moose;
  3         10  
  3         55  
82 3     3   17332 use MooseX::StrictConstructor;
  3         8  
  3         14  
83             extends 'Cfn::Value::TypedValue';
84            
85             has QueueUrl => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
86             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
87             has UseBase64 => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
88             }
89              
90             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SnsAction',
91             as 'Cfn::Value';
92              
93             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SnsAction',
94             from 'HashRef',
95             via {
96             if (my $f = Cfn::TypeLibrary::try_function($_)) {
97             return $f
98             } else {
99             return Cfn::Resource::Properties::AWS::IoT::TopicRule::SnsActionValue->new( %$_ );
100             }
101             };
102              
103             package Cfn::Resource::Properties::AWS::IoT::TopicRule::SnsActionValue {
104 3     3   9237 use Moose;
  3         8  
  3         17  
105 3     3   17488 use MooseX::StrictConstructor;
  3         7  
  3         18  
106             extends 'Cfn::Value::TypedValue';
107            
108             has MessageFormat => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
109             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
110             has TargetArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
111             }
112              
113             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::S3Action',
114             as 'Cfn::Value';
115              
116             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::S3Action',
117             from 'HashRef',
118             via {
119             if (my $f = Cfn::TypeLibrary::try_function($_)) {
120             return $f
121             } else {
122             return Cfn::Resource::Properties::AWS::IoT::TopicRule::S3ActionValue->new( %$_ );
123             }
124             };
125              
126             package Cfn::Resource::Properties::AWS::IoT::TopicRule::S3ActionValue {
127 3     3   9097 use Moose;
  3         9  
  3         17  
128 3     3   17784 use MooseX::StrictConstructor;
  3         10  
  3         14  
129             extends 'Cfn::Value::TypedValue';
130            
131             has BucketName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
132             has Key => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
133             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
134             }
135              
136             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::RepublishAction',
137             as 'Cfn::Value';
138              
139             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::RepublishAction',
140             from 'HashRef',
141             via {
142             if (my $f = Cfn::TypeLibrary::try_function($_)) {
143             return $f
144             } else {
145             return Cfn::Resource::Properties::AWS::IoT::TopicRule::RepublishActionValue->new( %$_ );
146             }
147             };
148              
149             package Cfn::Resource::Properties::AWS::IoT::TopicRule::RepublishActionValue {
150 3     3   9223 use Moose;
  3         7  
  3         15  
151 3     3   17658 use MooseX::StrictConstructor;
  3         8  
  3         16  
152             extends 'Cfn::Value::TypedValue';
153            
154             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
155             has Topic => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
156             }
157              
158             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::LambdaAction',
159             as 'Cfn::Value';
160              
161             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::LambdaAction',
162             from 'HashRef',
163             via {
164             if (my $f = Cfn::TypeLibrary::try_function($_)) {
165             return $f
166             } else {
167             return Cfn::Resource::Properties::AWS::IoT::TopicRule::LambdaActionValue->new( %$_ );
168             }
169             };
170              
171             package Cfn::Resource::Properties::AWS::IoT::TopicRule::LambdaActionValue {
172 3     3   8947 use Moose;
  3         9  
  3         15  
173 3     3   17889 use MooseX::StrictConstructor;
  3         7  
  3         18  
174             extends 'Cfn::Value::TypedValue';
175            
176             has FunctionArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
177             }
178              
179             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::KinesisAction',
180             as 'Cfn::Value';
181              
182             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::KinesisAction',
183             from 'HashRef',
184             via {
185             if (my $f = Cfn::TypeLibrary::try_function($_)) {
186             return $f
187             } else {
188             return Cfn::Resource::Properties::AWS::IoT::TopicRule::KinesisActionValue->new( %$_ );
189             }
190             };
191              
192             package Cfn::Resource::Properties::AWS::IoT::TopicRule::KinesisActionValue {
193 3     3   8959 use Moose;
  3         7  
  3         16  
194 3     3   17521 use MooseX::StrictConstructor;
  3         10  
  3         16  
195             extends 'Cfn::Value::TypedValue';
196            
197             has PartitionKey => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
198             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
199             has StreamName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
200             }
201              
202             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotAnalyticsAction',
203             as 'Cfn::Value';
204              
205             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotAnalyticsAction',
206             from 'HashRef',
207             via {
208             if (my $f = Cfn::TypeLibrary::try_function($_)) {
209             return $f
210             } else {
211             return Cfn::Resource::Properties::AWS::IoT::TopicRule::IotAnalyticsActionValue->new( %$_ );
212             }
213             };
214              
215             package Cfn::Resource::Properties::AWS::IoT::TopicRule::IotAnalyticsActionValue {
216 3     3   8977 use Moose;
  3         9  
  3         18  
217 3     3   17374 use MooseX::StrictConstructor;
  3         12  
  3         14  
218             extends 'Cfn::Value::TypedValue';
219            
220             has ChannelName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
221             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
222             }
223              
224             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::FirehoseAction',
225             as 'Cfn::Value';
226              
227             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::FirehoseAction',
228             from 'HashRef',
229             via {
230             if (my $f = Cfn::TypeLibrary::try_function($_)) {
231             return $f
232             } else {
233             return Cfn::Resource::Properties::AWS::IoT::TopicRule::FirehoseActionValue->new( %$_ );
234             }
235             };
236              
237             package Cfn::Resource::Properties::AWS::IoT::TopicRule::FirehoseActionValue {
238 3     3   8905 use Moose;
  3         10  
  3         17  
239 3     3   17547 use MooseX::StrictConstructor;
  3         10  
  3         16  
240             extends 'Cfn::Value::TypedValue';
241            
242             has DeliveryStreamName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
243             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
244             has Separator => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
245             }
246              
247             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::ElasticsearchAction',
248             as 'Cfn::Value';
249              
250             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::ElasticsearchAction',
251             from 'HashRef',
252             via {
253             if (my $f = Cfn::TypeLibrary::try_function($_)) {
254             return $f
255             } else {
256             return Cfn::Resource::Properties::AWS::IoT::TopicRule::ElasticsearchActionValue->new( %$_ );
257             }
258             };
259              
260             package Cfn::Resource::Properties::AWS::IoT::TopicRule::ElasticsearchActionValue {
261 3     3   9213 use Moose;
  3         18  
  3         18  
262 3     3   17404 use MooseX::StrictConstructor;
  3         7  
  3         16  
263             extends 'Cfn::Value::TypedValue';
264            
265             has Endpoint => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
266             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
267             has Index => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
268             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
269             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
270             }
271              
272             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBv2Action',
273             as 'Cfn::Value';
274              
275             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBv2Action',
276             from 'HashRef',
277             via {
278             if (my $f = Cfn::TypeLibrary::try_function($_)) {
279             return $f
280             } else {
281             return Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBv2ActionValue->new( %$_ );
282             }
283             };
284              
285             package Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBv2ActionValue {
286 3     3   9464 use Moose;
  3         8  
  3         17  
287 3     3   17404 use MooseX::StrictConstructor;
  3         9  
  3         14  
288             extends 'Cfn::Value::TypedValue';
289            
290             has PutItem => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::PutItemInput', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
291             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
292             }
293              
294             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBAction',
295             as 'Cfn::Value';
296              
297             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBAction',
298             from 'HashRef',
299             via {
300             if (my $f = Cfn::TypeLibrary::try_function($_)) {
301             return $f
302             } else {
303             return Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBActionValue->new( %$_ );
304             }
305             };
306              
307             package Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBActionValue {
308 3     3   8926 use Moose;
  3         7  
  3         17  
309 3     3   17350 use MooseX::StrictConstructor;
  3         8  
  3         17  
310             extends 'Cfn::Value::TypedValue';
311            
312             has HashKeyField => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
313             has HashKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
314             has HashKeyValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
315             has PayloadField => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
316             has RangeKeyField => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
317             has RangeKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
318             has RangeKeyValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
319             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
320             has TableName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
321             }
322              
323             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchMetricAction',
324             as 'Cfn::Value';
325              
326             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchMetricAction',
327             from 'HashRef',
328             via {
329             if (my $f = Cfn::TypeLibrary::try_function($_)) {
330             return $f
331             } else {
332             return Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchMetricActionValue->new( %$_ );
333             }
334             };
335              
336             package Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchMetricActionValue {
337 3     3   9165 use Moose;
  3         8  
  3         23  
338 3     3   18144 use MooseX::StrictConstructor;
  3         12  
  3         19  
339             extends 'Cfn::Value::TypedValue';
340            
341             has MetricName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
342             has MetricNamespace => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
343             has MetricTimestamp => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
344             has MetricUnit => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
345             has MetricValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
346             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
347             }
348              
349             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchAlarmAction',
350             as 'Cfn::Value';
351              
352             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchAlarmAction',
353             from 'HashRef',
354             via {
355             if (my $f = Cfn::TypeLibrary::try_function($_)) {
356             return $f
357             } else {
358             return Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchAlarmActionValue->new( %$_ );
359             }
360             };
361              
362             package Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchAlarmActionValue {
363 3     3   9061 use Moose;
  3         16  
  3         25  
364 3     3   17895 use MooseX::StrictConstructor;
  3         10  
  3         17  
365             extends 'Cfn::Value::TypedValue';
366            
367             has AlarmName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
368             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
369             has StateReason => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
370             has StateValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
371             }
372             subtype 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::Action',
373             as 'Cfn::Value',
374             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
375             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
376              
377             coerce 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::Action',
378             from 'HashRef',
379             via {
380             if (my $f = Cfn::TypeLibrary::try_function($_)) {
381             return $f
382             } else {
383             die 'Only accepts functions';
384             }
385             },
386             from 'ArrayRef',
387             via {
388             Cfn::Value::Array->new(Value => [
389             map {
390             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::IoT::TopicRule::Action')->coerce($_)
391             } @$_
392             ]);
393             };
394              
395             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::Action',
396             as 'Cfn::Value';
397              
398             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::Action',
399             from 'HashRef',
400             via {
401             if (my $f = Cfn::TypeLibrary::try_function($_)) {
402             return $f
403             } else {
404             return Cfn::Resource::Properties::AWS::IoT::TopicRule::ActionValue->new( %$_ );
405             }
406             };
407              
408             package Cfn::Resource::Properties::AWS::IoT::TopicRule::ActionValue {
409 3     3   9668 use Moose;
  3         8  
  3         18  
410 3     3   17439 use MooseX::StrictConstructor;
  3         7  
  3         13  
411             extends 'Cfn::Value::TypedValue';
412            
413             has CloudwatchAlarm => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchAlarmAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
414             has CloudwatchMetric => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::CloudwatchMetricAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
415             has DynamoDB => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
416             has DynamoDBv2 => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::DynamoDBv2Action', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
417             has Elasticsearch => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::ElasticsearchAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
418             has Firehose => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::FirehoseAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
419             has IotAnalytics => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::IotAnalyticsAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
420             has Kinesis => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::KinesisAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
421             has Lambda => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::LambdaAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
422             has Republish => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::RepublishAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
423             has S3 => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::S3Action', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
424             has Sns => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SnsAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
425             has Sqs => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::SqsAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
426             has StepFunctions => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::StepFunctionsAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
427             }
428              
429             subtype 'Cfn::Resource::Properties::AWS::IoT::TopicRule::TopicRulePayload',
430             as 'Cfn::Value';
431              
432             coerce 'Cfn::Resource::Properties::AWS::IoT::TopicRule::TopicRulePayload',
433             from 'HashRef',
434             via {
435             if (my $f = Cfn::TypeLibrary::try_function($_)) {
436             return $f
437             } else {
438             return Cfn::Resource::Properties::AWS::IoT::TopicRule::TopicRulePayloadValue->new( %$_ );
439             }
440             };
441              
442             package Cfn::Resource::Properties::AWS::IoT::TopicRule::TopicRulePayloadValue {
443 3     3   9389 use Moose;
  3         7  
  3         24  
444 3     3   17437 use MooseX::StrictConstructor;
  3         12  
  3         16  
445             extends 'Cfn::Value::TypedValue';
446            
447             has Actions => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoT::TopicRule::Action', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
448             has AwsIotSqlVersion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
449             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
450             has ErrorAction => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::Action', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
451             has RuleDisabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
452             has Sql => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
453             }
454              
455             package Cfn::Resource::Properties::AWS::IoT::TopicRule {
456 3     3   8838 use Moose;
  3         28  
  3         18  
457 3     3   17734 use MooseX::StrictConstructor;
  3         9  
  3         15  
458             extends 'Cfn::Resource::Properties';
459            
460             has RuleName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
461             has TopicRulePayload => (isa => 'Cfn::Resource::Properties::AWS::IoT::TopicRule::TopicRulePayload', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
462             }
463              
464             1;