Home Manager Object Model

classDiagram
    class Area {
      +name
      +kind
    }

    class System {
      +name
      +kind
    }

    class Device {
      +name
      +kind
      +status
    }

    class Service {
      +name
      +kind
      +status
    }

    class Port {
      +name
      +kind
      +role
    }

    class Connection {
      +type
      +medium
      +speed
      +poeMode
      +status
    }

    class DeviceType {
      +name
      +vendor
      +model
    }

    class PortType {
      +name
      +medium
      +direction
    }

    Area --> Area : isPartOf
    Device --> Area : isIn
    System --> Area : isIn
    Service --> System : partOf
    Service --> Device : runsOn
    Port --> Device : isPartOf
    Device --> DeviceType : instanceOf
    Port --> PortType : instanceOf
    Connection --> Port : from
    Connection --> Port : to
    System --> Device : contains