schema_device-2.0.yml 2.51 KB
schema;schema_component_attributes:
  type: map
  required: True
  mapping:
    attribute:
      type: map
      required: True
      mapping:
        key:
          type: str
          required: True
        # is_* are False by default
        is_editable:
          type: bool
        is_container:
          type: bool
        is_enum:
          type: bool
        value:
          type: any
          required: True
        liminf:
          type: number
        limsup:
          type: number
        label:
          type: any
        unit:
          type: any
    
schema;schema_capability:
  type: map
  required: True
  mapping: 
    component:
      type: str
      required: True
    attributes:
      type: seq
      required: False # True if we're not using default values
      seq:
        - include : schema_component_attributes

# old version
# schema;schema_capability:
#   type: map
#   required: True
#   mapping:
   
schema;schema_capabilities:
  type: seq
  sequence:
    - type: map
      mapping:
        CAPABILITY:
          include: schema_capability

schema;schema_device:
  type: map
  required: True
  mapping:
    generic:
      type: str
      required: False
    inventory_label:
      type: str
      required: True
    manufacturer:
      type: str
      required: False
    model: 
      type: str
      required: False
    description: 
      type: str
      required: False
    sn: 
      type: text
      required: True
    power:
      type: map
      required: False
      mapping:
        voltage:
          type: int
        intensity: 
          type: int
        socket:
          type: str
    hostname:
      type: str
    virtual_machine:
      type: bool
    network_interfaces:
      type: seq
      sequence:
        - type: str
    connector:
      type: map
      
      mapping:
        input:
          type: str
          
        output:
          type: str
          
    os: 
      type: str
      
    os_version: 
      type: str
      
    protocol:
      type: map
      
      mapping:
        transport:
          type: str
          
        langage: 
          type: str
          
        read: 
          type: bool
            
        write: 
          type: bool
            
    CAPABILITIES:
      include: schema_capabilities
      required: True
    ATTACHED_DEVICES:
      type: seq
      sequence:
        - type: map
          mapping:
            file:
              type: str

type: map
mapping:
    schema:
        type: str
        required: True
    DEVICE:
      include: schema_device