This is the new Amazon CloudFormation Template Reference Guide. Please update your bookmarks and links. For help getting started with CloudFormation, see the Amazon CloudFormation User Guide.
AWS::IoT::TopicRule
Use the AWS::IoT::TopicRule resource to declare an Amazon IoT
         rule. For information about working with Amazon IoT rules, see Rules for Amazon IoT in the Amazon IoT Developer Guide.
Syntax
To declare this entity in your Amazon CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::IoT::TopicRule", "Properties" : { "RuleName" :String, "Tags" :[ Tag, ... ], "TopicRulePayload" :TopicRulePayload} }
YAML
Type: AWS::IoT::TopicRule Properties: RuleName:StringTags:- TagTopicRulePayload:TopicRulePayload
Properties
- RuleName
- 
                    The name of the rule. Required: No Type: String Pattern: ^[a-zA-Z0-9_]+$Minimum: 1Maximum: 128Update requires: Replacement 
- 
                    Metadata which can be used to manage the topic rule. NoteFor URI Request parameters use format: ...key1=value1&key2=value2... For the CLI command-line parameter use format: --tags "key1=value1&key2=value2..." For the cli-input-json file use format: "tags": "key1=value1&key2=value2..." Required: No Type: Array of Tag Update requires: No interruption 
- TopicRulePayload
- 
                    The rule payload. Required: Yes Type: TopicRulePayload Update requires: No interruption 
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the topic rule name. For example:
                        { "Ref": "MyTopicRule" }
                    
For a stack named My-Stack (the - character is omitted), a value similar to the following is returned:
                        MyStackMyTopicRule12ABC3D456EFG
                    
For more information about using the Ref function, see Ref.
Fn::GetAtt
The Fn::GetAtt intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.
For more information about using the Fn::GetAtt intrinsic function, see Fn::GetAtt.
- Arn
- 
                            The Amazon Resource Name (ARN) of the Amazon IoT rule, such as arn:aws:iot:us-east-2:123456789012:rule/MyIoTRule.
Examples
The following example declares an Amazon IoT rule.
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "MyTopicRule": { "Type": "AWS::IoT::TopicRule", "Properties": { "RuleName": { "Ref": "NameParameter" }, "TopicRulePayload": { "RuleDisabled": "true", "Sql": "SELECT temp FROM 'SomeTopic' WHERE temp > 60", "Actions": [ { "S3": { "BucketName": { "Ref": "amzn-s3-demo-bucket" }, "RoleArn": { "Fn::GetAtt": [ "MyRole", "Arn" ] }, "Key": "MyKey.txt" } } ] } } } } }
YAML
AWSTemplateFormatVersion: '2010-09-09' Resources: MyTopicRule: Type: AWS::IoT::TopicRule Properties: RuleName: Ref: NameParameter TopicRulePayload: RuleDisabled: 'true' Sql: "SELECT temp FROM 'SomeTopic' WHERE temp > 60" Actions: - S3: BucketName: Ref: amzn-s3-demo-bucket RoleArn: Fn::GetAtt: - MyRole - Arn Key: MyKey.txt