1openapi: "3.1.0"
2info:
3  title: Firmware Test API
4  description: |
5    A public API for testing and experimenting with Arm firmware features.
6
7    Copyright 2023, Arm Limited and Contributors. All rights reserved.
8  version: 0.0.1
9  license:
10    name: 3-Clause BSD
11    identifier: BSD-3-Clause
12
13servers:
14  - url: http://127.0.0.1/api/v1
15
16paths:
17  /services:
18    get:
19      operationId: "listServices"
20      summary: List firmware service information
21      responses:
22        '200':
23          description: A list of serviceInfo objects
24          content:
25            application/json:
26              schema:
27                type: array
28                items:
29                  $ref: "#/components/schemas/ServiceInfo"
30
31  /services/{servicename}:
32    get:
33      operationId: "getServiceInfo"
34      summary: Get information about a firmware service
35      parameters:
36        - name: servicename
37          in: path
38          description: e.g. fwu, crypto
39          required: true
40          schema:
41            type: string
42      responses:
43        '200':
44          description: Information about the named service
45          content:
46            application/json:
47              schema:
48                $ref: '#/components/schemas/ServiceInfo'
49
50  /services/{servicename}/call/{opcode}:
51    put:
52      operationId: "callServiceOp"
53      summary: Call service operation
54      parameters:
55        - name: servicename
56          in: path
57          required: true
58          schema:
59            type: string
60        - name: opcode
61          in: path
62          required: true
63          schema:
64            type: string
65      requestBody:
66        description: Call parameters
67        content:
68          application/octet-stream:
69            schema:
70              type: string
71              format: binary
72      responses:
73        '200':
74          description: Call response
75          content:
76            application/octet-stream:
77              schema:
78                type: string
79                format: binary
80
81components:
82  schemas:
83    ServiceInfo:
84      type: object
85      properties:
86        id:
87          type: string
88          description: The services's unique id
89        servicename:
90          type: string
91          description: Service name
92        status:
93          type: string
94          description: Service status
95