Amazon FreeRTOS OTA Updates API

Over-the-air firmware update management

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/json-schema/amazon-freertos-software-configuration-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/json-schema/amazon-freertos-ota-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/json-schema/amazon-freertos-device-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/json-schema/amazon-freertos-ota-file-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/json-schema/amazon-freertos-tag-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/json-structure/amazon-freertos-software-configuration-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/json-structure/amazon-freertos-ota-update-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/json-structure/amazon-freertos-device-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/json-structure/amazon-freertos-ota-file-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/json-structure/amazon-freertos-tag-structure.json

Other Resources

🔗
Examples
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/examples/amazon-freertos-software-configuration-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/examples/amazon-freertos-ota-update-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/examples/amazon-freertos-device-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/examples/amazon-freertos-ota-file-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/examples/amazon-freertos-tag-example.json
🔗
Pricing
https://aws.amazon.com/freertos/pricing/
🔗
FAQ
https://aws.amazon.com/freertos/faqs/
🔗
APIsJSON
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/apis.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/arazzo/amazon-freertos-decommission-ota-update-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/arazzo/amazon-freertos-decommission-software-configuration-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/arazzo/amazon-freertos-provision-software-configuration-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/arazzo/amazon-freertos-rollout-ota-update-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/arazzo/amazon-freertos-tag-software-configuration-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/amazon-freertos/refs/heads/main/arazzo/amazon-freertos-update-software-configuration-workflow.yml

OpenAPI Specification

amazon-freertos-ota-updates-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon FreeRTOS Management OTA Updates API
  description: The Amazon FreeRTOS Management API provides programmatic access to manage FreeRTOS software configurations, OTA updates, and device connectivity for microcontroller-based IoT devices.
  version: '2021-11-29'
  contact:
    name: AWS Support
    url: https://aws.amazon.com/premiumsupport/
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
- url: https://iot.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- awsSigV4: []
tags:
- name: OTA Updates
  description: Over-the-air firmware update management
paths:
  /otaUpdates:
    post:
      operationId: createOtaUpdate
      summary: Create OTA Update
      description: Creates an AWS IoT OTA update on a target group of devices.
      tags:
      - OTA Updates
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOtaUpdateRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OtaUpdate'
              examples:
                default:
                  x-microcks-default: true
                  value:
                    otaUpdateId: ota-abc12345
                    otaUpdateArn: arn:aws:iot:us-east-1:123456789012:otaupdate/ota-abc12345
                    otaUpdateStatus: CREATE_COMPLETE
                    description: FreeRTOS OTA update v2.0
                    targets:
                    - arn:aws:iot:us-east-1:123456789012:thing/sensor-001
                    creationDate: '2025-06-01T10:00:00Z'
                    lastModifiedDate: '2025-06-01T10:05:00Z'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      operationId: listOtaUpdates
      summary: List OTA Updates
      description: Lists OTA updates.
      tags:
      - OTA Updates
      parameters:
      - name: maxResults
        in: query
        schema:
          type: integer
        description: Maximum results.
      - name: nextToken
        in: query
        schema:
          type: string
        description: Pagination token.
      - name: otaUpdateStatus
        in: query
        schema:
          type: string
        description: Filter by OTA update status.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  otaUpdates:
                    type: array
                    items:
                      $ref: '#/components/schemas/OtaUpdateSummary'
                  nextToken:
                    type: string
              examples:
                default:
                  x-microcks-default: true
                  value:
                    otaUpdates:
                    - otaUpdateId: ota-abc12345
                      otaUpdateArn: arn:aws:iot:us-east-1:123456789012:otaupdate/ota-abc12345
                      otaUpdateStatus: CREATE_COMPLETE
                      description: FreeRTOS OTA update v2.0
                      targets:
                      - arn:aws:iot:us-east-1:123456789012:thing/sensor-001
                      creationDate: '2025-06-01T10:00:00Z'
                      lastModifiedDate: '2025-06-01T10:05:00Z'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /otaUpdates/{otaUpdateId}:
    get:
      operationId: getOtaUpdate
      summary: Get OTA Update
      description: Gets an OTA update.
      tags:
      - OTA Updates
      parameters:
      - name: otaUpdateId
        in: path
        required: true
        schema:
          type: string
        description: The OTA update ID.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OtaUpdateInfo'
              examples:
                default:
                  x-microcks-default: true
                  value:
                    otaUpdateInfo:
                      otaUpdateId: ota-abc12345
                      otaUpdateArn: arn:aws:iot:us-east-1:123456789012:otaupdate/ota-abc12345
                      otaUpdateStatus: CREATE_COMPLETE
                      description: FreeRTOS OTA update v2.0
                      targets:
                      - arn:aws:iot:us-east-1:123456789012:thing/sensor-001
                      creationDate: '2025-06-01T10:00:00Z'
                      lastModifiedDate: '2025-06-01T10:05:00Z'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteOtaUpdate
      summary: Delete OTA Update
      description: Deletes an OTA update.
      tags:
      - OTA Updates
      parameters:
      - name: otaUpdateId
        in: path
        required: true
        schema:
          type: string
        description: The OTA update ID to delete.
      - name: deleteStream
        in: query
        schema:
          type: boolean
        description: Whether to delete the stream associated with the update.
      - name: forceDeleteAWSJob
        in: query
        schema:
          type: boolean
        description: Whether to force delete the associated AWS IoT job.
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    ErrorResponse:
      type: object
      description: Standard error response.
      properties:
        message:
          type: string
        code:
          type: string
    OtaUpdateInfo:
      type: object
      description: Detailed information about an OTA update.
      properties:
        otaUpdateInfo:
          $ref: '#/components/schemas/OtaUpdate'
    CreateOtaUpdateRequest:
      type: object
      required:
      - otaUpdateId
      - targets
      - files
      properties:
        otaUpdateId:
          type: string
        description:
          type: string
        targets:
          type: array
          items:
            type: string
        protocols:
          type: array
          items:
            type: string
        targetSelection:
          type: string
          enum:
          - CONTINUOUS
          - SNAPSHOT
        files:
          type: array
          items:
            type: object
        roleArn:
          type: string
        tags:
          type: object
          additionalProperties:
            type: string
    OtaUpdateSummary:
      type: object
      description: Summary of an OTA update.
      properties:
        otaUpdateId:
          type: string
        otaUpdateArn:
          type: string
        creationDate:
          type: string
          format: date-time
    OtaUpdate:
      type: object
      description: An over-the-air (OTA) firmware update job for FreeRTOS devices.
      properties:
        otaUpdateId:
          type: string
        otaUpdateArn:
          type: string
        otaUpdateStatus:
          type: string
          enum:
          - CREATE_PENDING
          - CREATE_IN_PROGRESS
          - CREATE_COMPLETE
          - CREATE_FAILED
        description:
          type: string
        targets:
          type: array
          items:
            type: string
        protocols:
          type: array
          items:
            type: string
            enum:
            - MQTT
            - HTTP
        creationDate:
          type: string
          format: date-time
        lastModifiedDate:
          type: string
          format: date-time
        awsIotJobId:
          type: string
        awsIotJobArn:
          type: string
      required:
      - otaUpdateId
      - targets
  securitySchemes:
    awsSigV4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4