Complete interface schema

The complete YAML schema is given below. The individual YAML schema components are described in Components.

Complete YAML schema for processing block interface description
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Description:  str(required=False)
ModelVersion: str(matches='^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$', required=False)

Events: list(include('Event'), required=False)

Inputs: list(include('Signal'), required=False)

Parameters: list(include('Signal'), required=False)

Outputs: list(include('Signal'), required=False)

Updatables: list(include('Updatable'), required=False)

---
Event:
  Name: name()
  Description: str(required=False)
  Messages: list(include('Message'), required=False, max=1)

Message:
  Text: str(required=True)
  Arguments: list(include('Argument'), required=False)

Argument:
  Name: name()
  DataType: Enum("Uint8", "Uint16", "Uint32", "Uint64", "Int8", "Int16", "Int32", "Int64", "Float", "Double", "Bool", required=True)

Signal:
  Name: name()
  DataType: Enum("Uint8", "Uint16", "Uint32", "Uint64", "Int8", "Int16", "Int32", "Int64", "Float", "Double", "Bool", required=True)
  Description: str(required=False)
  Unit: str(required=False)
  LowerBound: str(required=False)
  UpperBound: str(required=False)
  ResetValue: str(required=False)

Updatable:
  Name: name()
  Access: Enum("R", "W", required=True)
  MaxSize: int(required=True)