Amazon IoT Device Defender OtaUpdates API

The OtaUpdates API from Amazon IoT Device Defender — 2 operation(s) for otaupdates.

Operations 4

POST /otaUpdates/{otaUpdateId} Amazon IoT Device Defender Create O T a Update #
DELETE /otaUpdates/{otaUpdateId} Amazon IoT Device Defender Delete O T a Update #
GET /otaUpdates/{otaUpdateId} Amazon IoT Device Defender Get O T a Update #
GET /otaUpdates Amazon IoT Device Defender List O T a Updates #

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-otaupdates-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-otaupdates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  x-release: v4
  title: AWS IoT Accept Certificate Transfer Ota Updates 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: OtaUpdates
paths:
  /otaUpdates/{otaUpdateId}:
    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: CreateOTAUpdate
      description: <p>Creates an IoT OTA update on a target group of things or groups.</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">CreateOTAUpdate</a> action.</p>
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOTAUpdateResponse'
        '480':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '481':
          description: LimitExceededException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LimitExceededException'
        '482':
          description: ResourceNotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
        '483':
          description: ResourceAlreadyExistsException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceAlreadyExistsException'
        '484':
          description: ThrottlingException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '485':
          description: UnauthorizedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedException'
        '486':
          description: InternalFailureException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalFailureException'
        '487':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
      parameters:
      - name: otaUpdateId
        in: path
        required: true
        description: The ID of the OTA update to be created.
        schema:
          type: string
          pattern: '[a-zA-Z0-9_-]+'
          minLength: 1
          maxLength: 128
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - targets
              - files
              - roleArn
              properties:
                description:
                  description: The description of the OTA update.
                  type: string
                  pattern: '[^\p{C}]+'
                  maxLength: 2028
                targets:
                  description: The devices targeted to receive OTA updates.
                  type: array
                  items:
                    $ref: '#/components/schemas/Target'
                  minItems: 1
                protocols:
                  description: The protocol used to transfer the OTA update image. Valid values are [HTTP], [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device can choose the protocol.
                  type: array
                  items:
                    $ref: '#/components/schemas/Protocol'
                  minItems: 1
                  maxItems: 2
                targetSelection:
                  description: 'Specifies whether the update will continue to run (CONTINUOUS), or will be complete after all the things specified as targets have completed the update (SNAPSHOT). If continuous, the update may also be run on a thing when a change is detected in a target. For example, an update will run on a thing when the thing is added to a target group, even after the update was completed by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.'
                  type: string
                  enum:
                  - CONTINUOUS
                  - SNAPSHOT
                awsJobExecutionsRolloutConfig:
                  description: Configuration for the rollout of OTA updates.
                  type: object
                  properties:
                    maximumPerMinute:
                      allOf:
                      - $ref: '#/components/schemas/MaximumPerMinute'
                      - description: The maximum number of OTA update job executions started per minute.
                    exponentialRate:
                      allOf:
                      - $ref: '#/components/schemas/AwsJobExponentialRolloutRate'
                      - description: The rate of increase for a job rollout. This parameter allows you to define an exponential rate increase for a job rollout.
                awsJobPresignedUrlConfig:
                  description: Configuration information for pre-signed URLs. Valid when <code>protocols</code> contains HTTP.
                  type: object
                  properties:
                    expiresInSec:
                      allOf:
                      - $ref: '#/components/schemas/ExpiresInSeconds'
                      - description: How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 1800 seconds. Pre-signed URLs are generated when a request for the job document is received.
                awsJobAbortConfig:
                  description: The criteria that determine when and how a job abort takes place.
                  type: object
                  properties:
                    abortCriteriaList:
                      allOf:
                      - $ref: '#/components/schemas/AwsJobAbortCriteriaList'
                      - description: The list of criteria that determine when and how to abort the job.
                awsJobTimeoutConfig:
                  description: Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to <code>IN_PROGRESS</code>. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to <code>TIMED_OUT</code>.
                  type: object
                  properties:
                    inProgressTimeoutInMinutes:
                      allOf:
                      - $ref: '#/components/schemas/AwsJobTimeoutInProgressTimeoutInMinutes'
                      - description: Specifies the amount of time, in minutes, this device has to finish execution of this job. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). The in progress timer can't be updated and will apply to all job executions for the job. Whenever a job execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail and switch to the terminal <code>TIMED_OUT</code> status.
                files:
                  description: The files to be streamed by the OTA update.
                  type: array
                  items:
                    $ref: '#/components/schemas/OTAUpdateFile'
                  minItems: 1
                roleArn:
                  description: The IAM role that grants Amazon Web Services IoT Core access to the Amazon S3, IoT jobs and Amazon Web Services Code Signing resources to create an OTA update job.
                  type: string
                  minLength: 20
                  maxLength: 2048
                additionalParameters:
                  description: A list of additional OTA update parameters which are name-value pairs.
                  type: object
                  additionalProperties:
                    $ref: '#/components/schemas/Value'
                tags:
                  description: Metadata which can be used to manage updates.
                  type: array
                  items:
                    $ref: '#/components/schemas/Tag'
      summary: Amazon IoT Device Defender Create O T a Update
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - OtaUpdates
    delete:
      operationId: DeleteOTAUpdate
      description: <p>Delete an OTA update.</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">DeleteOTAUpdate</a> action.</p>
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteOTAUpdateResponse'
        '480':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '481':
          description: ResourceNotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
        '482':
          description: ThrottlingException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '483':
          description: UnauthorizedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedException'
        '484':
          description: InternalFailureException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalFailureException'
        '485':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
        '486':
          description: VersionConflictException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionConflictException'
      parameters:
      - name: otaUpdateId
        in: path
        required: true
        description: The ID of the OTA update to delete.
        schema:
          type: string
          pattern: '[a-zA-Z0-9_-]+'
          minLength: 1
          maxLength: 128
      - name: deleteStream
        in: query
        required: false
        description: When true, the stream created by the OTAUpdate process is deleted when the OTA update is deleted. Ignored if the stream specified in the OTAUpdate is supplied by the user.
        schema:
          type: boolean
      - name: forceDeleteAWSJob
        in: query
        required: false
        description: When true, deletes the IoT job created by the OTAUpdate process even if it is "IN_PROGRESS". Otherwise, if the job is not in a terminal state ("COMPLETED" or "CANCELED") an exception will occur. The default is false.
        schema:
          type: boolean
      summary: Amazon IoT Device Defender Delete O T a Update
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - OtaUpdates
    get:
      operationId: GetOTAUpdate
      description: <p>Gets an OTA update.</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">GetOTAUpdate</a> action.</p>
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOTAUpdateResponse'
        '480':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '481':
          description: ThrottlingException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '482':
          description: UnauthorizedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedException'
        '483':
          description: InternalFailureException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalFailureException'
        '484':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
        '485':
          description: ResourceNotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
      parameters:
      - name: otaUpdateId
        in: path
        required: true
        description: The OTA update ID.
        schema:
          type: string
          pattern: '[a-zA-Z0-9_-]+'
          minLength: 1
          maxLength: 128
      summary: Amazon IoT Device Defender Get O T a Update
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - OtaUpdates
  /otaUpdates:
    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: ListOTAUpdates
      description: <p>Lists OTA updates.</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">ListOTAUpdates</a> action.</p>
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOTAUpdatesResponse'
        '480':
          description: InvalidRequestException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
        '481':
          description: ThrottlingException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '482':
          description: UnauthorizedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedException'
        '483':
          description: InternalFailureException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalFailureException'
        '484':
          description: ServiceUnavailableException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableException'
      parameters:
      - name: maxResults
        in: query
        required: false
        description: The maximum number of results to return at one time.
        schema:
          type: integer
          minimum: 1
          maximum: 250
      - name: nextToken
        in: query
        required: false
        description: A token used to retrieve the next set of results.
        schema:
          type: string
      - name: otaUpdateStatus
        in: query
        required: false
        description: The OTA update job status.
        schema:
          type: string
          enum:
          - CREATE_PENDING
          - CREATE_IN_PROGRESS
          - CREATE_COMPLETE
          - CREATE_FAILED
          - DELETE_IN_PROGRESS
          - DELETE_FAILED
      summary: Amazon IoT Device Defender List O T a Updates
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - OtaUpdates
components:
  schemas:
    CustomCodeSigning:
      type: object
      properties:
        signature:
          allOf:
          - $ref: '#/components/schemas/CodeSigningSignature'
          - description: The signature for the file.
        certificateChain:
          allOf:
          - $ref: '#/components/schemas/CodeSigningCertificateChain'
          - description: The certificate chain.
        hashAlgorithm:
          allOf:
          - $ref: '#/components/schemas/HashAlgorithm'
          - description: The hash algorithm used to code sign the file. You can use a string as the algorithm name if the target over-the-air (OTA) update devices are able to verify the signature that was generated using the same signature algorithm. For example, FreeRTOS uses <code>SHA256</code> or <code>SHA1</code>, so you can pass either of them based on which was used for generating the signature.
        signatureAlgorithm:
          allOf:
          - $ref: '#/components/schemas/SignatureAlgorithm'
          - description: The signature algorithm used to code sign the file. You can use a string as the algorithm name if the target over-the-air (OTA) update devices are able to verify the signature that was generated using the same signature algorithm. For example, FreeRTOS uses <code>ECDSA</code> or <code>RSA</code>, so you can pass either of them based on which was used for generating the signature.
      description: Describes a custom method used to code sign a file.
    UnauthorizedException: {}
    GetOTAUpdateResponse:
      type: object
      properties:
        otaUpdateInfo:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateInfo'
          - description: The OTA update info.
    AdditionalParameterMap:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/Value'
    AwsJobExponentialRolloutRate:
      type: object
      required:
      - baseRatePerMinute
      - incrementFactor
      - rateIncreaseCriteria
      properties:
        baseRatePerMinute:
          allOf:
          - $ref: '#/components/schemas/AwsJobRolloutRatePerMinute'
          - description: The minimum number of things that will be notified of a pending job, per minute, at the start of the job rollout. This is the initial rate of the rollout.
        incrementFactor:
          allOf:
          - $ref: '#/components/schemas/AwsJobRolloutIncrementFactor'
          - description: The rate of increase for a job rollout. The number of things notified is multiplied by this factor.
        rateIncreaseCriteria:
          allOf:
          - $ref: '#/components/schemas/AwsJobRateIncreaseCriteria'
          - description: <p>The criteria to initiate the increase in rate of rollout for a job.</p> <p>Amazon Web Services IoT Core supports up to one digit after the decimal (for example, 1.5, but not 1.55).</p>
      description: The rate of increase for a job rollout. This parameter allows you to define an exponential rate increase for a job rollout.
    OTAUpdateId:
      type: string
      pattern: '[a-zA-Z0-9_-]+'
      minLength: 1
      maxLength: 128
    AwsJobPresignedUrlConfig:
      type: object
      properties:
        expiresInSec:
          allOf:
          - $ref: '#/components/schemas/ExpiresInSeconds'
          - description: How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 1800 seconds. Pre-signed URLs are generated when a request for the job document is received.
      description: Configuration information for pre-signed URLs. Valid when <code>protocols</code> contains HTTP.
    InlineDocument:
      type: string
    InvalidRequestException: {}
    SigningProfileParameter:
      type: object
      properties:
        certificateArn:
          allOf:
          - $ref: '#/components/schemas/CertificateArn'
          - description: Certificate ARN.
        platform:
          allOf:
          - $ref: '#/components/schemas/Platform'
          - description: The hardware platform of your device.
        certificatePathOnDevice:
          allOf:
          - $ref: '#/components/schemas/CertificatePathOnDevice'
          - description: The location of the code-signing certificate on your device.
      description: Describes the code-signing profile.
    InternalFailureException: {}
    Targets:
      type: array
      items:
        $ref: '#/components/schemas/Target'
      minItems: 1
    ServiceUnavailableException: {}
    AwsIotJobArn:
      type: string
    OTAUpdateErrorMessage:
      type: string
    AwsIotJobId:
      type: string
    VersionConflictException: {}
    OTAUpdateFile:
      type: object
      properties:
        fileName:
          allOf:
          - $ref: '#/components/schemas/FileName'
          - description: The name of the file.
        fileType:
          allOf:
          - $ref: '#/components/schemas/FileType'
          - description: An integer value you can include in the job document to allow your devices to identify the type of file received from the cloud.
        fileVersion:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateFileVersion'
          - description: The file version.
        fileLocation:
          allOf:
          - $ref: '#/components/schemas/FileLocation'
          - description: The location of the updated firmware.
        codeSigning:
          allOf:
          - $ref: '#/components/schemas/CodeSigning'
          - description: The code signing method of the file.
        attributes:
          allOf:
          - $ref: '#/components/schemas/AttributesMap'
          - description: A list of name/attribute pairs.
      description: Describes a file to be associated with an OTA update.
    OTAUpdatesSummary:
      type: array
      items:
        $ref: '#/components/schemas/OTAUpdateSummary'
    ResourceAlreadyExistsException: {}
    CertificateName:
      type: string
    MaximumPerMinute:
      type: integer
      minimum: 1
      maximum: 1000
    AttributesMap:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/Value'
    HashAlgorithm:
      type: string
    Stream:
      type: object
      properties:
        streamId:
          allOf:
          - $ref: '#/components/schemas/StreamId'
          - description: The stream ID.
        fileId:
          allOf:
          - $ref: '#/components/schemas/FileId'
          - description: The ID of a file associated with a stream.
      description: Describes a group of files that can be streamed.
    StreamId:
      type: string
      pattern: '[a-zA-Z0-9_-]+'
      minLength: 1
      maxLength: 128
    S3Bucket:
      type: string
      minLength: 1
    DateType:
      type: string
      format: date-time
    OTAUpdateInfo:
      type: object
      properties:
        otaUpdateId:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateId'
          - description: The OTA update ID.
        otaUpdateArn:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateArn'
          - description: The OTA update ARN.
        creationDate:
          allOf:
          - $ref: '#/components/schemas/DateType'
          - description: The date when the OTA update was created.
        lastModifiedDate:
          allOf:
          - $ref: '#/components/schemas/DateType'
          - description: The date when the OTA update was last updated.
        description:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateDescription'
          - description: A description of the OTA update.
        targets:
          allOf:
          - $ref: '#/components/schemas/Targets'
          - description: The targets of the OTA update.
        protocols:
          allOf:
          - $ref: '#/components/schemas/Protocols'
          - description: The protocol used to transfer the OTA update image. Valid values are [HTTP], [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device can choose the protocol.
        awsJobExecutionsRolloutConfig:
          allOf:
          - $ref: '#/components/schemas/AwsJobExecutionsRolloutConfig'
          - description: Configuration for the rollout of OTA updates.
        awsJobPresignedUrlConfig:
          allOf:
          - $ref: '#/components/schemas/AwsJobPresignedUrlConfig'
          - description: Configuration information for pre-signed URLs. Valid when <code>protocols</code> contains HTTP.
        targetSelection:
          allOf:
          - $ref: '#/components/schemas/TargetSelection'
          - description: 'Specifies whether the OTA update will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the OTA update (SNAPSHOT). If continuous, the OTA update may also be run on a thing when a change is detected in a target. For example, an OTA update will run on a thing when the thing is added to a target group, even after the OTA update was completed by all things originally in the group. '
        otaUpdateFiles:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateFiles'
          - description: A list of files associated with the OTA update.
        otaUpdateStatus:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateStatus'
          - description: The status of the OTA update.
        awsIotJobId:
          allOf:
          - $ref: '#/components/schemas/AwsIotJobId'
          - description: The IoT job ID associated with the OTA update.
        awsIotJobArn:
          allOf:
          - $ref: '#/components/schemas/AwsIotJobArn'
          - description: The IoT job ARN associated with the OTA update.
        errorInfo:
          allOf:
          - $ref: '#/components/schemas/ErrorInfo'
          - description: Error information associated with the OTA update.
        additionalParameters:
          allOf:
          - $ref: '#/components/schemas/AdditionalParameterMap'
          - description: A collection of name/value pairs
      description: Information about an OTA update.
    TagValue:
      type: string
      minLength: 0
      maxLength: 256
    AwsJobRateIncreaseCriteriaNumberOfThings:
      type: integer
      minimum: 1
    CodeSigningSignature:
      type: object
      properties:
        inlineDocument:
          allOf:
          - $ref: '#/components/schemas/Signature'
          - description: A base64 encoded binary representation of the code signing signature.
      description: Describes the signature for a file.
    FileLocation:
      type: object
      properties:
        stream:
          allOf:
          - $ref: '#/components/schemas/Stream'
          - description: The stream that contains the OTA update.
        s3Location:
          allOf:
          - $ref: '#/components/schemas/S3Location'
          - description: The location of the updated firmware in S3.
      description: The location of the OTA update.
    LimitExceededException: {}
    ThrottlingException: {}
    FileName:
      type: string
    SigningJobId:
      type: string
    OTAUpdateDescription:
      type: string
      pattern: '[^\p{C}]+'
      maxLength: 2028
    CertificateArn:
      type: string
    Platform:
      type: string
    OTAUpdateFiles:
      type: array
      items:
        $ref: '#/components/schemas/OTAUpdateFile'
      minItems: 1
    Destination:
      type: object
      properties:
        s3Destination:
          allOf:
          - $ref: '#/components/schemas/S3Destination'
          - description: Describes the location in S3 of the updated firmware.
      description: Describes the location of the updated firmware.
    CodeSigning:
      type: object
      properties:
        awsSignerJobId:
          allOf:
          - $ref: '#/components/schemas/SigningJobId'
          - description: The ID of the <code>AWSSignerJob</code> which was created to sign the file.
        startSigningJobParameter:
      

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