{

"PropertyTypes": {
  "AWS::IoT::TopicRule.Action": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html",
    "Properties": {
      "CloudwatchAlarm": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-cloudwatchalarm",
        "Required": false,
        "Type": "CloudwatchAlarmAction",
        "UpdateType": "Mutable"
      },
      "CloudwatchMetric": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-cloudwatchmetric",
        "Required": false,
        "Type": "CloudwatchMetricAction",
        "UpdateType": "Mutable"
      },
      "DynamoDB": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-dynamodb",
        "Required": false,
        "Type": "DynamoDBAction",
        "UpdateType": "Mutable"
      },
      "Elasticsearch": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-elasticsearch",
        "Required": false,
        "Type": "ElasticsearchAction",
        "UpdateType": "Mutable"
      },
      "Firehose": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-firehose",
        "Required": false,
        "Type": "FirehoseAction",
        "UpdateType": "Mutable"
      },
      "Kinesis": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-kinesis",
        "Required": false,
        "Type": "KinesisAction",
        "UpdateType": "Mutable"
      },
      "Lambda": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-lambda",
        "Required": false,
        "Type": "LambdaAction",
        "UpdateType": "Mutable"
      },
      "Republish": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-republish",
        "Required": false,
        "Type": "RepublishAction",
        "UpdateType": "Mutable"
      },
      "S3": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-s3",
        "Required": false,
        "Type": "S3Action",
        "UpdateType": "Mutable"
      },
      "Sns": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-sns",
        "Required": false,
        "Type": "SnsAction",
        "UpdateType": "Mutable"
      },
      "Sqs": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-actions.html#cfn-iot-action-sqs",
        "Required": false,
        "Type": "SqsAction",
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.CloudwatchAlarmAction": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html",
    "Properties": {
      "AlarmName": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html#cfn-iot-cloudwatchalarm-alarmname",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "RoleArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html#cfn-iot-cloudwatchalarm-rolearn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "StateReason": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html#cfn-iot-cloudwatchalarm-statereason",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "StateValue": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchalarm.html#cfn-iot-cloudwatchalarm-statevalue",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.CloudwatchMetricAction": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html",
    "Properties": {
      "MetricName": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-metricname",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "MetricNamespace": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-metricnamespace",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "MetricTimestamp": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-metrictimestamp",
        "PrimitiveType": "String",
        "Required": false,
        "UpdateType": "Mutable"
      },
      "MetricUnit": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-metricunit",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "MetricValue": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-metricvalue",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "RoleArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cloudwatchmetric.html#cfn-iot-cloudwatchmetric-rolearn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.DynamoDBAction": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html",
    "Properties": {
      "HashKeyField": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-hashkeyfield",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "HashKeyValue": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-hashkeyvalue",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "PayloadField": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-payloadfield",
        "PrimitiveType": "String",
        "Required": false,
        "UpdateType": "Mutable"
      },
      "RangeKeyField": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-rangekeyfield",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "RangeKeyValue": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-rangekeyvalue",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "RoleArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-rolearn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "TableName": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-dynamodb.html#cfn-iot-dynamodb-tablename",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.ElasticsearchAction": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html",
    "Properties": {
      "Endpoint": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html#cfn-iot-elasticsearch-endpoint",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "Id": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html#cfn-iot-elasticsearch-id",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "Index": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html#cfn-iot-elasticsearch-index",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "RoleArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html#cfn-iot-elasticsearch-rolearn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "Type": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-elasticsearch.html#cfn-iot-elasticsearch-type",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.FirehoseAction": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-firehose.html",
    "Properties": {
      "DeliveryStreamName": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-firehose.html#cfn-iot-firehose-deliverystreamname",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "RoleArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-firehose.html#cfn-iot-firehose-rolearn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.KinesisAction": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-kinesis.html",
    "Properties": {
      "PartitionKey": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-kinesis.html#cfn-iot-kinesis-partitionkey",
        "PrimitiveType": "String",
        "Required": false,
        "UpdateType": "Mutable"
      },
      "RoleArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-kinesis.html#cfn-iot-kinesis-rolearn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "StreamName": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-kinesis.html#cfn-iot-kinesis-streamname",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.LambdaAction": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-lambda.html",
    "Properties": {
      "FunctionArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-lambda.html#cfn-iot-lambda-functionarn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.RepublishAction": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-republish.html",
    "Properties": {
      "RoleArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-republish.html#cfn-iot-republish-rolearn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "Topic": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-republish.html#cfn-iot-republish-topic",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.S3Action": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-s3.html",
    "Properties": {
      "BucketName": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-s3.html#cfn-iot-s3-bucketname",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "Key": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-s3.html#cfn-iot-s3-key",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "RoleArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-s3.html#cfn-iot-s3-rolearn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.SnsAction": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sns.html",
    "Properties": {
      "MessageFormat": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sns.html#cfn-iot-sns-snsaction",
        "PrimitiveType": "String",
        "Required": false,
        "UpdateType": "Mutable"
      },
      "RoleArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sns.html#cfn-iot-sns-rolearn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "TargetArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sns.html#cfn-iot-sns-targetarn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.SqsAction": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sqs.html",
    "Properties": {
      "QueueUrl": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sqs.html#cfn-iot-sqs-queueurl",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "RoleArn": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sqs.html#cfn-iot-sqs-rolearn",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "UseBase64": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-sqs.html#cfn-iot-sqs-usebase64",
        "PrimitiveType": "Boolean",
        "Required": false,
        "UpdateType": "Mutable"
      }
    }
  },
  "AWS::IoT::TopicRule.TopicRulePayload": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html",
    "Properties": {
      "Actions": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html#cfn-iot-topicrulepayload-actions",
        "DuplicatesAllowed": false,
        "ItemType": "Action",
        "Required": true,
        "Type": "List",
        "UpdateType": "Mutable"
      },
      "AwsIotSqlVersion": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html#cfn-iot-topicrulepayload-awsiotsqlversion",
        "PrimitiveType": "String",
        "Required": false,
        "UpdateType": "Mutable"
      },
      "Description": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html#cfn-iot-topicrulepayload-description",
        "PrimitiveType": "String",
        "Required": false,
        "UpdateType": "Mutable"
      },
      "RuleDisabled": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html#cfn-iot-topicrulepayload-ruledisabled",
        "PrimitiveType": "Boolean",
        "Required": true,
        "UpdateType": "Mutable"
      },
      "Sql": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrulepayload.html#cfn-iot-topicrulepayload-sql",
        "PrimitiveType": "String",
        "Required": true,
        "UpdateType": "Mutable"
      }
    }
  }
},
"ResourceSpecificationVersion": "1.0.0",
"ResourceType": {
  "AWS::IoT::TopicRule": {
    "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html",
    "Properties": {
      "RuleName": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html#cfn-iot-topicrule-rulename",
        "PrimitiveType": "String",
        "Required": false,
        "UpdateType": "Immutable"
      },
      "TopicRulePayload": {
        "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html#cfn-iot-topicrule-topicrulepayload",
        "Required": true,
        "Type": "TopicRulePayload",
        "UpdateType": "Mutable"
      }
    }
  }
}

}