Amazon IoT Core Rules API

The Rules API from Amazon IoT Core — 4 operation(s) for rules.

Operations 7

POST /rules/{ruleName} Amazon IoT Core Create Topic Rule #
DELETE /rules/{ruleName} Amazon IoT Core Delete Topic Rule #
GET /rules/{ruleName} Amazon IoT Core Get Topic Rule #
PATCH /rules/{ruleName} Amazon IoT Core Replace Topic Rule #
POST /rules/{ruleName}/disable Amazon IoT Core Disable Topic Rule #
POST /rules/{ruleName}/enable Amazon IoT Core Enable Topic Rule #
GET /rules Amazon IoT Core List Topic Rules #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/amazon-iot-core-rules-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

amazon-iot-core-rules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  x-release: v4
  title: AWS IoT Accept Certificate Transfer Rules API
  description: '<fullname>IoT</fullname> <p>IoT provides secure, bi-directional communication between Internet-connected devices (such as sensors, actuators, embedded devices, or smart appliances) and the Amazon Web Services cloud. You can discover your custom IoT-Data endpoint to communicate with, configure rules for data processing and integration with other services, organize resources associated with each device (Registry), configure logging, and create and manage policies and credentials to authenticate devices.</p> <p>The service endpoints that expose this API are listed in <a href="https://docs.aws.amazon.com/general/latest/gr/iot-core.html">Amazon Web Services IoT Core Endpoints and Quotas</a>. You must use the endpoint for the region that has the resources you want to access.</p> <p>The service name used by <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Amazon Web Services Signature Version 4</a> to sign the request is: <i>execute-api</i>.</p> <p>For more information about how IoT works, see the <a href="https://docs.aws.amazon.com/iot/latest/developerguide/aws-iot-how-it-works.html">Developer Guide</a>.</p> <p>For information about how to use the credentials provider for IoT, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html">Authorizing Direct Calls to Amazon Web Services Services</a>.</p>'
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_twitter.com_awscloud_profile_image.png
    backgroundColor: '#FFFFFF'
  termsOfService: https://aws.amazon.com/service-terms/
  contact:
    name: Mike Ralphson
    email: mike.ralphson@gmail.com
    url: https://github.com/mermade/aws2openapi
    x-twitter: PermittedSoc
  license:
    name: Apache 2.0 License
    url: http://www.apache.org/licenses/
  x-providerName: amazonaws.com
  x-serviceName: iot
  x-aws-signingName: iot
  x-origin:
  - contentType: application/json
    url: https://raw.githubusercontent.com/aws/aws-sdk-js/master/apis/iot-2015-05-28.normal.json
    converter:
      url: https://github.com/mermade/aws2openapi
    x-apisguru-driver: external
  x-apiClientRegistration:
    url: https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc2=h_ct
  x-apisguru-categories:
  - cloud
  x-preferred: true
servers:
- url: http://iot.{region}.amazonaws.com
  variables:
    region:
      description: The AWS region
      enum:
      - us-east-1
      - us-east-2
      - us-west-1
      - us-west-2
      - us-gov-west-1
      - us-gov-east-1
      - ca-central-1
      - eu-north-1
      - eu-west-1
      - eu-west-2
      - eu-west-3
      - eu-central-1
      - eu-south-1
      - af-south-1
      - ap-northeast-1
      - ap-northeast-2
      - ap-northeast-3
      - ap-southeast-1
      - ap-southeast-2
      - ap-east-1
      - ap-south-1
      - sa-east-1
      - me-south-1
      default: us-east-1
  description: The AWS IoT multi-region endpoint
- url: https://iot.{region}.amazonaws.com
  variables:
    region:
      description: The AWS region
      enum:
      - us-east-1
      - us-east-2
      - us-west-1
      - us-west-2
      - us-gov-west-1
      - us-gov-east-1
      - ca-central-1
      - eu-north-1
      - eu-west-1
      - eu-west-2
      - eu-west-3
      - eu-central-1
      - eu-south-1
      - af-south-1
      - ap-northeast-1
      - ap-northeast-2
      - ap-northeast-3
      - ap-southeast-1
      - ap-southeast-2
      - ap-east-1
      - ap-south-1
      - sa-east-1
      - me-south-1
      default: us-east-1
  description: The AWS IoT multi-region endpoint
- url: http://iot.{region}.amazonaws.com.cn
  variables:
    region:
      description: The AWS region
      enum:
      - cn-north-1
      - cn-northwest-1
      default: cn-north-1
  description: The AWS IoT endpoint for China (Beijing) and China (Ningxia)
- url: https://iot.{region}.amazonaws.com.cn
  variables:
    region:
      description: The AWS region
      enum:
      - cn-north-1
      - cn-northwest-1
      default: cn-north-1
  description: The AWS IoT endpoint for China (Beijing) and China (Ningxia)
security:
- hmac: []
tags:
- name: Rules
paths:
  /rules/{ruleName}:
    parameters:
    - $ref: '#/components/parameters/X-Amz-Content-Sha256'
    - $ref: '#/components/parameters/X-Amz-Date'
    - $ref: '#/components/parameters/X-Amz-Algorithm'
    - $ref: '#/components/parameters/X-Amz-Credential'
    - $ref: '#/components/parameters/X-Amz-Security-Token'
    - $ref: '#/components/parameters/X-Amz-Signature'
    - $ref: '#/components/parameters/X-Amz-SignedHeaders'
    post:
      operationId: CreateTopicRule
      description: <p>Creates a rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule.</p> <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">CreateTopicRule</a> action.</p>
      responses:
        '200':
          description: Success
        '480':
          description: SqlParseException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SqlParseException'
        '481':
          description: InternalException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalException'
        '482':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '483':
          description: ResourceAlreadyExistsException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceAlreadyExistsException'
        '484':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
        '485':
          description: ConflictingResourceUpdateException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictingResourceUpdateException'
      parameters:
      - name: ruleName
        in: path
        required: true
        description: The name of the rule.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_]+$
          minLength: 1
          maxLength: 128
      - name: x-amz-tagging
        in: header
        required: false
        description: '<p>Metadata which can be used to manage the topic rule.</p> <note> <p>For URI Request parameters use format: ...key1=value1&amp;key2=value2...</p> <p>For the CLI command-line parameter use format: --tags "key1=value1&amp;key2=value2..."</p> <p>For the cli-input-json file use format: "tags": "key1=value1&amp;key2=value2..."</p> </note>'
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - topicRulePayload
              properties:
                topicRulePayload:
                  description: Describes a rule.
                  type: object
                  properties:
                    sql:
                      allOf:
                      - $ref: '#/components/schemas/SQL'
                      - description: The SQL statement used to query the topic. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html">IoT SQL Reference</a> in the <i>IoT Developer Guide</i>.
                    description:
                      allOf:
                      - $ref: '#/components/schemas/Description'
                      - description: The description of the rule.
                    actions:
                      allOf:
                      - $ref: '#/components/schemas/ActionList'
                      - description: The actions associated with the rule.
                    ruleDisabled:
                      allOf:
                      - $ref: '#/components/schemas/IsDisabled'
                      - description: Specifies whether the rule is disabled.
                    awsIotSqlVersion:
                      allOf:
                      - $ref: '#/components/schemas/AwsIotSqlVersion'
                      - description: The version of the SQL rules engine to use when evaluating the rule.
                    errorAction:
                      allOf:
                      - $ref: '#/components/schemas/Action'
                      - description: The action to take when an error occurs.
      summary: Amazon IoT Core Create Topic Rule
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - Rules
    delete:
      operationId: DeleteTopicRule
      description: <p>Deletes the rule.</p> <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">DeleteTopicRule</a> action.</p>
      responses:
        '200':
          description: Success
        '480':
          description: InternalException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalException'
        '481':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '482':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
        '483':
          description: UnauthorizedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedException'
        '484':
          description: ConflictingResourceUpdateException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictingResourceUpdateException'
      parameters:
      - name: ruleName
        in: path
        required: true
        description: The name of the rule.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_]+$
          minLength: 1
          maxLength: 128
      summary: Amazon IoT Core Delete Topic Rule
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - Rules
    get:
      operationId: GetTopicRule
      description: <p>Gets information about the rule.</p> <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">GetTopicRule</a> action.</p>
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTopicRuleResponse'
        '480':
          description: InternalException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalException'
        '481':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '482':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
        '483':
          description: UnauthorizedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedException'
      parameters:
      - name: ruleName
        in: path
        required: true
        description: The name of the rule.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_]+$
          minLength: 1
          maxLength: 128
      summary: Amazon IoT Core Get Topic Rule
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - Rules
    patch:
      operationId: ReplaceTopicRule
      description: <p>Replaces the rule. You must specify all parameters for the new rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule.</p> <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">ReplaceTopicRule</a> action.</p>
      responses:
        '200':
          description: Success
        '480':
          description: SqlParseException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SqlParseException'
        '481':
          description: InternalException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalException'
        '482':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '483':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
        '484':
          description: UnauthorizedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedException'
        '485':
          description: ConflictingResourceUpdateException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictingResourceUpdateException'
      parameters:
      - name: ruleName
        in: path
        required: true
        description: The name of the rule.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_]+$
          minLength: 1
          maxLength: 128
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - topicRulePayload
              properties:
                topicRulePayload:
                  description: Describes a rule.
                  type: object
                  properties:
                    sql:
                      allOf:
                      - $ref: '#/components/schemas/SQL'
                      - description: The SQL statement used to query the topic. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html">IoT SQL Reference</a> in the <i>IoT Developer Guide</i>.
                    description:
                      allOf:
                      - $ref: '#/components/schemas/Description'
                      - description: The description of the rule.
                    actions:
                      allOf:
                      - $ref: '#/components/schemas/ActionList'
                      - description: The actions associated with the rule.
                    ruleDisabled:
                      allOf:
                      - $ref: '#/components/schemas/IsDisabled'
                      - description: Specifies whether the rule is disabled.
                    awsIotSqlVersion:
                      allOf:
                      - $ref: '#/components/schemas/AwsIotSqlVersion'
                      - description: The version of the SQL rules engine to use when evaluating the rule.
                    errorAction:
                      allOf:
                      - $ref: '#/components/schemas/Action'
                      - description: The action to take when an error occurs.
      summary: Amazon IoT Core Replace Topic Rule
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - Rules
  /rules/{ruleName}/disable:
    parameters:
    - $ref: '#/components/parameters/X-Amz-Content-Sha256'
    - $ref: '#/components/parameters/X-Amz-Date'
    - $ref: '#/components/parameters/X-Amz-Algorithm'
    - $ref: '#/components/parameters/X-Amz-Credential'
    - $ref: '#/components/parameters/X-Amz-Security-Token'
    - $ref: '#/components/parameters/X-Amz-Signature'
    - $ref: '#/components/parameters/X-Amz-SignedHeaders'
    post:
      operationId: DisableTopicRule
      description: <p>Disables the rule.</p> <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">DisableTopicRule</a> action.</p>
      responses:
        '200':
          description: Success
        '480':
          description: InternalException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalException'
        '481':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '482':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
        '483':
          description: UnauthorizedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedException'
        '484':
          description: ConflictingResourceUpdateException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictingResourceUpdateException'
      parameters:
      - name: ruleName
        in: path
        required: true
        description: The name of the rule to disable.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_]+$
          minLength: 1
          maxLength: 128
      summary: Amazon IoT Core Disable Topic Rule
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - Rules
  /rules/{ruleName}/enable:
    parameters:
    - $ref: '#/components/parameters/X-Amz-Content-Sha256'
    - $ref: '#/components/parameters/X-Amz-Date'
    - $ref: '#/components/parameters/X-Amz-Algorithm'
    - $ref: '#/components/parameters/X-Amz-Credential'
    - $ref: '#/components/parameters/X-Amz-Security-Token'
    - $ref: '#/components/parameters/X-Amz-Signature'
    - $ref: '#/components/parameters/X-Amz-SignedHeaders'
    post:
      operationId: EnableTopicRule
      description: <p>Enables the rule.</p> <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">EnableTopicRule</a> action.</p>
      responses:
        '200':
          description: Success
        '480':
          description: InternalException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalException'
        '481':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '482':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
        '483':
          description: UnauthorizedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedException'
        '484':
          description: ConflictingResourceUpdateException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictingResourceUpdateException'
      parameters:
      - name: ruleName
        in: path
        required: true
        description: The name of the topic rule to enable.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_]+$
          minLength: 1
          maxLength: 128
      summary: Amazon IoT Core Enable Topic Rule
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - Rules
  /rules:
    parameters:
    - $ref: '#/components/parameters/X-Amz-Content-Sha256'
    - $ref: '#/components/parameters/X-Amz-Date'
    - $ref: '#/components/parameters/X-Amz-Algorithm'
    - $ref: '#/components/parameters/X-Amz-Credential'
    - $ref: '#/components/parameters/X-Amz-Security-Token'
    - $ref: '#/components/parameters/X-Amz-Signature'
    - $ref: '#/components/parameters/X-Amz-SignedHeaders'
    get:
      operationId: ListTopicRules
      description: <p>Lists the rules for the specific topic.</p> <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">ListTopicRules</a> action.</p>
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTopicRulesResponse'
        '480':
          description: InternalException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalException'
        '481':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '482':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
      parameters:
      - name: topic
        in: query
        required: false
        description: The topic.
        schema:
          type: string
      - name: maxResults
        in: query
        required: false
        description: The maximum number of results to return.
        schema:
          type: integer
          minimum: 1
          maximum: 10000
      - name: nextToken
        in: query
        required: false
        description: To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.
        schema:
          type: string
      - name: ruleDisabled
        in: query
        required: false
        description: Specifies whether the rule is disabled.
        schema:
          type: boolean
      summary: Amazon IoT Core List Topic Rules
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - Rules
components:
  schemas:
    IotAnalyticsAction:
      type: object
      properties:
        channelArn:
          allOf:
          - $ref: '#/components/schemas/AwsArn'
          - description: (deprecated) The ARN of the IoT Analytics channel to which message data will be sent.
        channelName:
          allOf:
          - $ref: '#/components/schemas/ChannelName'
          - description: The name of the IoT Analytics channel to which message data will be sent.
        batchMode:
          allOf:
          - $ref: '#/components/schemas/BatchMode'
          - description: <p>Whether to process the action as a batch. The default value is <code>false</code>.</p> <p>When <code>batchMode</code> is <code>true</code> and the rule SQL statement evaluates to an Array, each Array element is delivered as a separate message when passed by <a href="https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html"> <code>BatchPutMessage</code> </a> to the IoT Analytics channel. The resulting array can't have more than 100 messages.</p>
        roleArn:
          allOf:
          - $ref: '#/components/schemas/AwsArn'
          - description: The ARN of the role which has a policy that grants IoT Analytics permission to send message data via IoT Analytics (iotanalytics:BatchPutMessage).
      description: Sends message data to an IoT Analytics channel.
    KinesisAction:
      type: object
      required:
      - roleArn
      - streamName
      properties:
        roleArn:
          allOf:
          - $ref: '#/components/schemas/AwsArn'
          - description: The ARN of the IAM role that grants access to the Amazon Kinesis stream.
        streamName:
          allOf:
          - $ref: '#/components/schemas/StreamName'
          - description: The name of the Amazon Kinesis stream.
        partitionKey:
          allOf:
          - $ref: '#/components/schemas/PartitionKey'
          - description: The partition key.
      description: Describes an action to write data to an Amazon Kinesis stream.
    ConflictingResourceUpdateException: {}
    AssetPropertyValueList:
      type: array
      items:
        $ref: '#/components/schemas/AssetPropertyValue'
      minItems: 1
    AssetPropertyEntryId:
      type: string
    AwsIotSqlVersion:
      type: string
    LogGroupName:
      type: string
    MessageExpiry:
      type: string
      minLength: 0
      maxLength: 1024
    IotSiteWiseAction:
      type: object
      required:
      - putAssetPropertyValueEntries
      - roleArn
      properties:
        putAssetPropertyValueEntries:
          allOf:
          - $ref: '#/components/schemas/PutAssetPropertyValueEntryList'
          - description: A list of asset property value entries.
        roleArn:
          allOf:
          - $ref: '#/components/schemas/AwsArn'
          - description: 'The ARN of the role that grants IoT permission to send an asset property value to IoT SiteWise. (<code>"Action": "iotsitewise:BatchPutAssetPropertyValue"</code>). The trust policy can restrict access to specific asset hierarchy paths.'
      description: Describes an action to send data from an MQTT message that triggered the rule to IoT SiteWise asset properties.
    FirehoseAction:
      type: object
      required:
      - roleArn
      - deliveryStreamName
      properties:
        roleArn:
          allOf:
          - $ref: '#/components/schemas/AwsArn'
          - description: The IAM role that grants access to the Amazon Kinesis Firehose stream.
        deliveryStreamName:
          allOf:
          - $ref: '#/components/schemas/DeliveryStreamName'
          - description: The delivery stream name.
        separator:
          allOf:
          - $ref: '#/components/schemas/FirehoseSeparator'
          - description: 'A character separator that will be used to separate records written to the Firehose stream. Valid values are: ''\n'' (newline), ''\t'' (tab), ''\r\n'' (Windows newline), '','' (comma).'
        batchMode:
          allOf:
          - $ref: '#/components/schemas/BatchMode'
          - description: <p>Whether to deliver the Kinesis Data Firehose stream as a batch by using <a href="https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html"> <code>PutRecordBatch</code> </a>. The default value is <code>false</code>.</p> <p>When <code>batchMode</code> is <code>true</code> and the rule's SQL statement evaluates to an Array, each Array element forms one record in the <a href="https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html"> <code>PutRecordBatch</code> </a> request. The resulting array can't have more than 500 records.</p>
      description: Describes an action that writes data to an Amazon Kinesis Firehose stream.
    SigV4Authorization:
      type: object
      required:
      - signingRegion
      - serviceName
      - roleArn
      properties:
        signingRegion:
          allOf:
          - $ref: '#/components/schemas/SigningRegion'
          - description: The signing region.
        serviceName:
          allOf:
          - $ref: '#/components/schemas/ServiceName'
          - description: The service name to use while signing with Sig V4.
        roleArn:
          allOf:
          - $ref: '#/components/schemas/AwsArn'
          - description: The ARN of the signing role.
      description: For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 signing process</a>.
    TopicRule:
      type: object
      properties:
        ruleName:
          allOf:
          - $ref: '#/components/schemas/RuleName'
          - description: The name of the rule.
        sql:
          allOf:
          - $ref: '#/components/schemas/SQL'
          - description: The SQL statement used to query the topic. When using a SQL query with multiple lines, be sure to escape the newline characters.
        description:
          allOf:
          - $ref: '#/components/schemas/Description'
          - description: The description of the rule.
        createdAt:
          allOf:
          - $ref: '#/components/schemas/CreatedAtDate'
          - description: The date and time the rule was created.
        actions:
          allOf:
          - $ref: '#/components/schemas/ActionList'
          - description: The actions associated with the rule.
        ruleDisabled:
          allOf:
          - $ref: '#/components/schemas/IsDisabled'
          - description: Specifies whether the rule is disabled.
        awsIotSqlVersion:
          allOf:
          - $ref: '#/components/schemas/AwsIotSqlVersion'
          - description: The version of the SQL rules engine to use when evaluating the rule.
        errorAction:
          allOf:
          - $ref: '#/components/schemas/Action'
          - description: The action to perform when an error occurs.
      description: Describes a rule.
    PayloadField:
      type: string
    AssetPropertyValue:
      type: object
      required:
      - value
      - timestamp
      properties:
        value:
          allOf:
          - $ref: '#/components/schemas/AssetPropertyVariant'
          - description: The value of the asset property.
        timestamp:
          allOf:
          - $ref: '#/components/schemas/AssetPropertyTimestamp'
          - description: The asset property value timestamp.
        quality:
          allOf:
          - $ref: '#/components/schemas/AssetPropertyQuality'
          - description: Optional. A string that describes the quality of the value. Accepts substitution templates. Must be <code>GOOD</code>, <code>BAD</code>, or <code>UNCERTAIN</code>.
      description: An asset property value entry containing the following information.
    AssetPropertyOffsetInNanos:
      type: string
    ElasticsearchAction:
      type: object
      required:
      - roleArn
      - endpoint
      - index
      - type
      - id
      properties:
        roleArn:
          allOf:
          - $ref: '#/components/schemas/AwsArn'
          - description: The IAM role ARN that has access to OpenSearch.
        endpoint:
          allOf:
          - $ref: '#/components/schemas/ElasticsearchEndpoint'
          - description: The endpoint of your OpenSearch domain.
        index:
          allOf:
          - $ref: '#/components/schemas/ElasticsearchIndex'
          - description: The index where you want to store your data.
        type:
          allOf:
          - $ref: '#/components/schemas/ElasticsearchType'
          - description: The type of document you are storing.
        id:
          allOf:
          - $ref: '#/components/schemas/ElasticsearchId'
          - description: The unique identifier for the document you are storing.
      description: <p>Describes an action that writes data to an Amazon OpenSearch Service domain.</p> <note> <p>The <code>Elasticsearch</code> action can only be used by existing rule actions. To create a new rule action or to update an existing rule action, use the <code>OpenSearch</code> rule action instead. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/apireference/API_OpenSearchAction.html">OpenSearchAction</a>.</p> </note>
    PayloadFormatIndicator:
      type: string
      minLength: 0
      maxLength: 1024
    ResponseTopic:
      type: string
      minLength: 0
      maxLength: 1024
    InputName:
      type: string
      minLength: 1
      maxLength: 128
    

# --- truncated at 32 KB (75 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/amazon-iot-core/refs/heads/main/openapi/amazon-iot-core-rules-api-openapi.yml