Module IoT.TopicRule

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html

type user_property = {
  1. value : string;
  2. key : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-userproperty.html

and kinesis_action = {
  1. stream_name : string;
  2. partition_key : string option;
  3. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html

and tag = {
  1. value : string;
  2. key : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html

and open_search_action = {
  1. type_ : string;
  2. endpoint : string;
  3. index : string;
  4. id : string;
  5. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html

and elasticsearch_action = {
  1. type_ : string;
  2. endpoint : string;
  3. index : string;
  4. id : string;
  5. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html

and sns_action = {
  1. message_format : string option;
  2. target_arn : string;
  3. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html

and sqs_action = {
  1. use_base64 : bool option;
  2. role_arn : string;
  3. queue_url : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html

and asset_property_variant = {
  1. double_value : string option;
  2. boolean_value : string option;
  3. integer_value : string option;
  4. string_value : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html

and timestream_timestamp = {
  1. value : string;
  2. unit : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamtimestamp.html

and firehose_action = {
  1. delivery_stream_name : string;
  2. batch_mode : bool option;
  3. role_arn : string;
  4. separator : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html

and s3_action = {
  1. bucket_name : string;
  2. canned_acl : string option;
  3. key : string;
  4. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html

and http_action_header = {
  1. value : string;
  2. key : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html

and step_functions_action = {
  1. execution_name_prefix : string option;
  2. state_machine_name : string;
  3. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html

and timestamp = {
  1. value : string;
  2. unit : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestamp.html

and cloudwatch_logs_action = {
  1. batch_mode : bool option;
  2. log_group_name : string;
  3. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchlogsaction.html

and cloudwatch_metric_action = {
  1. metric_name : string;
  2. metric_value : string;
  3. metric_namespace : string;
  4. metric_unit : string;
  5. role_arn : string;
  6. metric_timestamp : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html

and asset_property_timestamp = {
  1. time_in_seconds : string;
  2. offset_in_nanos : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html

and sig_v4_authorization = {
  1. service_name : string;
  2. signing_region : string;
  3. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html

and timestream_dimension = {
  1. value : string;
  2. name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamdimension.html

and iot_analytics_action = {
  1. channel_name : string;
  2. batch_mode : bool option;
  3. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html

and kafka_action_header = {
  1. value : string;
  2. key : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaactionheader.html

and dynamo_db_action = {
  1. table_name : string;
  2. payload_field : string option;
  3. range_key_field : string option;
  4. hash_key_field : string;
  5. range_key_value : string option;
  6. range_key_type : string option;
  7. hash_key_type : string option;
  8. hash_key_value : string;
  9. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html

and lambda_action = {
  1. function_arn : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html

and iot_events_action = {
  1. input_name : string;
  2. batch_mode : bool option;
  3. role_arn : string;
  4. message_id : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html

and put_item_input = {
  1. table_name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html

and cloudwatch_alarm_action = {
  1. alarm_name : string;
  2. state_reason : string;
  3. state_value : string;
  4. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html

and asset_property_value = {
  1. quality : string option;
  2. value : asset_property_variant;
  3. timestamp : asset_property_timestamp;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html

and kafka_action = {
  1. partition : string option;
  2. client_properties : string Stdlib__Map.Make(Stdlib.String).t;
  3. headers : kafka_action_header list option;
  4. topic : string;
  5. destination_arn : string;
  6. key : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html

and http_authorization = {
  1. sigv4 : sig_v4_authorization option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpauthorization.html

and dynamo_d_bv2_action = {
  1. put_item : put_item_input option;
  2. role_arn : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html

and republish_action_headers = {
  1. correlation_data : string option;
  2. user_properties : user_property list option;
  3. payload_format_indicator : string option;
  4. content_type : string option;
  5. message_expiry : string option;
  6. response_topic : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishactionheaders.html

and location_action = {
  1. tracker_name : string;
  2. device_id : string;
  3. latitude : string;
  4. longitude : string;
  5. timestamp : timestamp option;
  6. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html

and timestream_action = {
  1. table_name : string;
  2. database_name : string;
  3. dimensions : timestream_dimension list;
  4. timestamp : timestream_timestamp option;
  5. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html

and http_action = {
  1. headers : http_action_header list option;
  2. auth : http_authorization option;
  3. confirmation_url : string option;
  4. url : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html

and republish_action = {
  1. qos : int option;
  2. headers : republish_action_headers option;
  3. topic : string;
  4. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html

and put_asset_property_value_entry = {
  1. property_values : asset_property_value list;
  2. entry_id : string option;
  3. property_alias : string option;
  4. asset_id : string option;
  5. property_id : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html

and iot_site_wise_action = {
  1. put_asset_property_value_entries : put_asset_property_value_entry list;
  2. role_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html

and action = {
  1. s3 : s3_action option;
  2. cloudwatch_alarm : cloudwatch_alarm_action option;
  3. iot_events : iot_events_action option;
  4. firehose : firehose_action option;
  5. republish : republish_action option;
  6. kafka : kafka_action option;
  7. step_functions : step_functions_action option;
  8. dynamo_db : dynamo_db_action option;
  9. http : http_action option;
  10. dynamo_d_bv2 : dynamo_d_bv2_action option;
  11. cloudwatch_metric : cloudwatch_metric_action option;
  12. iot_site_wise : iot_site_wise_action option;
  13. elasticsearch : elasticsearch_action option;
  14. sqs : sqs_action option;
  15. kinesis : kinesis_action option;
  16. cloudwatch_logs : cloudwatch_logs_action option;
  17. timestream : timestream_action option;
  18. iot_analytics : iot_analytics_action option;
  19. sns : sns_action option;
  20. lambda : lambda_action option;
  21. location : location_action option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html

and topic_rule_payload = {
  1. rule_disabled : bool option;
  2. error_action : action option;
  3. description : string option;
  4. aws_iot_sql_version : string option;
  5. actions : action list;
  6. sql : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html

type properties = {
  1. topic_rule_payload : topic_rule_payload;
  2. rule_name : string option;
  3. tags : tag list option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html;

val make_properties : topic_rule_payload:topic_rule_payload -> ?rule_name:string -> ?tags:tag list -> unit -> properties
val make_user_property : value:string -> key:string -> unit -> user_property
val make_kinesis_action : stream_name:string -> ?partition_key:string -> role_arn:string -> unit -> kinesis_action
val make_tag : value:string -> key:string -> unit -> tag
val make_open_search_action : type_:string -> endpoint:string -> index:string -> id:string -> role_arn:string -> unit -> open_search_action
val make_elasticsearch_action : type_:string -> endpoint:string -> index:string -> id:string -> role_arn:string -> unit -> elasticsearch_action
val make_sns_action : ?message_format:string -> target_arn:string -> role_arn:string -> unit -> sns_action
val make_sqs_action : ?use_base64:bool -> role_arn:string -> queue_url:string -> unit -> sqs_action
val make_asset_property_variant : ?double_value:string -> ?boolean_value:string -> ?integer_value:string -> ?string_value:string -> unit -> asset_property_variant
val make_timestream_timestamp : value:string -> unit:string -> unit -> timestream_timestamp
val make_firehose_action : delivery_stream_name:string -> ?batch_mode:bool -> role_arn:string -> ?separator:string -> unit -> firehose_action
val make_s3_action : bucket_name:string -> ?canned_acl:string -> key:string -> role_arn:string -> unit -> s3_action
val make_http_action_header : value:string -> key:string -> unit -> http_action_header
val make_step_functions_action : ?execution_name_prefix:string -> state_machine_name:string -> role_arn:string -> unit -> step_functions_action
val make_timestamp : value:string -> ?unit:string -> unit -> timestamp
val make_cloudwatch_logs_action : ?batch_mode:bool -> log_group_name:string -> role_arn:string -> unit -> cloudwatch_logs_action
val make_cloudwatch_metric_action : metric_name:string -> metric_value:string -> metric_namespace:string -> metric_unit:string -> role_arn:string -> ?metric_timestamp:string -> unit -> cloudwatch_metric_action
val make_asset_property_timestamp : time_in_seconds:string -> ?offset_in_nanos:string -> unit -> asset_property_timestamp
val make_sig_v4_authorization : service_name:string -> signing_region:string -> role_arn:string -> unit -> sig_v4_authorization
val make_timestream_dimension : value:string -> name:string -> unit -> timestream_dimension
val make_iot_analytics_action : channel_name:string -> ?batch_mode:bool -> role_arn:string -> unit -> iot_analytics_action
val make_kafka_action_header : value:string -> key:string -> unit -> kafka_action_header
val make_dynamo_db_action : table_name:string -> ?payload_field:string -> ?range_key_field:string -> hash_key_field:string -> ?range_key_value:string -> ?range_key_type:string -> ?hash_key_type:string -> hash_key_value:string -> role_arn:string -> unit -> dynamo_db_action
val make_lambda_action : ?function_arn:string -> unit -> lambda_action
val make_iot_events_action : input_name:string -> ?batch_mode:bool -> role_arn:string -> ?message_id:string -> unit -> iot_events_action
val make_put_item_input : table_name:string -> unit -> put_item_input
val make_cloudwatch_alarm_action : alarm_name:string -> state_reason:string -> state_value:string -> role_arn:string -> unit -> cloudwatch_alarm_action
val make_asset_property_value : ?quality:string -> value:asset_property_variant -> timestamp:asset_property_timestamp -> unit -> asset_property_value
val make_kafka_action : ?partition:string -> client_properties:string Stdlib__Map.Make(Stdlib.String).t -> ?headers:kafka_action_header list -> topic:string -> destination_arn:string -> ?key:string -> unit -> kafka_action
val make_http_authorization : ?sigv4:sig_v4_authorization -> unit -> http_authorization
val make_dynamo_d_bv2_action : ?put_item:put_item_input -> ?role_arn:string -> unit -> dynamo_d_bv2_action
val make_republish_action_headers : ?correlation_data:string -> ?user_properties:user_property list -> ?payload_format_indicator:string -> ?content_type:string -> ?message_expiry:string -> ?response_topic:string -> unit -> republish_action_headers
val make_location_action : tracker_name:string -> device_id:string -> latitude:string -> longitude:string -> ?timestamp:timestamp -> role_arn:string -> unit -> location_action
val make_timestream_action : table_name:string -> database_name:string -> dimensions:timestream_dimension list -> ?timestamp:timestream_timestamp -> role_arn:string -> unit -> timestream_action
val make_http_action : ?headers:http_action_header list -> ?auth:http_authorization -> ?confirmation_url:string -> url:string -> unit -> http_action
val make_republish_action : ?qos:int -> ?headers:republish_action_headers -> topic:string -> role_arn:string -> unit -> republish_action
val make_put_asset_property_value_entry : property_values:asset_property_value list -> ?entry_id:string -> ?property_alias:string -> ?asset_id:string -> ?property_id:string -> unit -> put_asset_property_value_entry
val make_iot_site_wise_action : put_asset_property_value_entries:put_asset_property_value_entry list -> role_arn:string -> unit -> iot_site_wise_action
val make_action : ?s3:s3_action -> ?cloudwatch_alarm:cloudwatch_alarm_action -> ?iot_events:iot_events_action -> ?firehose:firehose_action -> ?republish:republish_action -> ?kafka:kafka_action -> ?step_functions:step_functions_action -> ?dynamo_db:dynamo_db_action -> ?http:http_action -> ?open_search:open_search_action -> ?dynamo_d_bv2:dynamo_d_bv2_action -> ?cloudwatch_metric:cloudwatch_metric_action -> ?iot_site_wise:iot_site_wise_action -> ?elasticsearch:elasticsearch_action -> ?sqs:sqs_action -> ?kinesis:kinesis_action -> ?cloudwatch_logs:cloudwatch_logs_action -> ?timestream:timestream_action -> ?iot_analytics:iot_analytics_action -> ?sns:sns_action -> ?lambda:lambda_action -> ?location:location_action -> unit -> action
val make_topic_rule_payload : ?rule_disabled:bool -> ?error_action:action -> ?description:string -> ?aws_iot_sql_version:string -> actions:action list -> sql:string -> unit -> topic_rule_payload
val yojson_of_user_property : user_property -> Yojson.Safe.t
val yojson_of_kinesis_action : kinesis_action -> Yojson.Safe.t
val yojson_of_tag : tag -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_open_search_action : open_search_action -> Yojson.Safe.t
val yojson_of_elasticsearch_action : elasticsearch_action -> Yojson.Safe.t
val yojson_of_sns_action : sns_action -> Yojson.Safe.t
val yojson_of_sqs_action : sqs_action -> Yojson.Safe.t
val yojson_of_asset_property_variant : asset_property_variant -> Yojson.Safe.t
val yojson_of_timestream_timestamp : timestream_timestamp -> Yojson.Safe.t
val yojson_of_firehose_action : firehose_action -> Yojson.Safe.t
val yojson_of_s3_action : s3_action -> Yojson.Safe.t
val yojson_of_http_action_header : http_action_header -> Yojson.Safe.t
val yojson_of_step_functions_action : step_functions_action -> Yojson.Safe.t
val yojson_of_timestamp : timestamp -> Yojson.Safe.t
val yojson_of_cloudwatch_logs_action : cloudwatch_logs_action -> Yojson.Safe.t
val yojson_of_cloudwatch_metric_action : cloudwatch_metric_action -> Yojson.Safe.t
val yojson_of_asset_property_timestamp : asset_property_timestamp -> Yojson.Safe.t
val yojson_of_sig_v4_authorization : sig_v4_authorization -> Yojson.Safe.t
val yojson_of_timestream_dimension : timestream_dimension -> Yojson.Safe.t
val yojson_of_iot_analytics_action : iot_analytics_action -> Yojson.Safe.t
val yojson_of_kafka_action_header : kafka_action_header -> Yojson.Safe.t
val yojson_of_dynamo_db_action : dynamo_db_action -> Yojson.Safe.t
val yojson_of_lambda_action : lambda_action -> Yojson.Safe.t
val yojson_of_iot_events_action : iot_events_action -> Yojson.Safe.t
val yojson_of_put_item_input : put_item_input -> Yojson.Safe.t
val yojson_of_cloudwatch_alarm_action : cloudwatch_alarm_action -> Yojson.Safe.t
val yojson_of_asset_property_value : asset_property_value -> Yojson.Safe.t
val yojson_of_kafka_action : kafka_action -> Yojson.Safe.t
val yojson_of_http_authorization : http_authorization -> Yojson.Safe.t
val yojson_of_dynamo_d_bv2_action : dynamo_d_bv2_action -> Yojson.Safe.t
val yojson_of_republish_action_headers : republish_action_headers -> Yojson.Safe.t
val yojson_of_location_action : location_action -> Yojson.Safe.t
val yojson_of_timestream_action : timestream_action -> Yojson.Safe.t
val yojson_of_http_action : http_action -> Yojson.Safe.t
val yojson_of_republish_action : republish_action -> Yojson.Safe.t
val yojson_of_put_asset_property_value_entry : put_asset_property_value_entry -> Yojson.Safe.t
val yojson_of_iot_site_wise_action : iot_site_wise_action -> Yojson.Safe.t
val yojson_of_action : action -> Yojson.Safe.t
val yojson_of_topic_rule_payload : topic_rule_payload -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_properties : properties -> [> `Assoc of (string * Yojson.Safe.t) list ]
type attributes = {
  1. ref_ : string;
  2. arn : string;
}
val create_attributes : string -> attributes
val cloudformation_type : string