Amazon IoT Device Defender Rules API

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

Operations 7

POST /rules/{ruleName} Amazon IoT Device Defender Create Topic Rule #
DELETE /rules/{ruleName} Amazon IoT Device Defender Delete Topic Rule #
GET /rules/{ruleName} Amazon IoT Device Defender Get Topic Rule #
PATCH /rules/{ruleName} Amazon IoT Device Defender Replace Topic Rule #
POST /rules/{ruleName}/disable Amazon IoT Device Defender Disable Topic Rule #
POST /rules/{ruleName}/enable Amazon IoT Device Defender Enable Topic Rule #
GET /rules Amazon IoT Device Defender 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-device-defender-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-device-defender-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 Device Defender 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 Device Defender 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 Device Defender 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 Device Defender 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 Device Defender 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 Device Defender 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 Device Defender List Topic Rules
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - Rules
components:
  schemas:
    String:
      type: string
    PutAssetPropertyValueEntryList:
      type: array
      items:
        $ref: '#/components/schemas/PutAssetPropertyValueEntry'
      minItems: 1
    ContentType:
      type: string
      minLength: 0
      maxLength: 1024
    ChannelName:
      type: string
    TopicRuleList:
      type: array
      items:
        $ref: '#/components/schemas/TopicRuleListItem'
    UnauthorizedException: {}
    ListTopicRulesResponse:
      type: object
      properties:
        rules:
          allOf:
          - $ref: '#/components/schemas/TopicRuleList'
          - description: The rules.
        nextToken:
          allOf:
          - $ref: '#/components/schemas/NextToken'
          - description: The token to use to get the next set of results, or <b>null</b> if there are no additional results.
      description: The output from the ListTopicRules operation.
    CloudwatchMetricAction:
      type: object
      required:
      - roleArn
      - metricNamespace
      - metricName
      - metricValue
      - metricUnit
      properties:
        roleArn:
          allOf:
          - $ref: '#/components/schemas/AwsArn'
          - description: The IAM role that allows access to the CloudWatch metric.
        metricNamespace:
          allOf:
          - $ref: '#/components/schemas/String'
          - description: The CloudWatch metric namespace name.
        metricName:
          allOf:
          - $ref: '#/components/schemas/String'
          - description: The CloudWatch metric name.
        metricValue:
          allOf:
          - $ref: '#/components/schemas/String'
          - description: The CloudWatch metric value.
        metricUnit:
          allOf:
          - $ref: '#/components/schemas/String'
          - description: The <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit">metric unit</a> supported by CloudWatch.
        metricTimestamp:
          allOf:
          - $ref: '#/components/schemas/String'
          - description: An optional <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp">Unix timestamp</a>.
      description: Describes an action that captures a CloudWatch metric.
    CorrelationData:
      type: string
      minLength: 0
      maxLength: 1024
    Description:
      type: string
    AssetPropertyQuality:
      type: string
    AssetPropertyId:
      type: string
    MessageFormat:
      type: string
      enum:
      - RAW
      - JSON
    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.
    HttpAction:
      type: object
      required:
      - url
      properties:
        url:
          allOf:
          - $ref: '#/components/schemas/Url'
          - description: The endpoint URL. If substitution templates are used in the URL, you must also specify a <code>confirmationUrl</code>. If this is a new destination, a new <code>TopicRuleDestination</code> is created if possible.
        confirmationUrl:
          allOf:
          - $ref: '#/components/schemas/Url'
          - description: The URL to which IoT sends a confirmation message. The value of the confirmation URL must be a prefix of the endpoint URL. If you do not specify a confirmation URL IoT uses the endpoint URL as the confirmation URL. If you use substitution templates in the confirmationUrl, you must create and enable topic rule destinations that match each possible value of the substitution template before traffic is allowed to your endpoint URL.
        headers:
          allOf:
          - $ref: '#/components/schemas/HeaderList'
          - description: The HTTP headers to send with the message data.
        auth:
          allOf:
          - $ref: '#/components/schemas/HttpAuthorization'
          - description: The authentication method to use when sending data to an HTTPS endpoint.
      description: Send data to an HTTPS endpoint.
    AssetPropertyTimestamp:
      type: object
      required:
      - timeInSeconds
      properties:
        timeInSeconds:
          allOf:
          - $ref: '#/components/schemas/AssetPropertyTimeInSeconds'
          - description: A string that contains the time in seconds since epoch. Accepts substitution templates.
        offsetInNanos:
          allOf:
          - $ref: '#/components/schemas/AssetPropertyOffsetInNanos'
          - description: Optional. A string that contains the nanosecond time offset. Accepts substitution templates.
      description: An asset property timestamp entry containing the following information.
    Action:
      type: object
      properties:
        dynamoDB:
          allOf:
          - $ref: '#/components/schemas/DynamoDBAction'
          - description: Write to a DynamoDB table.
        dynamoDBv2:
          allOf:
          - $ref: '#/components/schemas/DynamoDBv2Action'
          - description: Write to a DynamoDB table. This is a new version of the DynamoDB action. It allows you to write each attribute in an MQTT message payload into a separate DynamoDB column.
        lambda:
          allOf:
          - $ref: '#/components/schemas/LambdaAction'
          - description: Invoke a Lambda function.
        sns:
          allOf:
          - $ref: '#/components/schemas/SnsAction'
          - description: Publish to an Amazon SNS topic.
        sqs:
          allOf:
          - $ref: '#/components/schemas/SqsAction'
          - description: Publish to an Amazon SQS queue.
        kinesis:
          allOf:
          - $ref: '#/components/schemas/KinesisAction'
          - description: Write data to an Amazon Kinesis stream.
        republish:
          allOf:
          - $ref: '#/components/schemas/RepublishAction'
          - description: Publish to another MQTT topic.
        s3:
          allOf:
          - $ref: '#/components/schemas/S3Action'
          - description: Write to an Amazon S3 bucket.
        firehose:
          allOf:
          - $ref: '#/components/schemas/FirehoseAction'
          - description: Write to an Amazon Kinesis Firehose stream.
        cloudwatchMetric:
          allOf:
          - $ref: '#/components/schemas/CloudwatchMetricAction'
          - description: Capture a CloudWatch metric.
        cloudwatchAlarm:
          allOf:
          - $ref: '#/components/schemas/CloudwatchAlarmAction'
          - description: Change the state of a CloudWatch alarm.
        cloudwatchLogs:
          allOf:
          - $ref: '#/components/schemas/CloudwatchLogsAction'
          - description: Send data to CloudWatch Logs.
        elasticsearch:
          allOf:
          - $ref: '#/components/schemas/ElasticsearchAction'
          - description: <p>Write 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>
        salesforce:
          allOf:
          - $ref: '#/components/schemas/SalesforceAction'
          - description: Send a message to a Salesforce IoT Cloud Input Stream.
        iotAnalytics:
          allOf:
          - $ref: '#/components/schemas/IotAnalyticsAction'
          - description: Sends message data to an IoT Analytics channel.
        iotEvents:
          allOf:
          - $ref: '#/components/schemas/IotEventsAction'
          - description: Sends an input to an IoT Events detector.
        iotSiteWise:
          allOf:
          - $ref: '#/components/schemas/IotSiteWiseAction'
          - description: Sends data from the MQTT message that triggered the rule to IoT SiteWise asset properties.
        stepFunctions:
          allOf:
          - $ref: '#/components/schemas/StepFunctionsAction'
          - description: Starts execution of a Step Functions state machine.
        timestream:
          allOf:
          - $ref: '#/components/schemas/TimestreamAction'
          - description: The Timestream rule action writes attributes (measures) from an MQTT message into an Amazon Timestream table. For more information, see the <a href="https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html">Timestream</a> topic rule action documentation.
        http:
          allOf:
          - $ref: '#/components/schemas/HttpAction'
          - description: Send data to an HTTPS endpoint.
        kafka:
          allOf:
          - $ref: '#/components/schemas/K

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