Skip to content

Commit 5b16b76

Browse files
edrioukbrondani
andauthored
Add methods to get devices and boards (#21)
* Added GetDeviceList and GetDeviceData methods and corresponding structures * [codegen] Support generic `object` property (#22) * Rename DevicesInfo into DeviceList * Use id string * Board data * Apply suggestions from code review Co-authored-by: Daniel Brondani <daniel.brondani@arm.com> * Correct Board ID description --------- Co-authored-by: Daniel Brondani <daniel.brondani@arm.com>
1 parent 47b23a6 commit 5b16b76

1 file changed

Lines changed: 261 additions & 2 deletions

File tree

api/csolution-openapi.yml

Lines changed: 261 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,50 @@ paths:
9898
'200':
9999
description: OK
100100
content: {application/json: {schema: {$ref: '#/components/schemas/GetPacksInfoResponse'}}}
101+
/rpc/GetDeviceList:
102+
post:
103+
summary: Get device list
104+
description: Get list of filtered devices
105+
tags: [/rpc]
106+
requestBody:
107+
content: {application/json: {schema: {$ref: '#/components/schemas/GetDeviceListRequest'}}}
108+
responses:
109+
'200':
110+
description: OK
111+
content: {application/json: {schema: {$ref: '#/components/schemas/GetDeviceListResponse'}}}
112+
/rpc/GetDeviceInfo:
113+
post:
114+
summary: Get device data for specified device
115+
description: Get device data for specified device
116+
tags: [/rpc]
117+
requestBody:
118+
content: {application/json: {schema: {$ref: '#/components/schemas/GetDeviceInfoRequest'}}}
119+
responses:
120+
'200':
121+
description: OK
122+
content: {application/json: {schema: {$ref: '#/components/schemas/GetDeviceInfoResponse'}}}
123+
/rpc/GetBoardList:
124+
post:
125+
summary: Get board list
126+
description: Get list of filtered boards
127+
tags: [/rpc]
128+
requestBody:
129+
content: {application/json: {schema: {$ref: '#/components/schemas/GetBoardListRequest'}}}
130+
responses:
131+
'200':
132+
description: OK
133+
content: {application/json: {schema: {$ref: '#/components/schemas/GetBoardListResponse'}}}
134+
/rpc/GetBoardInfo:
135+
post:
136+
summary: Get data for specified board
137+
description: Get data for specified board
138+
tags: [/rpc]
139+
requestBody:
140+
content: {application/json: {schema: {$ref: '#/components/schemas/GetBoardInfoRequest'}}}
141+
responses:
142+
'200':
143+
description: OK
144+
content: {application/json: {schema: {$ref: '#/components/schemas/GetBoardInfoResponse'}}}
101145
/rpc/GetComponentsTree:
102146
post:
103147
summary: Get components tree
@@ -192,6 +236,13 @@ components:
192236
description: Documentation
193237
required:
194238
- id
239+
PackElement:
240+
allOf:
241+
- $ref: '#/components/schemas/Common'
242+
- properties:
243+
pack:
244+
type: string
245+
description: Originating pack ID
195246
Pack:
196247
allOf:
197248
- $ref: '#/components/schemas/Common'
@@ -218,6 +269,124 @@ components:
218269
$ref: '#/components/schemas/Pack'
219270
required:
220271
- packs
272+
DebugInterface:
273+
type: object
274+
properties:
275+
adapter:
276+
type: string
277+
description: Debug adapter type
278+
connector:
279+
type: string
280+
description: Connector type
281+
required:
282+
- adapter
283+
Processor:
284+
type: object
285+
properties:
286+
name:
287+
type: string
288+
description: Processor name within device, optional
289+
core:
290+
type: string
291+
description: Processor core type
292+
attributes:
293+
type: object
294+
additionalProperties:
295+
type: string
296+
required:
297+
- core
298+
Memory:
299+
type: object
300+
properties:
301+
name:
302+
type: string
303+
description: Memory name/ID
304+
size:
305+
type: string
306+
description: Memory size
307+
access:
308+
type: string
309+
description: Memory access permissions
310+
required:
311+
- core
312+
Device:
313+
allOf:
314+
- $ref: '#/components/schemas/PackElement'
315+
- properties:
316+
family:
317+
type: string
318+
description: Device family
319+
subFamily:
320+
type: string
321+
description: Device subfamily, optional
322+
processors:
323+
type: array
324+
items:
325+
$ref: '#/components/schemas/Processor'
326+
memories:
327+
type: array
328+
items:
329+
$ref: '#/components/schemas/Memory'
330+
DeviceList:
331+
allOf:
332+
- $ref: '#/components/schemas/SuccessResult'
333+
- properties:
334+
devices:
335+
type: array
336+
description: List of devices
337+
items:
338+
$ref: '#/components/schemas/Device'
339+
required:
340+
- devices
341+
DeviceInfo:
342+
allOf:
343+
- $ref: '#/components/schemas/SuccessResult'
344+
- properties:
345+
device:
346+
$ref: '#/components/schemas/Device'
347+
required:
348+
- device
349+
Board:
350+
allOf:
351+
- $ref: '#/components/schemas/PackElement'
352+
- properties:
353+
image:
354+
type: string
355+
description: Link to file or URL with board image
356+
devices:
357+
type: array
358+
description: List of mounted and compatible devices
359+
items:
360+
$ref: '#/components/schemas/Device'
361+
memories:
362+
type: array
363+
items:
364+
$ref: '#/components/schemas/Memory'
365+
debugInterfaces:
366+
type: array
367+
description: List of supported debug interfaces
368+
items:
369+
$ref: '#/components/schemas/DebugInterface'
370+
371+
BoardList:
372+
allOf:
373+
- $ref: '#/components/schemas/SuccessResult'
374+
- properties:
375+
boards:
376+
type: array
377+
description: List of boards
378+
items:
379+
$ref: '#/components/schemas/Board'
380+
required:
381+
- boards
382+
BoardInfo:
383+
allOf:
384+
- $ref: '#/components/schemas/SuccessResult'
385+
- properties:
386+
board:
387+
$ref: '#/components/schemas/Board'
388+
required:
389+
- board
221390
Component:
222391
allOf:
223392
- $ref: '#/components/schemas/Common'
@@ -452,7 +621,6 @@ components:
452621
required:
453622
- components
454623
- packs
455-
456624
LogMessages:
457625
allOf:
458626
- $ref: '#/components/schemas/SuccessResult'
@@ -477,7 +645,6 @@ components:
477645
method:
478646
type: string
479647
const: GetVersion
480-
481648
GetVersionResult:
482649
allOf:
483650
- $ref: '#/components/schemas/SuccessResult'
@@ -617,6 +784,98 @@ components:
617784
- properties:
618785
result:
619786
$ref: '#/components/schemas/UsedItems'
787+
GetDeviceListRequest:
788+
allOf:
789+
- $ref: '#/x-jsonrpc-envelope-request-with-params'
790+
- properties:
791+
method:
792+
type: string
793+
const: GetDeviceList
794+
params:
795+
type: object
796+
properties:
797+
context:
798+
type: string
799+
description: Optional context to limit the list to packs used in the context
800+
namePattern:
801+
type: string
802+
description: Optional device name pattern containing wildcards
803+
vendor:
804+
type: string
805+
description: Optional vendor name to limit device list to the requested vendor
806+
GetDeviceListResponse:
807+
allOf:
808+
- $ref: '#/x-jsonrpc-envelope-response'
809+
- properties:
810+
result:
811+
$ref: '#/components/schemas/DeviceList'
812+
GetDeviceInfoRequest:
813+
allOf:
814+
- $ref: '#/x-jsonrpc-envelope-request-with-params'
815+
- properties:
816+
method:
817+
type: string
818+
const: GetDeviceInfo
819+
params:
820+
type: object
821+
properties:
822+
id:
823+
type: string
824+
description: Device ID in the format Vendor::Name, vendor prefix is optional
825+
required:
826+
- id
827+
GetDeviceInfoResponse:
828+
allOf:
829+
- $ref: '#/x-jsonrpc-envelope-response'
830+
- properties:
831+
result:
832+
$ref: '#/components/schemas/DeviceInfo'
833+
GetBoardListRequest:
834+
allOf:
835+
- $ref: '#/x-jsonrpc-envelope-request-with-params'
836+
- properties:
837+
method:
838+
type: string
839+
const: GetBoardList
840+
params:
841+
type: object
842+
properties:
843+
context:
844+
type: string
845+
description: Optional context to limit the list to packs used in the context
846+
namePattern:
847+
type: string
848+
description: Optional device name pattern containing wildcards
849+
vendor:
850+
type: string
851+
description: Optional vendor name to limit device list to the requested vendor
852+
GetBoardListResponse:
853+
allOf:
854+
- $ref: '#/x-jsonrpc-envelope-response'
855+
- properties:
856+
result:
857+
$ref: '#/components/schemas/BoardList'
858+
GetBoardInfoRequest:
859+
allOf:
860+
- $ref: '#/x-jsonrpc-envelope-request-with-params'
861+
- properties:
862+
method:
863+
type: string
864+
const: GetBoardInfo
865+
params:
866+
type: object
867+
properties:
868+
id:
869+
type: string
870+
description: Board ID in the format Vendor::Name:Revision, vendor prefix is optional.
871+
required:
872+
- id
873+
GetBoardInfoResponse:
874+
allOf:
875+
- $ref: '#/x-jsonrpc-envelope-response'
876+
- properties:
877+
result:
878+
$ref: '#/components/schemas/BoardInfo'
620879
GetComponentsTreeRequest:
621880
allOf:
622881
- $ref: '#/x-jsonrpc-envelope-request-with-params'

0 commit comments

Comments
 (0)