Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

Note: Orchestrate APIs are available for use as part of your Orchestrate Premium subscription. Premium subscribers can request an API certificate as outlined below.

Open api
openapi: 3.0.0
info:
  title: Amino Orchestrate APIs
  description: >-
    # Disclaimer


    This document contains information on a product under development. Amino
    Communications Ltd reserves the right to change or discontinue this product
    without notice.


    # Trademarks and copyright


    Amino Communications and the Amino logo are trademarks of Amino
    Communications Limited.


    All other trademarks are the property of their respective owners.


    © Amino Communications Ltd, 2021


    Confidential


    # Amino contact details


    | Method | Contact  <br> |

    | --- | --- |

    | Telephone | From UK: (01954) 234100  <br>International: +44 1954 234100 |

    | Fax | From UK: (01954) 234101  <br>International: +44 1954 234101 |

    | E-mail | [info@aminocom.com](mailto:info@aminocom.com) |

    | Web | [www.aminocom.com](http://www.aminocom.com) |


    Comments about the documentation are welcome. Please submit feedback to
    [docs@aminocom.com](mailto:docs@aminocom.com).


    For further information about Amino or Amino products, please e-mail
    [info@aminocom.com](mailto:info@aminocom.com).


    # Time Zone and Date Time Format


    Unless it is specified, the time is in UTC time zone and the format is in
    yyyy-MM-dd HH:mm:ss in the document.


    # Authentication


    For integration purposes, the following APIs are accessible from the public
    domain and require SSL mutual authentication. Client must pass their private
    key (domain.key) and the x509 certificate (domain.crt) which is signed by
    Amino.


    ## How to request a x509 certificate


    In order to access the API, customers need a private key and a x509
    certificate from Amino, which are used for authentication.


    Following steps use the `openssl` command. If you use another tool, please
    refer to its manual accordingly.


    First, customers need to generate their own private key (domain.key). This
    file is just like a password, so it should **NOT** be exposed to others.


    ```

    openssl genrsa -out domain.key 2048 


    ```


    Then, customers can use the private key to create a CSR file. You will be
    asked to input the information of the certificate. Just make sure that you
    enter your ENGAGE’s domain name for the **Common Name**. Other information
    can be arbitrary or enter '.' for blank.


    ```

    openssl req -new -key domain.key -out domain.csr 


    ```


    Later, customers give the CSR file (domain.csr) to Amino’s support. Our
    support will generate the x509 certificate (domain.crt) for you.


    Finally, customers can use their own private key (domain.key) and the x509
    certificate (domain.crt) to access the integration API.


    **Important Note** - The APIs will work against the top level domain only
    and not any sub domains.
  version: Rev5
tags:
  - name: System Integration APIs
    description: >-
      Note that system APIs are called from server:
      system.amino-orchestrate.com:2444
  - name: APIs to operate the device directly
    description: >-
      Note that the APIs are called from server:
      system.amino-orchestrate.com:2444


      Only for devices supporting webengine (protocol version >= 3.2) and
      connecting to Resolve can use these APIs.
  - name: Manage Integration APIs
    description: >-
      Note that manage APIs are called from server:
      manage.amino-orchestrate.com:2444
  - name: Resolve Integration APIs
    description: >-
      Note that resolve APIs are called from server:
      resolve.amino-orchestrate.com:2444
paths:
  /system/sapi/device/register:
    post:
      tags:
        - System Integration APIs
      summary: Register device
      description: >-
        # **Description**


        Register a new device.


        If registration is successful, a device json will be returned.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "sn=26-9999999&mac=0003e6999999&productClass=26&deviceType=1&operator=SampleDomain"
        https://system.amino-orchestrate.com:2444/system/sapi/device/register


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                sn:
                  type: string
                  description: 'Serial number '
                  example: 107-1000001
                mac:
                  type: string
                  description: >-
                    MAC address. You must specify either the OUI or MAC for this
                    api 
                oui:
                  type: string
                  description: >-
                    OUI identifies the manufacturer. You must specify either the
                    OUI or MAC for this api 
                  example: 5C0FFB
                deviceType:
                  type: integer
                  description: 8 for Enable Enterprise
                  example: '8'
                productClass:
                  type: integer
                  description: 'Product class '
                  example: '107'
                subscriber:
                  type: string
                  description: 'Optional, set the subscriber field if specified '
                  example: test-subscriber
                referenceId:
                  type: string
                  description: 'Optional, set the referenceId field if specified '
                  example: test-reference
                operator:
                  type: string
                  description: >-
                    Optional, the domain of the registering device. Set the
                    certificated domain if not specified. 
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterDeviceResponse'
              example:
                id: 8855904
                sn: 11-1111111
                oui: '0003E6'
                productClass: '11'
                mac: null
                deviceTypeId: 1
                subscriber: test-subscriber
                referenceId: test-reference
                others: null
                dateCreated: '2023-03-28 06:59:10'
                lastUpdated: '2023-03-28 06:59:10'
                operator: Amino Communications
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterDeviceErrorResponse'
              example:
                error: >-
                  Failed to proceed as device 11-1111110 already exists. Please
                  check the input.
  /system/sapi/device/delete:
    post:
      tags:
        - System Integration APIs
      summary: Delete device
      description: >-
        # **Description**


        Delete a device.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "sn=26-9999999" https://system.amino-orchestrate.com:2444/system/sapi/device/delete


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    The identifier returning from the register API, the api will
                    look up the device record by ID. You must specify either the
                    id, sn, or mac for this api. 
                sn:
                  type: string
                  description: >-
                    Serial number, the api will look up the device record by
                    serial number. You must specify either the id, sn, or mac
                    for this api. 
                  example: 107-1000001
                deviceType:
                  type: string
                  description: |-
                    8 for Enable Enterprise \
                    ***if not specified, default set to 8
                mac:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                oui:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                productClass:
                  type: string
                  description: >-
                    Optional, this an additional field to search the device
                    record. 
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteDeviceErrorResponse'
              example:
                error: Device Not Found
  /system/sapi/device/get:
    post:
      tags:
        - System Integration APIs
      summary: Get device
      description: >-
        # **Description**


        Get the details of device(s).


        The maximum number of devices can be return is 1000.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "matchType=exact&sn=26-9999999" https://system.amino-orchestrate.com:2444/system/sapi/device/get


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    The identifier returning from the register API, the api will
                    look up the device records by ID. 
                sn:
                  type: string
                  description: >-
                    Serial number, the api will look up the device records by
                    serial number. 
                  example: 107-10588275
                deviceType:
                  type: integer
                  description: |-
                    8 for Enable Enterprise \
                    ***if not specified, default set to 8
                  example: '8'
                mac:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                oui:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                productClass:
                  type: string
                  description: >-
                    Optional, the api will look up the device records by product
                    class. 
                subscriber:
                  type: string
                  description: >-
                    Optional, the api will look up the device records by
                    subscriber field. 
                referenceId:
                  type: string
                  description: >-
                    Optional, the api will look up the device records by
                    referenceId field. 
                matchType:
                  type: string
                  description: >-
                    Optional, the match type of the lookup filter. By default,
                    it is exact match if not specified. \

                    Allowed value: [ exact | partial ]
                  example: exact
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetDeviceResponseElement'
              example:
                - id: 4341782
                  sn: 105-6594764
                  oui: '0003E6'
                  productClass: '105'
                  mac: 0003E6C94198
                  deviceTypeId: 7
                  subscriber: ''
                  referenceId: ''
                  others: ''
                  dateCreated: '2021-03-11 04:55:16'
                  lastUpdated: '2023-03-17 07:39:34'
                  operator: Amino Communications
                  ip: 118.140.253.98
                  lanIp: 10.0.35.251
  /system/sapi/device/update:
    post:
      tags:
        - System Integration APIs
      summary: Update device
      description: >-
        # **Description**


        Update the details of a device.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "sn=26-9999999&subscriber=zzHome&referenceId=Z1234"
        https://system.amino-orchestrate.com:2444/system/sapi/device/update


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    The identifier returning from the register API, the api will
                    look up the device record by ID. You must specify either the
                    id, sn, or mac for this api. 
                sn:
                  type: string
                  description: >-
                    Serial number, the api will look up the device record by
                    serial number. You must specify either the id, sn, or mac
                    for this api. 
                  example: 107-1000001
                deviceType:
                  type: string
                  description: |-
                    8 for Enable Enterprise \
                    ***if not specified, default set to 8
                mac:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                oui:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                productClass:
                  type: string
                  description: >-
                    Optional, this an additional filter to lookup the device
                    record. 
                subscriber:
                  type: integer
                  description: 'Optional, update the subscriber field if specified '
                  example: '1112604'
                referenceId:
                  type: string
                  description: 'Optional, update the referenceId field if specified '
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateDeviceResponse'
              example:
                id: 8855917
                sn: 11-1111110
                oui: '0003E6'
                productClass: '11'
                mac: null
                deviceTypeId: 1
                subscriber: '1112604'
                referenceId: null
                others: null
                dateCreated: '2023-03-28 09:44:58'
                lastUpdated: '2023-03-28 09:45:13'
                operator: Amino Communications
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateDeviceErrorResponse'
              example:
                error: Device Not Found
  /system/sapi/device/rebootViaEnsight:
    post:
      tags:
        - System Integration APIs
      summary: Reboot devices via Resolve
      description: >-
        # Description


        Reboot the device(s) via RESOLVE channel. This api is asynchronized. It
        will response a `batch_id`, which can be used in API, **Check Resolve's
        Batch Command Status**, to check the command status.


        ## Request example


        Example using `sns` parameter:


        ```

        curl --cert domain.crt --key domain.key --data
        "sns=26-9999999&sns=26-9999998&sns=26-9999997&ts=1514764800"
        https://system.amino-orchestrate.com:2444/system/sapi/device/rebootViaEnsight


        ```


        Example using a file with content of sn list:


        ```

        curl --cert domain.crt --key domain.key --data-binary "@path/to/sn list
        file" --data "ts=1514764800"
        https://system.amino-orchestrate.com:2444/system/sapi/device/rebootViaEnsight


        ```


        where the content of the file is:


        ```

        sns=26-9999999&sns=26-9999998&sns=26-9999997 


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                sns:
                  type: string
                  description: >-
                    Array of Serial number. You must specify either sns or macs
                    for this api. Max. size of the array is 1000 
                  example: 107-1000001
                macs:
                  type: string
                  description: >-
                    Array of MAC address. You must specify either sns, or macs
                    for this api. Max. size of the array is 1000 
                ts:
                  type: string
                  description: 'Unix Timestamp '
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RebootDevicesViaResolveResponse'
              example:
                batch_id: 7542
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RebootDevicesViaResolveErrorResponse'
              example:
                error: Device[11-1111110] Not Found
  /system/sapi/ensight/batch-command/status:
    post:
      tags:
        - System Integration APIs
      summary: Check Resolve's batch command status
      description: >-
        # Description


        Check the command status. Followings are the possible status:


        | Status Value | Description |

        | --- | --- |

        | queued | The command has been not delivered to the device yet. |

        | SENT | The command has been delivered to the device, but the device
        has not responded. |

        | NA | The device has responded that the command is not available. |

        | NE | The device has responded that the command has not been executed
        yet. |

        | S | The device has responded that the command has been executed
        successfully. |


        ## Request example


        ```

        curl --cert domain.crt --key domain.key --data "batch_id=1000"
        https://system.amino-orchestrate.com:2444/system/sapi/ensight/batch-command/status


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                batch_id:
                  type: integer
                  description: 'The batch_id responsed from batch API '
                  example: '7544'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/CheckResolveSBatchCommandStatusResponseElement
              example:
                - esn: 11-1111110
                  status: queued
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/CheckResolveSBatchCommandStatusErrorResponse
              example:
                msg: No matching batch command.
  /system/sapi/device/uploadViaEnsight:
    post:
      tags:
        - System Integration APIs
      summary: Upload data via Resolve
      description: >-
        # **Description**


        Upload data via Resolve channel. See **Download data via Resolve** API
        for downloading data.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "sns=26-9999999&sns=26-9999998&sns=26-9999997&type=diagnostic_menu"
        https://system.amino-orchestrate.com:2444/system/sapi/device/uploadViaEnsight


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                sns:
                  type: string
                  description: >-
                    Array of Serial number. You must specify either sns, macs,
                    subscribers or referenceIds for this api. Max. size of the
                    array is 1000 
                  example: 107-10588275
                macs:
                  type: string
                  description: >-
                    Array of MAC address. You must specify either sns, macs,
                    subscribers or referenceIds for this api. Max. size of the
                    array is 1000 
                type:
                  type: string
                  description: 'Data type. Current only supports "diagnostic_menu" '
                  example: diagnostic_menu
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadDataViaResolveResponse'
              example:
                batch_id: 7543
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadDataViaResolveErrorResponse'
              example:
                error: Device[11-1111110] Not Found
  /system/sapi/device/downloadDataViaEnsight:
    post:
      tags:
        - System Integration APIs
      summary: Download data via Resolve
      description: >-
        # **Description**


        Download data via Resolve channel. See **Upload data via Resolve** API
        for uploading data.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "sns=26-9999999&sns=26-9999998&sns=26-9999997&type=diagnostic_menu"
        https://system.amino-orchestrate.com:2444/system/sapi/device/downloadDataViaEnsight


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                sns:
                  type: string
                  description: >-
                    Array of Serial number. You must specify either sns, macs,
                    subscribers or referenceIds for this api. Max. size of the
                    array is 1000 
                  example: 107-10588275
                macs:
                  type: string
                  description: >-
                    Array of MAC address. You must specify either sns, macs,
                    subscribers or referenceIds for this api. Max. size of the
                    array is 1000 
                subscribers:
                  type: string
                  description: >-
                    Array of subscriber. You must specify either sns, macs,
                    subscribers or referenceIds for this api. Max. size of the
                    array is 1000 
                referenceIds:
                  type: string
                  description: >-
                    Array of reference ID. You must specify either sns, macs,
                    subscribers or referenceIds for this api. Max. size of the
                    array is 1000 
                type:
                  type: string
                  description: 'Data type. Current only supports "diagnostic_menu" '
                  example: diagnostic_menu
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DownloadDataViaResolveResponseElement'
              example:
                - id: 5689
                  commandId: 313871
                  oui: '0003E6'
                  productClass: '105'
                  esn: 105-6594764
                  macAddress: 0003E6C94198
                  type: diagnostic_menu
                  contentType: text/plain; charset=utf-8
                  data: >-
                    {"General":"{\"Android Version\":\"10\",\"Board
                    Version\":\"B1-100\",\"Build Date\":\"Tue Sep 20 01:37:38
                    UTC 2022\",\"Build
                    Fingerprint\":\"Amino\/Amigo7xcCN\/Amigo7xcCN:10\/QTT8.201201.002\/24.3.x:userdebug\/release-keys\",\"Build
                    Version\":\"24.3.x\",\"CPU
                    Temperature\":\"39.300003℃\",\"Model
                    Name\":\"Amigo7xcCN\",\"Power Status\":\"Sleep\",\"Serial
                    Number\":\"105-6594764\",\"System Uptime\":\"2h
                    29m\"}","Interface":"{\"\":[\"Enabled\",\"Active\"],\"Ethernet\":[\"Yes\",\"Yes\"],\"HDMI\":[\"Yes\",\"No\"],\"USB\":[\"Yes\",\"No\"]}","Network":"{\"Bridge
                    Mode\":\"--\",\"Interface\":\"eth0\",\"IP Address
                    v4\":\"10.0.35.251\",\"IP Address
                    v6\":\"FE80::F2D6:115E:1EC5:CF65\",\"Mac
                    Addr\":\"00:03:E6:C9:41:98\",\"Network
                    Type\":\"eth\"}","WiFi":"{\"Connection
                    Quality\":\"--\",\"Signal
                    Level\":\"--\",\"SSID\":\"--\",\"PHY
                    Mode\":\"--\",\"Status\":\"DISABLED\"}","Launcher":"{\"App
                    Name\":\"Android TV 首頁\",\"Package
                    ID\":\"com.google.android.tvlauncher\",\"Version
                    Code\":1010910649,\"Version
                    Name\":\"5.1.7-508304777-f\"}","Zero Screen App":"{\"There
                    is no configured zero screen app.\":\" \"}","RCU
                    Info":"{}","Storage
                    Info":"{\"\":[\"Total\",\"Used\"],\"內部共用儲存空間\":[\"4.36
                    GB\",\"72.2%\"]}","User Installed Apps":"{\"\":[\"Version
                    Name\",\"Version Code\"],\"Apollo Sample App
                    (com.aminocom.apollosdk.sample)\":[\"Amino-Apollo-2022\",20221207],\"Apollo
                    Internal App
                    (com.aminocom.apollo.demo)\":[\"apollosdk_2022Q1.2-dirty\",20221206],\"ES檔案瀏覽器
                    (com.estrongs.android.pop)\":[\"4.1.9.7.4\",788],\"あ$:Aaλη啊
                    (com.di.instrumentationtest)\":[\"1.0\",1]}","Audio":"{\"Volume\":\"100%\",\"Muted\":\"false\"}","Surround
                    Sound":"{\"Surround Sound
                    Mode\":\"Auto\",\"\":[\"Enabled\",\"HDMI Display\"],\"Dolby
                    Atmos in Dolby Digital Plus\":[\"No\",\"Not
                    Supported\"],\"AAC\":[\"No\",\"Not Supported\"],\"Dolby
                    Digital\":[\"No\",\"Not Supported\"],\"Dolby Digital
                    Plus\":[\"No\",\"Not Supported\"],\"DTS\":[\"No\",\"Not
                    Supported\"]}","Tuner Stat":"{\"No tuner or the tuner stat
                    unavailable.\":\" \"}"}
                  dateCreated: '2023-03-28 07:21:30'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadDataViaResolveErrorResponse'
              example:
                error: Device Not Found
  /system/sapi/device/webengine/system:
    get:
      tags:
        - APIs to operate the device directly
      summary: Get system parameters
      description: >-
        # **Description**


        Get the system paraemters of a device.


        ## Request example 


        ```

        curl -XGET --cert domain.crt --key domain.key --url
        'https://system.amino-orchestrate.com:2444/system/sapi/device/webengine/system?sn=26-9999999'


        ```
      parameters:
        - name: sn
          in: query
          schema:
            type: string
          description: >-
            Serial number, the api will look up the device records by serial
            number. 
          example: 107-10588275
      servers:
        - url: https://system.amino-orchestrate.com:2444
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSystemParametersResponse'
              example:
                uptime: 9340343
                id: 4341782
                oui: '0003E6'
                productClass: '105'
                sn: 105-6594764
                mac: 0003E6C94198
                deviceType: 7
                subscriber: ''
                referenceId: ''
                group: Derek_AndroidQ_Amigo7XV2_Dev
                operator: Amino Communications
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSystemParametersErrorResponse'
              example:
                errno: APIWC0001
                message: Device not found
  /system/sapi/device/webengine/system/spacemgr:
    get:
      tags:
        - APIs to operate the device directly
      summary: Get space manager
      description: >-
        # **Description**


        Get the space manager of a device.


        ## Request example 


        ```

        curl -XGET --cert domain.crt --key domain.key --url
        'https://system.amino-orchestrate.com:2444/system/engage/sapi/device/webengine/system/spacemgr?sn=26-9999999'


        ```
      parameters:
        - name: sn
          in: query
          schema:
            type: string
          description: >-
            Serial number, the api will look up the device records by serial
            number. 
          example: 107-10588275
      servers:
        - url: https://system.amino-orchestrate.com:2444
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSpaceManagerResponse'
              example:
                free: '1163419648'
                total: '4363599872'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSpaceManagerErrorResponse'
              example:
                errno: APIWC0001
                message: Device not found
  /system/sapi/device/webengine/system/hdmi:
    get:
      tags:
        - APIs to operate the device directly
      summary: Get HDMI output status
      description: >-
        # **Description**


        Get the HDMI output status of a device.


        ## Request example 


        ```

        curl -XGET --cert domain.crt --key domain.key --url
        'https://system.amino-orchestrate.com:2444/system/engage/sapi/device/webengine/system/hdmi?sn=26-9999999'


        ```
      parameters:
        - name: sn
          in: query
          schema:
            type: string
          description: >-
            Serial number, the api will look up the device records by serial
            number. 
          example: 107-10588275
      servers:
        - url: https://system.amino-orchestrate.com:2444
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHDMIOutputStatusResponse'
              example:
                connected: true
                rx_powered: true
                hdmi_device: true
                monitor_name: SAMSUNG
                current_resolution: 1080i60
                hotplug_mode: default
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHDMIOutputStatusErrorResponse'
              example:
                errno: APIWC0001
                message: Device not found
  /system/sapi/device/webengine/system/audio:
    get:
      tags:
        - APIs to operate the device directly
      summary: Get system audio settings
      description: >-
        # **Description**


        Get the system audio settings of a device.


        ## Request example 


        ```

        curl -XGET --cert domain.crt --key domain.key --url
        'https://system.amino-orchestrate.com:2444/system/sapi/device/webengine/system/audio?sn=26-9999999' 


        ```
      parameters:
        - name: sn
          in: query
          schema:
            type: string
          description: >-
            Serial number, the api will look up the device records by serial
            number. 
          example: 107-10588275
      servers:
        - url: https://system.amino-orchestrate.com:2444
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSystemAudioSettingsResponse'
              example:
                mute: false
                volume:
                  left: 100
                  right: 100
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSystemAudioSettingsErrorResponse'
              example:
                errno: APIWC0001
                message: Device not found
    put:
      tags:
        - APIs to operate the device directly
      summary: Set system audio settings
      description: >-
        # Description


        Change a device's HDMI output setting.


        ## JSON property in request body:


        | **Property** | Description |

        | --- | --- |

        | id | The identifier returning from the register API, the api will look
        up the device records by ID. |

        | sn | Serial number, the api will look up the device records by serial
        number. |

        | mac | \[Optional\] MAC address, the api will look up the device
        records by MAC address. |

        | deviceType | \[Optional\]  <br>8 for Enable Enterprise |

        | oui | \[Optional\] this is an additional filter to search the device
        record. |

        | productClass | \[Optional\] the api looks up the device records by
        product class. |

        | subscriber | \[Optional\] the api looks up the device records by
        subscriber field. |

        | referenceId | \[Optional\] the api looks up the device records by
        referenceId field. |

        | timeout | \[Optional\] In milliseconds, how long to wait for the
        respond from device. Default is 10000 (10 seconds) |

        | params | \[Compulsory\] Object of audio. "mute" and "volume" can be
        modified |


        ## Request example


        ```

        curl -XPUT --cert domain.crt --key domain.key -H 'Content-Type:
        application/json' --data '{"sn":"26-9999999","params":{"mute":"false"}}'
        --url
        'https://system.amino-orchestrate.com:2444/system/sapi/device/webengine/system/audio' 


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetSystemAudioSettingsRequest'
            example:
              sn: 107-10588275
              params:
                mute: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetSystemAudioSettingsResponse'
              example:
                mute: false
                volume:
                  left: 100
                  right: 100
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetSystemAudioSettingsErrorResponse'
              example:
                errno: APIWC0001
                message: Device not found
  /system/sapi/device/reboot:
    post:
      tags:
        - APIs to operate the device directly
      summary: Reboot device
      description: >-
        # **Description**


        Reboot a device.


        ## Request example 


        ```

        curl -XPOST --cert domain.crt --key domain.key --url
        'https://system.amino-orchestrate.com:2444/system/sapi/device/reboot?sn=26-9999999'


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    The identifier returning from the register API, the api will
                    look up the device records by ID. 
                sn:
                  type: string
                  description: >-
                    Serial number, the api will look up the device records by
                    serial number. 
                  example: 107-10588275
                mac:
                  type: string
                  description: >-
                    [Optional] MAC address, the api will look up the device
                    records by MAC address. 
                deviceType:
                  type: string
                  description: |-
                    [Optional] \
                    8 for Enable Enterprise
                oui:
                  type: string
                  description: >-
                    [Optional] this is an additional filter to search the device
                    record. 
                productClass:
                  type: string
                  description: >-
                    [Optional] the api looks up the device records by product
                    class. 
                subscriber:
                  type: string
                  description: >-
                    [Optional] the api looks up the device records by subscriber
                    field. 
                referenceId:
                  type: string
                  description: >-
                    [Optional] the api looks up the device records by
                    referenceId field. 
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RebootDeviceResponse'
              example:
                msg: >-
                  The device is READY and the command [restart] is set
                  immediately.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RebootDeviceErrorResponse'
              example:
                errno: APIWC0001
                message: Device not found
  /system/sapi/device/webengine/batch:
    post:
      tags:
        - APIs to operate the device directly
      summary: Schedule device operation
      description: >-
        # **Description**


        Schedule one or multiple operations to device(s).


        ## JSON property in request body:


        | **Property** | Description |

        | --- | --- |

        | devices | Array of target devices id object |

        | devices.id | The identifier returning from the  <br>register API, the
        api will look up the  <br>device records by ID. |

        | devices.sn | Serial number, the api will look up the  <br>device
        records by serial number. |

        | devices.oui | \[Optional\] this is an additional filter to  <br>search
        the device record. |

        | devices.productClass | \[Optional\] the api looks up the device 
        <br>records by product class. |

        | devices.deviceType | \[Optional\]  <br>8 for Enable Enterprise |

        | inSeq | specify whether the batch of command should be executed in
        sequence  <br>If true, the commands should be executed one by one in
        order as specified. If one  <br>of the commands is failed, no more
        subsequent commands will be executed.  <br>If false, the commands do not
        need to be executed in order. If any command is  <br>failed, other
        commands can still be executed. |

        | execTs | The unix epoch timestamp to execute the batch of fusion
        engine command |

        | params | \[Compulsory\] Array of webengine command objects. |

        | params.url | webengine api url  <br>e.g ‘/system/audio’,
        ‘/system/hdmi’ |

        | params.method | Request method  <br>e.g. “POST” |

        | params.params | \[Optional\] Command request  <br>parameters  <br>e.g
        volume":{"right":"50","left":"50"}} |

        | params.timeout | \[Optional\] In milliseconds, how long to  <br>wait
        for the respond from device.  <br>Default is 10000 (10 seconds) |


        ## Request example 


        ```

        curl -XPOST --cert domain.crt --key domain.key -H 'Content-Type:
        application/json' --url 

        'https://system.amino-orchestrate.com:2444/system/sapi/device/webengine/batch'
        --data 

        '{"devices":[{"sn":"105-6594764"}, {"sn":"104-7261218"}], "inSeq":
        true, 

        "params":[{"url":"/system/audio", "method":"POST", 

        "params":{"mute":"false"},{"url":"/android/start_activity",
        "method":"POST"}], "execTs": 

        1673322397}' 


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduleDeviceOperationRequest'
            example:
              devices:
                - sn: 105-6594764
              inSeq: true
              execTs: 1673322397
              params:
                - url: /system/audio
                  method: POST
                  params:
                    mute: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleDeviceOperationResponse'
              example:
                batch_id: 7546
  /system/sapi/device/cancel:
    post:
      tags:
        - APIs to operate the device directly
      summary: Cancel scheduled device operation
      description: >-
        # **Description**


        Cancel the scheduled operations set in **Schedule device operation** API
        or **Reboot Devices via Resolve** API.


        ## JSON property in request body:


        | **Property** | Description |

        | --- | --- |

        | batch_id | The batch_id responsed from the API which set the scheduled
        operations to devices |


        ## Request example 


        ```

        curl -XPOST --cert domain.crt --key domain.key -H 'Content-Type:
        application/json' --url 

        'https://system.amino-orchestrate.com:2444/system/sapi/device/cancel'
        --data 

        '{"batch_id":"7500"}' 


        ```
      servers:
        - url: https://system.amino-orchestrate.com:2444
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelScheduledDeviceOperationRequest'
            example:
              batch_id: '7546'
      responses:
        '200':
          description: OK
  /manage/sapi/device/register:
    post:
      tags:
        - Manage Integration APIs
      summary: Register device
      description: >-
        # **Description**


        Register a new device.


        If registration is successful, a device json will be returned.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "sn=26-9999999&oui=0003E6&productClass=26&deviceType=1&group=Group01&operator=SampleDomain"
        https://manage.amino-orchestrate.com:2444/manage/sapi/device/register


        ```
      servers:
        - url: https://manage.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                sn:
                  type: string
                  description: 'Serial number '
                  example: 107-1000001
                mac:
                  type: string
                  description: >-
                    MAC address. You must specify either the OUI or MAC for this
                    api 
                oui:
                  type: string
                  description: >-
                    OUI identifies the manufacturer. You must specify either the
                    OUI or MAC for this api
                  example: 5C0FFB
                deviceType:
                  type: integer
                  description: 8 for Enable Enterprise
                  example: '8'
                productClass:
                  type: integer
                  description: 'Product class '
                  example: '107'
                subscriber:
                  type: string
                  description: 'Optional, set the subscriber field if specified '
                referenceId:
                  type: string
                  description: 'Optional, set the referenceId field if specified '
                group:
                  type: string
                  description: 'Optional, joining the registering device to a group. '
                operator:
                  type: string
                  description: >-
                    Optional, the domain of the registering device. Set the
                    certificated domain if not specified. 
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterDeviceResponse'
              example:
                id: 8855917
                sn: 11-1111110
                oui: '0003E6'
                productClass: '11'
                mac: null
                deviceTypeId: 1
                subscriber: null
                referenceId: null
                others: null
                dateCreated: '2023-03-28 09:44:58'
                lastUpdated: '2023-03-28 09:44:58'
                group: null
                operator: Amino Communications
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterDeviceErrorResponse'
              example:
                error: device is already registered
  /manage/sapi/device/delete:
    post:
      tags:
        - Manage Integration APIs
      summary: Delete device
      description: >-
        # **Description**


        Delete a device.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "sn=26-9999999" https://manage.amino-orchestrate.com:2444/manage/sapi/device/delete


        ```
      servers:
        - url: https://manage.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    The identifier returning from the register API, the api will
                    look up the device record by ID. You must specify either the
                    id, sn, or mac for this api. 
                sn:
                  type: string
                  description: >-
                    Serial number, the api will look up the device record by
                    serial number. You must specify either the id, sn, or mac
                    for this api. 
                  example: 107-1000001
                deviceType:
                  type: string
                  description: |-
                    8 for Enable Enterprise \
                    ***if not specified, default set to 8
                mac:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                oui:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                productClass:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteDeviceErrorResponse'
              example:
                error: Device Not Found
  /manage/sapi/device/reboot:
    post:
      tags:
        - Manage Integration APIs
      summary: Reboot device (Deprecated)
      description: >-
        # Description


        **This API is deprecated. Please use the "Reboot device" from System API
        instead.**  

        Reboot the device via MANAGE channel. If the device is not kickable, the
        command will be valid for 1 day.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "sn=26-9999999" https://manage.amino-orchestrate.com:2444/manage/sapi/device/reboot


        ```
      servers:
        - url: https://manage.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    The identifier returning from the register API, the api will
                    look up the device record by ID. You must specify either the
                    id, sn, or mac for this api. 
                sn:
                  type: string
                  description: >-
                    Serial number, the api will look up the device record by
                    serial number. You must specify either the id, sn, or mac
                    for this api. 
                  example: 107-10588275
                deviceType:
                  type: integer
                  description: |-
                    8 for Enable Enterprise \
                    ***if not specified, default set to 8
                  example: '8'
                mac:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                oui:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                productClass:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RebootDeviceDeprecatedErrorResponse'
              example:
                error: Device Not Found
  /manage/sapi/device/update:
    post:
      tags:
        - Manage Integration APIs
      summary: Update device
      description: >-
        # **Description**


        Update the details of a device.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "sn=26-9999999&referenceId=Z1234&subcriber=zzHome&group=Group02" https://manage.amino-orchestrate.com:2444/manage/sapi/device/update


        ```
      servers:
        - url: https://manage.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    The identifier returning from the register API, the api will
                    look up the device record by ID. You must specify either the
                    id, sn, or mac for this api. 
                sn:
                  type: string
                  description: >-
                    Serial number, the api will look up the device record by
                    serial number. You must specify either the id, sn, or mac
                    for this api. 
                  example: 107-1000001
                deviceType:
                  type: string
                  description: |-
                    8 for Enable Enterprise \
                    ***if not specified, default set to 8
                mac:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                oui:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                productClass:
                  type: string
                  description: >-
                    Optional, this an additional field to search the device
                    record. 
                subscriber:
                  type: integer
                  description: 'Optional, update the subscriber field if specified '
                  example: '1112604'
                referenceId:
                  type: string
                  description: 'Optional, update the referenceId field if specified '
                group:
                  type: string
                  description: 'Optional, add the device to a group if specified '
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateDeviceResponse'
              example:
                id: 8855917
                sn: 11-1111110
                oui: '0003E6'
                productClass: '11'
                mac: null
                deviceTypeId: 1
                subscriber: '1112604'
                referenceId: null
                others: null
                dateCreated: '2023-03-28 09:44:58'
                lastUpdated: '2023-03-28 09:45:13'
                group: null
                operator: Amino Communications
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateDeviceErrorResponse'
              example:
                error: Device Not Found
  /manage/sapi/device/get:
    post:
      tags:
        - Manage Integration APIs
      summary: Get device
      description: >-
        # **Description**


        Get the details of device(s).


        The maximum number of devices can be return is 1000.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "matchType=exact&sn=26-9999999" https://manage.amino-orchestrate.com:2444/manage/sapi/device/get


        ```
      servers:
        - url: https://manage.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    The identifier returning from the register API, the api will
                    look up the device records by ID. 
                sn:
                  type: string
                  description: >-
                    Serial number, the api will look up the device records by
                    serial number.
                  example: 107-10588275
                deviceType:
                  type: integer
                  description: |-
                    8 for Enable Enterprise \
                    ***if not specified, default set to 8
                  example: '8'
                mac:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                oui:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                productClass:
                  type: string
                  description: >-
                    Optional, the api will look up the device records by product
                    class.
                subscriber:
                  type: string
                  description: >-
                    Optional, the api will look up the device records by
                    subscriber field. 
                referenceId:
                  type: string
                  description: >-
                    Optional, the api will look up the device records by
                    referenceId field. 
                matchType:
                  type: string
                  description: >-
                    Optional, the match type of the lookup filter. By default,
                    it is exact match if not specified. \

                    Allowed value: [ exact | partial ]
                  example: exact
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetDeviceResponseElement'
              example:
                - id: 4341782
                  sn: 105-6594764
                  oui: '0003E6'
                  productClass: '105'
                  mac: 0003E6C94198
                  deviceTypeId: 7
                  subscriber: ''
                  referenceId: ''
                  others: ''
                  dateCreated: '2021-03-11 04:55:16'
                  lastUpdated: '2023-03-17 07:39:34'
                  group: Derek_AndroidQ_Amigo7XV2_Dev
                  operator: Amino Communications
                  ip: 118.140.253.98
                  lanIp: 10.0.35.251
                  lastConnected: '2023-03-28 04:53:25'
                  softwareVersion: 24.3.x
                  bblVersion: ''
  /manage/sapi/device/factoryReset:
    post:
      tags:
        - Manage Integration APIs
      summary: Factory reset device
      description: >-
        # **Description**


        Factory reset the device.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data "sn=26-9999999"
        https://manage.amino-orchestrate.com:2444/manage/sapi/device/factoryReset


        ```
      servers:
        - url: https://manage.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                Id:
                  type: string
                  description: >-
                    The identifier returning from the register API, the api will
                    look up the device records by ID. 
                sn:
                  type: string
                  description: >-
                    Serial number, the api will look up the device records by
                    serial number. 
                  example: 107-10588275
                deviceType:
                  type: integer
                  description: |-
                    8 for Enable Enterprise \
                    ***if not specified, default set to 8
                  example: '8'
                mac:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                oui:
                  type: string
                  description: >-
                    Optional, this is an additional filter to search the device
                    record. 
                productClass:
                  type: string
                  description: >-
                    Optional, this an additional field to search the device
                    record. 
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FactoryResetDeviceErrorResponse'
              example:
                error: Device Not Found
  /manage/sapi/device/batchRegister:
    post:
      tags:
        - Manage Integration APIs
      summary: Batch register device
      description: >-
        # Description


        Register multiple devices with **deviceFile** in CSV format.


        ## Format of deviceFile


        **deviceFile** can be with or without CSV header.


        Content of **deviceFile** **without** CSV header should be in the
        following format:  

        sn, oui, productClass


        Example:


        ```

        26-0000001,0003E6,26 

        26-0000002,003E6,26 

        26-0000003,003E6,26 


        ```


        Content of **deviceFile** **with** CSV header should be in the following
        format:


        | CSV Column | Description |

        | --- | --- |

        | sn | Serial number |

        | mac | MAC address. You must specify either the OUI or MAC in the CSV |

        | oui | OUI identifies the manufacturer. You must specify either the OUI
        or MAC in the CSV |

        | productClass | Product class |

        | subscriber | Optional, set the subscriber field if specified |

        | referenceId | Optional, set the referenceId field if specified |


        Example:


        ```

        sn,oui,productClass 

        26-0000001,0003E6,26 

        26-0000002,0030E6,26

        26-0000003,0003E6,26


        ```


        ```

        sn,mac,productClass 

        26-0000001,0003E6000001,26 

        26-0000002, 0003E6000002,26 

        26-0000003, 0003E6000003,26


        ```


        ```

        sn,oui,productClass,subscriber,referenceId 

        26-0000001,0003E6,26,, 

        26-0000002,0003E6,26,, 

        26-0000003,0003E6,26,, 


        ```


        ## Request example


        ```

        curl --cert domain.crt --key domain.key -F "deviceFile=@devices.csv" -F
        "deviceType=1" -F "group=Group01" -F "operator=SampleDomain"
        "https://manage.amino-orchestrate.com:2444/manage/sapi/device/batchRegister"


        ```
      servers:
        - url: https://manage.amino-orchestrate.com:2444
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                deviceFile:
                  type: string
                  description: >-
                    The file in CSV format containing devices’ data for batch
                    registration
                  format: binary
                deviceType:
                  type: integer
                  description: 8 for Enable Enterprise
                  example: '1'
                group:
                  type: string
                  description: Optional, joining the registering device to a group
                operator:
                  type: string
                  description: >-
                    Optional, the domain of the registering device. Set the
                    certificated domain if not specified.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: integer
              example:
                - 8855922
                - 8855923
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchRegisterDeviceErrorResponse'
              example:
                error: Data validation failed
  /manage/sapi/device/download:
    post:
      tags:
        - Manage Integration APIs
      summary: Download device report
      description: >-
        # **Description**


        Download a report of devices.


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        "q[group.name]=Group01&fields=*"  --url
        https://manage.amino-orchestrate.com:2444/manage/sapi/device/download -o
        report.csv


        ```
      servers:
        - url: https://manage.amino-orchestrate.com:2444
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                q[oui]:
                  type: string
                  description: Optional, search parameter for OUI
                q[productClass]:
                  type: string
                  description: Optional, search parameter for product class
                q[sn]:
                  type: string
                  description: Optional, search parameter for sn
                  example: 107-10588275
                q[mac]:
                  type: string
                  description: Optional, search parameter for MAC address
                q[deviceTypeId]:
                  type: string
                  description: Optional, search parameter for device type ID
                q[referenceId]:
                  type: string
                  description: Optional, search parameter for reference ID
                q[subscriber]:
                  type: string
                  description: Optional, search parameter for subscriber
                q[ext.app]:
                  type: string
                  description: Optional, search parameter for current application version
                q[ext.bbl]:
                  type: string
                  description: Optional, search parameter for current bootloader version
                q[ext.connected_ge]:
                  type: string
                  description: >-
                    Optional, search parameter for a timestamp after a
                    particular connected time in milliseconds
                q[ext.connected_le]:
                  type: string
                  description: >-
                    Optional, search parameter for a timestamp before a
                    particular connected time in milliseconds
                q[ext.connected_isnull]:
                  type: string
                  description: Optional, search parameter for device has never connected
                q[ext.connected_isnotnull]:
                  type: string
                  description: Optional, search parameter for device has ever connected
                q[group.id]:
                  type: string
                  description: Optional, search parameter for group ID
                q[group.name]:
                  type: string
                  description: Optional, search parameter for group name
                q[group.id_isnull]:
                  type: string
                  description: Optional, search parameter for device without a group
                q[group.id_isnotnull]:
                  type: string
                  description: Optional, search parameter for device with a group
                q[dateCreated_ge]:
                  type: string
                  description: >-
                    Optional, search parameter for a timestamp after a
                    particular created time in milliseconds
                q[dateCreated_le]:
                  type: string
                  description: >-
                    Optional, search parameter for a timestamp before a
                    particular created time in milliseconds
                'o[oui] ':
                  type: string
                  description: Optional, ordering parameter for OUI
                o[productClass]:
                  type: string
                  description: Optional, ordering parameter for product class
                o[sn]:
                  type: string
                  description: Optional, ordering parameter for serial number
                o[mac]:
                  type: string
                  description: Optional, ordering parameter for MAC address
                o[deviceTypeId]:
                  type: string
                  description: Optional, ordering parameter for device type ID
                o[referenceId]:
                  type: string
                  description: Optional, ordering parameter for reference ID
                o[ext.app]:
                  type: string
                  description: Optional, ordering parameter for current application version
                o[ext.bbl]:
                  type: string
                  description: Optional, ordering parameter for current bootloader version
                o[ext.connected]:
                  type: string
                  description: Optional, ordering parameter for last connected time
                o[dateCreated]:
                  type: string
                  description: Optional, ordering parameter for creation time
                fields:
                  type: string
                  description: >-
                    Fields output to the csv file. \

                    Multiple fields value can be set, e.g.
                    fields=mac&fields=group. \

                    By default, oui, product_class, serial_number are always
                    included. \

                    If set to *, it will return all the available columns. \

                    Accepted values: \

                    mac: MAC address \

                    deviceTypeId: device type ID \

                    group: group name \

                    referenceId: reference ID \

                    subscriber: subscriber \

                    ext.app: current application version \

                    ext.bbl: current bootloader version \

                    ext.connected: last connected time \

                    dateCreated: creation time \

                    *: for all 
                operator:
                  type: string
                  description: >-
                    Optional, the domain of the registering device. Set the
                    certificated domain if not specified. 
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
              example: "oui,product_class,serial_number\r\n0003E6,105,105-6594764\r\n"
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadDeviceReportErrorResponse'
              example:
                error: Group[ACBE] Not Found
  /resolve/sapi/device/getDeviceOnlineStatus:
    get:
      tags:
        - Resolve Integration APIs
      summary: Get device online status in Resolve
      description: >-
        # **Description**


        Get the online status of device.


        # JSON property in request body:


        | **Property** | **Description** |

        | --- | --- |

        | devices | Array of target devices id object. Maximum 10 devices’
        status can be obtained for each call. |

        | devices.id | The identifier returning from the register API, the api
        will look up the device records by ID. |

        | devices.sn | Serial number, the api will look up the device records by
        serial number. |

        | devices.oui | \[Optional\] this is an additional filter to search the
        device record. |

        | devices.productClass | \[Optional\] the api looks up the device
        records by product class. |

        | devices.deviceType | \[Optional\]  <br>8 for Enable Enterprise |


        ## Request example 


        ```

        curl --cert domain.crt --key domain.key --data
        '{"devices":[{"sn":"107-10588275"}]}' https://resolve.amino-orchestrate.com:2444/resolve/sapi/device/getDeviceOnlineStatus


        ```
      servers:
        - url: https://resolve.amino-orchestrate.com:2444
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/GetDeviceOnlineStatusInResolveResponseElement
              example:
                - esn: 107-10588275
                  status: Device is ON-LINE.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/GetDeviceOnlineStatusInResolveErrorResponse
              example:
                errno: APIWC0004
                message: Device  not found
components:
  schemas:
    RegisterDeviceResponse:
      title: RegisterDeviceResponse
      properties:
        id:
          type: integer
          example: 8855917
        sn:
          type: string
          example: 11-1111110
        oui:
          type: string
          example: '0003E6'
        productClass:
          type: string
          example: '11'
        mac:
          example: null
        deviceTypeId:
          type: integer
          example: 1
        subscriber:
          example: null
        referenceId:
          example: null
        others:
          example: null
        dateCreated:
          type: string
          example: '2023-03-28 09:44:58'
        lastUpdated:
          type: string
          example: '2023-03-28 09:44:58'
        group:
          example: null
        operator:
          type: string
          example: Amino Communications
      type: object
      additionalProperties: false
    RegisterDeviceErrorResponse:
      title: RegisterDeviceErrorResponse
      properties:
        error:
          type: string
          example: device is already registered
      type: object
      additionalProperties: false
    DeleteDeviceErrorResponse:
      title: DeleteDeviceErrorResponse
      properties:
        error:
          type: string
          example: Device Not Found
      type: object
      additionalProperties: false
    GetDeviceResponseElement:
      title: GetDeviceResponseElement
      properties:
        id:
          type: integer
          example: 4341782
        sn:
          type: string
          example: 105-6594764
        oui:
          type: string
          example: '0003E6'
        productClass:
          type: string
          example: '105'
        mac:
          type: string
          example: 0003E6C94198
        deviceTypeId:
          type: integer
          example: 7
        subscriber:
          type: string
          example: ''
        referenceId:
          type: string
          example: ''
        others:
          type: string
          example: ''
        dateCreated:
          type: string
          example: '2021-03-11 04:55:16'
        lastUpdated:
          type: string
          example: '2023-03-17 07:39:34'
        group:
          type: string
          example: Derek_AndroidQ_Amigo7XV2_Dev
        operator:
          type: string
          example: Amino Communications
        ip:
          type: string
          example: 118.140.253.98
        lanIp:
          type: string
          example: 10.0.35.251
        lastConnected:
          type: string
          example: '2023-03-28 04:53:25'
        softwareVersion:
          type: string
          example: 24.3.x
        bblVersion:
          type: string
          example: ''
      type: object
      additionalProperties: false
    UpdateDeviceResponse:
      title: UpdateDeviceResponse
      properties:
        id:
          type: integer
          example: 8855917
        sn:
          type: string
          example: 11-1111110
        oui:
          type: string
          example: '0003E6'
        productClass:
          type: string
          example: '11'
        mac:
          example: null
        deviceTypeId:
          type: integer
          example: 1
        subscriber:
          type: string
          example: '1112604'
        referenceId:
          example: null
        others:
          example: null
        dateCreated:
          type: string
          example: '2023-03-28 09:44:58'
        lastUpdated:
          type: string
          example: '2023-03-28 09:45:13'
        group:
          example: null
        operator:
          type: string
          example: Amino Communications
      type: object
      additionalProperties: false
    UpdateDeviceErrorResponse:
      title: UpdateDeviceErrorResponse
      properties:
        error:
          type: string
          example: Device Not Found
      type: object
      additionalProperties: false
    RebootDevicesViaResolveResponse:
      title: RebootDevicesViaResolveResponse
      properties:
        batch_id:
          type: integer
          example: 7542
      type: object
      additionalProperties: false
    RebootDevicesViaResolveErrorResponse:
      title: RebootDevicesViaResolveErrorResponse
      properties:
        error:
          type: string
          example: Device[11-1111110] Not Found
      type: object
      additionalProperties: false
    CheckResolveSBatchCommandStatusResponseElement:
      title: CheckResolveSBatchCommandStatusResponseElement
      properties:
        esn:
          type: string
          example: 11-1111110
        status:
          type: string
          example: queued
      type: object
      additionalProperties: false
    CheckResolveSBatchCommandStatusErrorResponse:
      title: CheckResolveSBatchCommandStatusErrorResponse
      properties:
        msg:
          type: string
          example: No matching batch command.
      type: object
      additionalProperties: false
    UploadDataViaResolveResponse:
      title: UploadDataViaResolveResponse
      properties:
        batch_id:
          type: integer
          example: 7543
      type: object
      additionalProperties: false
    UploadDataViaResolveErrorResponse:
      title: UploadDataViaResolveErrorResponse
      properties:
        error:
          type: string
          example: Device[11-1111110] Not Found
      type: object
      additionalProperties: false
    DownloadDataViaResolveResponseElement:
      title: DownloadDataViaResolveResponseElement
      properties:
        id:
          type: integer
          example: 5689
        commandId:
          type: integer
          example: 313871
        oui:
          type: string
          example: '0003E6'
        productClass:
          type: string
          example: '105'
        esn:
          type: string
          example: 105-6594764
        macAddress:
          type: string
          example: 0003E6C94198
        type:
          type: string
          example: diagnostic_menu
        contentType:
          type: string
          example: text/plain; charset=utf-8
        data:
          type: string
          example: >-
            {"General":"{\"Android Version\":\"10\",\"Board
            Version\":\"B1-100\",\"Build Date\":\"Tue Sep 20 01:37:38 UTC
            2022\",\"Build
            Fingerprint\":\"Amino\/Amigo7xcCN\/Amigo7xcCN:10\/QTT8.201201.002\/24.3.x:userdebug\/release-keys\",\"Build
            Version\":\"24.3.x\",\"CPU Temperature\":\"39.300003℃\",\"Model
            Name\":\"Amigo7xcCN\",\"Power Status\":\"Sleep\",\"Serial
            Number\":\"105-6594764\",\"System Uptime\":\"2h
            29m\"}","Interface":"{\"\":[\"Enabled\",\"Active\"],\"Ethernet\":[\"Yes\",\"Yes\"],\"HDMI\":[\"Yes\",\"No\"],\"USB\":[\"Yes\",\"No\"]}","Network":"{\"Bridge
            Mode\":\"--\",\"Interface\":\"eth0\",\"IP Address
            v4\":\"10.0.35.251\",\"IP Address
            v6\":\"FE80::F2D6:115E:1EC5:CF65\",\"Mac
            Addr\":\"00:03:E6:C9:41:98\",\"Network
            Type\":\"eth\"}","WiFi":"{\"Connection Quality\":\"--\",\"Signal
            Level\":\"--\",\"SSID\":\"--\",\"PHY
            Mode\":\"--\",\"Status\":\"DISABLED\"}","Launcher":"{\"App
            Name\":\"Android TV 首頁\",\"Package
            ID\":\"com.google.android.tvlauncher\",\"Version
            Code\":1010910649,\"Version Name\":\"5.1.7-508304777-f\"}","Zero
            Screen App":"{\"There is no configured zero screen app.\":\"
            \"}","RCU Info":"{}","Storage
            Info":"{\"\":[\"Total\",\"Used\"],\"內部共用儲存空間\":[\"4.36
            GB\",\"72.2%\"]}","User Installed Apps":"{\"\":[\"Version
            Name\",\"Version Code\"],\"Apollo Sample App
            (com.aminocom.apollosdk.sample)\":[\"Amino-Apollo-2022\",20221207],\"Apollo
            Internal App
            (com.aminocom.apollo.demo)\":[\"apollosdk_2022Q1.2-dirty\",20221206],\"ES檔案瀏覽器
            (com.estrongs.android.pop)\":[\"4.1.9.7.4\",788],\"あ$:Aaλη啊
            (com.di.instrumentationtest)\":[\"1.0\",1]}","Audio":"{\"Volume\":\"100%\",\"Muted\":\"false\"}","Surround
            Sound":"{\"Surround Sound Mode\":\"Auto\",\"\":[\"Enabled\",\"HDMI
            Display\"],\"Dolby Atmos in Dolby Digital Plus\":[\"No\",\"Not
            Supported\"],\"AAC\":[\"No\",\"Not Supported\"],\"Dolby
            Digital\":[\"No\",\"Not Supported\"],\"Dolby Digital
            Plus\":[\"No\",\"Not Supported\"],\"DTS\":[\"No\",\"Not
            Supported\"]}","Tuner Stat":"{\"No tuner or the tuner stat
            unavailable.\":\" \"}"}
        dateCreated:
          type: string
          example: '2023-03-28 07:21:30'
      type: object
      additionalProperties: false
    DownloadDataViaResolveErrorResponse:
      title: DownloadDataViaResolveErrorResponse
      properties:
        error:
          type: string
          example: Device Not Found
      type: object
      additionalProperties: false
    GetSystemParametersResponse:
      title: GetSystemParametersResponse
      properties:
        uptime:
          type: integer
          example: 9340343
        id:
          type: integer
          example: 4341782
        oui:
          type: string
          example: '0003E6'
        productClass:
          type: string
          example: '105'
        sn:
          type: string
          example: 105-6594764
        mac:
          type: string
          example: 0003E6C94198
        deviceType:
          type: integer
          example: 7
        subscriber:
          type: string
          example: ''
        referenceId:
          type: string
          example: ''
        group:
          type: string
          example: Derek_AndroidQ_Amigo7XV2_Dev
        operator:
          type: string
          example: Amino Communications
      type: object
      additionalProperties: false
    GetSystemParametersErrorResponse:
      title: GetSystemParametersErrorResponse
      properties:
        errno:
          type: string
          example: APIWC0001
        message:
          type: string
          example: Device not found
      type: object
      additionalProperties: false
    GetSpaceManagerResponse:
      title: GetSpaceManagerResponse
      properties:
        free:
          type: string
          example: '1163419648'
        total:
          type: string
          example: '4363599872'
      type: object
      additionalProperties: false
    GetSpaceManagerErrorResponse:
      title: GetSpaceManagerErrorResponse
      properties:
        errno:
          type: string
          example: APIWC0001
        message:
          type: string
          example: Device not found
      type: object
      additionalProperties: false
    GetHDMIOutputStatusResponse:
      title: GetHDMIOutputStatusResponse
      properties:
        connected:
          type: boolean
          example: true
        rx_powered:
          type: boolean
          example: true
        hdmi_device:
          type: boolean
          example: true
        monitor_name:
          type: string
          example: SAMSUNG
        current_resolution:
          type: string
          example: 1080i60
        hotplug_mode:
          type: string
          example: default
      type: object
      additionalProperties: false
    GetHDMIOutputStatusErrorResponse:
      title: GetHDMIOutputStatusErrorResponse
      properties:
        errno:
          type: string
          example: APIWC0001
        message:
          type: string
          example: Device not found
      type: object
      additionalProperties: false
    GetSystemAudioSettingsResponse:
      title: GetSystemAudioSettingsResponse
      properties:
        mute:
          type: boolean
          example: false
        volume:
          $ref: '#/components/schemas/GetSystemAudioSettingsResponseVolume'
      type: object
      additionalProperties: false
    GetSystemAudioSettingsResponseVolume:
      title: GetSystemAudioSettingsResponseVolume
      properties:
        left:
          type: integer
        right:
          type: integer
      type: object
      additionalProperties: false
    GetSystemAudioSettingsErrorResponse:
      title: GetSystemAudioSettingsErrorResponse
      properties:
        errno:
          type: string
          example: APIWC0001
        message:
          type: string
          example: Device not found
      type: object
      additionalProperties: false
    SetSystemAudioSettingsRequest:
      title: SetSystemAudioSettingsRequest
      properties:
        sn:
          type: string
          example: 107-10588275
        params:
          $ref: '#/components/schemas/SetSystemAudioSettingsRequestParams'
      type: object
      additionalProperties: false
    SetSystemAudioSettingsRequestParams:
      title: SetSystemAudioSettingsRequestParams
      properties:
        mute:
          type: boolean
      type: object
      additionalProperties: false
    SetSystemAudioSettingsResponse:
      title: SetSystemAudioSettingsResponse
      properties:
        mute:
          type: boolean
          example: false
        volume:
          $ref: '#/components/schemas/SetSystemAudioSettingsResponseVolume'
      type: object
      additionalProperties: false
    SetSystemAudioSettingsResponseVolume:
      title: SetSystemAudioSettingsResponseVolume
      properties:
        left:
          type: integer
        right:
          type: integer
      type: object
      additionalProperties: false
    SetSystemAudioSettingsErrorResponse:
      title: SetSystemAudioSettingsErrorResponse
      properties:
        errno:
          type: string
          example: APIWC0001
        message:
          type: string
          example: Device not found
      type: object
      additionalProperties: false
    RebootDeviceResponse:
      title: RebootDeviceResponse
      properties:
        msg:
          type: string
          example: The device is READY and the command [restart] is set immediately.
      type: object
      additionalProperties: false
    RebootDeviceErrorResponse:
      title: RebootDeviceErrorResponse
      properties:
        errno:
          type: string
          example: APIWC0001
        message:
          type: string
          example: Device not found
      type: object
      additionalProperties: false
    ScheduleDeviceOperationRequest:
      title: ScheduleDeviceOperationRequest
      properties:
        devices:
          type: array
          items:
            $ref: '#/components/schemas/ScheduleDeviceOperationRequestDevice'
        inSeq:
          type: boolean
          example: true
        execTs:
          type: integer
          example: 1673322397
        params:
          type: array
          items:
            $ref: '#/components/schemas/ScheduleDeviceOperationRequestParam'
      type: object
      additionalProperties: false
    ScheduleDeviceOperationRequestDevice:
      title: ScheduleDeviceOperationRequestDevice
      properties:
        sn:
          type: string
      type: object
      additionalProperties: false
    ScheduleDeviceOperationRequestParam:
      title: ScheduleDeviceOperationRequestParam
      properties:
        url:
          type: string
        method:
          type: string
        params:
          $ref: '#/components/schemas/ScheduleDeviceOperationRequestParams'
      type: object
      additionalProperties: false
    ScheduleDeviceOperationRequestParams:
      title: ScheduleDeviceOperationRequestParams
      properties:
        mute:
          type: boolean
      type: object
      additionalProperties: false
    ScheduleDeviceOperationResponse:
      title: ScheduleDeviceOperationResponse
      properties:
        batch_id:
          type: integer
          example: 7546
      type: object
      additionalProperties: false
    CancelScheduledDeviceOperationRequest:
      title: CancelScheduledDeviceOperationRequest
      properties:
        batch_id:
          type: string
          example: '7546'
      type: object
      additionalProperties: false
    RebootDeviceDeprecatedErrorResponse:
      title: RebootDeviceDeprecatedErrorResponse
      properties:
        error:
          type: string
          example: Device Not Found
      type: object
      additionalProperties: false
    FactoryResetDeviceErrorResponse:
      title: FactoryResetDeviceErrorResponse
      properties:
        error:
          type: string
          example: Device Not Found
      type: object
      additionalProperties: false
    BatchRegisterDeviceErrorResponse:
      title: BatchRegisterDeviceErrorResponse
      properties:
        error:
          type: string
          example: Data validation failed
      type: object
      additionalProperties: false
    DownloadDeviceReportErrorResponse:
      title: DownloadDeviceReportErrorResponse
      properties:
        error:
          type: string
          example: Group[ACBE] Not Found
      type: object
      additionalProperties: false
    GetDeviceOnlineStatusInResolveResponseElement:
      title: GetDeviceOnlineStatusInResolveResponseElement
      properties:
        esn:
          type: string
          example: 107-10588275
        status:
          type: string
          example: Device is ON-LINE.
      type: object
      additionalProperties: false
    GetDeviceOnlineStatusInResolveErrorResponse:
      title: GetDeviceOnlineStatusInResolveErrorResponse
      properties:
        errno:
          type: string
          example: APIWC0004
        message:
          type: string
          example: Device  not found
      type: object
      additionalProperties: false