Amazon IoT Core OtaUpdates API

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

OpenAPI Specification

amazon-iot-core-otaupdates-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 2015-05-28
  x-release: v4
  title: AWS IoT Accept Certificate Transfer OtaUpdates 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
      version: 1.0.0
    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 Core 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 Core 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 Core 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 Core List O T a Updates
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      tags:
      - OtaUpdates
components:
  schemas:
    ResourceNotFoundException: {}
    ThrottlingException: {}
    FileName:
      type: string
    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.
    DateType:
      type: string
      format: date-time
    AwsJobRateIncreaseCriteriaNumberOfThings:
      type: integer
      minimum: 1
    ListOTAUpdatesResponse:
      type: object
      properties:
        otaUpdates:
          allOf:
          - $ref: '#/components/schemas/OTAUpdatesSummary'
          - description: A list of OTA update jobs.
        nextToken:
          allOf:
          - $ref: '#/components/schemas/NextToken'
          - description: A token to use to get the next set of results.
    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.
    MaximumPerMinute:
      type: integer
      minimum: 1
      maximum: 1000
    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.
    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.
    AwsJobAbortCriteriaList:
      type: array
      items:
        $ref: '#/components/schemas/AwsJobAbortCriteria'
      minItems: 1
    S3Destination:
      type: object
      properties:
        bucket:
          allOf:
          - $ref: '#/components/schemas/S3Bucket'
          - description: The S3 bucket that contains the updated firmware.
        prefix:
          allOf:
          - $ref: '#/components/schemas/Prefix'
          - description: The S3 prefix.
      description: Describes the location of updated firmware in S3.
    FileId:
      type: integer
      minimum: 0
      maximum: 255
    ResourceAlreadyExistsException: {}
    Code:
      type: string
    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.
    OTAUpdateDescription:
      type: string
      pattern: '[^\p{C}]+'
      maxLength: 2028
    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:
          allOf:
          - $ref: '#/components/schemas/StartSigningJobParameter'
          - description: Describes the code-signing job.
        customCodeSigning:
          allOf:
          - $ref: '#/components/schemas/CustomCodeSigning'
          - description: A custom method for code signing a file.
      description: Describes the method to use when code signing a file.
    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.
    AwsJobAbortCriteriaAbortAction:
      type: string
      enum:
      - CANCEL
    CertificateName:
      type: string
    ErrorInfo:
      type: object
      properties:
        code:
          allOf:
          - $ref: '#/components/schemas/Code'
          - description: The error code.
        message:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateErrorMessage'
          - description: The error message.
      description: Error information.
    CreateOTAUpdateResponse:
      type: object
      properties:
        otaUpdateId:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateId'
          - description: The OTA update ID.
        awsIotJobId:
          allOf:
          - $ref: '#/components/schemas/AwsIotJobId'
          - description: The IoT job ID associated with the OTA update.
        otaUpdateArn:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateArn'
          - description: The OTA update ARN.
        awsIotJobArn:
          allOf:
          - $ref: '#/components/schemas/AwsIotJobArn'
          - description: The IoT job ARN associated with the OTA update.
        otaUpdateStatus:
          allOf:
          - $ref: '#/components/schemas/OTAUpdateStatus'
          - description: The OTA update status.
    Signature:
      type: string
    AwsIotJobArn:
      type: string
    CertificatePathOnDevice:
      type: string
    OTAUpdateSummary:
      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.
      description: An OTA update summary.
    StartSigningJobParameter:
      type: object
      properties:
        signingProfileParameter:
          allOf:
          - $ref: '#/components/schemas/SigningProfileParameter'
          - description: Describes the code-signing profile.
        signingProfileName:
          allOf:
          - $ref: '#/components/schemas/SigningProfileName'
          - description: The code-signing profile name.
        destination:
          allOf:
          - $ref: '#/components/schemas/Destination'
          - description: The location to write the code-signed file.
      description: Information required to start a signing job.
    Value:
      type: string
      pattern: '[\s\S]*'
      minLength: 0
      maxLength: 4096
    AwsJobRolloutIncrementFactor:
      type: number
      format: double
    DeleteOTAUpdateResponse:
      type: object
      properties: {}
    NextToken:
      type: string
    FileType:
      type: integer
      minimum: 0
      maximum: 255
    SigningProfileName:
      type: string
    Prefix:
      type: string
    AwsJobTimeoutInProgr

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