$schema: http://support.riverbed.com/apis/service_def/2.2
description: 'REST API for hardware monitor service.

  '
id: http://support.riverbed.com/apis/npm.hardware_monitor/1.1
name: npm.hardware_monitor
provider: riverbed
resources:
  chassis:
    additionalProperties: false
    description: A single chassis
    links:
      get:
        method: GET
        response:
          $ref: '#/resources/chassis'
      self:
        path: $/chassis/items/{serial_number}
    properties:
      availability:
        $merge:
          source:
            $ref: '#/types/chassis_availability'
          with:
            readOnly: true
      columns:
        description: 'The number of columns of disk slots on the chassis. ''0'' is
          at the left.

          '
        minimum: 0
        readOnly: true
        type: integer
      headunit:
        description: Indicates whether this is the head unit chassis.
        readOnly: true
        type: boolean
      health:
        $merge:
          source:
            $ref: '#/types/health_status'
          with:
            readOnly: true
      model:
        description: Chassis model
        readOnly: true
        type: string
      rows:
        description: 'The number of rows of disk slots on the chassis. ''0'' is at
          the top.

          '
        minimum: 0
        readOnly: true
        type: integer
      sensor_status:
        additionalProperties: false
        description: 'Status of the sensors on the chassis. Available sensors varies
          based on chassis model.

          '
        properties:
          cpus:
            description: List of CPU sensors
            items:
              $ref: '#/types/cpu'
            type: array
          exhaust_air_sensors:
            description: List of chassis air exhaust sensors
            items:
              $ref: '#/types/exhaust_air_sensor'
            type: array
          intake_air_sensors:
            description: List of chassis air intake sensors
            items:
              $ref: '#/types/intake_air_sensor'
            type: array
          power_supplies:
            description: List of power supply sensors
            items:
              $ref: '#/types/power_supply'
            type: array
          raid_controllers:
            description: List of RAID controller sensors
            items:
              $ref: '#/types/raid_controller'
            type: array
          storage_unit_controllers:
            description: List of storage unit controller sensors
            items:
              $ref: '#/types/storage_unit_controller'
            type: array
          system_fans:
            description: List of system fan sensors
            items:
              $ref: '#/types/system_fan'
            type: array
        type: object
      serial_number:
        $merge:
          source:
            $ref: '#/types/device_id'
          with:
            description: Chassis serial number
            readOnly: true
      unused_slots:
        description: A list of positions in the disk grid that are unused
        items:
          description: 'A list of [row, column] pairs representing an unused disk
            location

            '
          items:
            description: A row or column index
            type: integer
          type: array
        type: array
    relations:
      disks:
        resource: '#/resources/disks'
        vars:
          chassis: 0/serial_number
      instances:
        resource: '#/resources/chassis_list'
    type: object
  chassis_list:
    additionalProperties: false
    description: All chassis known to the system
    links:
      get:
        method: GET
        response:
          $ref: '#/resources/chassis_list'
      self:
        params:
          availability:
            $ref: '#/types/chassis_availability'
        path: $/chassis
    properties:
      items:
        description: List of chassis
        items:
          $ref: '#/resources/chassis'
        type: array
    type: object
  disk:
    additionalProperties: false
    description: A single disk
    links:
      get:
        method: GET
        response:
          $ref: '#/resources/disk'
      self:
        path: $/disks/items/{id}
      set:
        method: PUT
        request:
          $ref: '#/resources/disk'
        response:
          $ref: '#/resources/disk'
    properties:
      blink:
        description: Set to true to blink the drive for identification
        type: boolean
      chassis:
        $merge:
          source:
            $ref: '#/types/device_id'
          with:
            description: Chassis identifier
            readOnly: true
      device_type:
        description: The type of device this is
        enum:
        - disk
        readOnly: true
        type: string
      disk_type:
        description: Disk technology
        readOnly: true
        type: string
      health:
        $merge:
          source:
            $ref: '#/types/health_status'
          with:
            readOnly: true
      id:
        description: 'A unique identifier for this disk''s slot on this system.

          '
        readOnly: true
        type: string
      location:
        $merge:
          source:
            $ref: '#/types/disk_location'
          with:
            readOnly: true
      model:
        description: Model string of the disk
        readOnly: true
        type: string
      serial_number:
        description: Unique identifier of the disk
        readOnly: true
        type: string
      size_mb:
        description: Size of the disk in mebibytes
        readOnly: true
        type: integer
      status:
        $merge:
          source:
            $ref: '#/types/disk_status'
          with:
            readOnly: true
    relations:
      chassis:
        description: All chassis in the system
        resource: '#/resources/chassis'
        vars:
          serial_number: 0/chassis
      instances:
        description: All disks in the system
        resource: '#/resources/disks'
    required:
    - id
    - blink
    type: object
  disks:
    additionalProperties: false
    description: All disks known to the system
    links:
      get:
        method: GET
        response:
          $ref: '#/resources/disks'
      self:
        params:
          chassis:
            $ref: '#/types/device_id'
          disk_type:
            type: string
          serial_number:
            type: string
          status:
            $ref: '#/types/disk_status'
        path: $/disks
    properties:
      items:
        description: List of disks
        items:
          $ref: '#/resources/disk'
        type: array
    type: object
  hardware_health:
    additionalProperties: false
    description: Overall hardware health
    links:
      get:
        method: GET
        response:
          $ref: '#/resources/hardware_health'
      refresh:
        description: Force a refresh of hardware status
        method: POST
        path: $/status/refresh
      self:
        path: $/status
    properties:
      status:
        $merge:
          source:
            $ref: '#/types/health_status'
          with:
            readOnly: true
    type: object
tags:
  relint-disable:
  - E0105
title: Hardware Monitor
types:
  chassis_availability:
    description: Chassis availability
    enum:
    - ok
    - missing
    - foreign
    - invalid
    type: string
  cpu:
    additionalProperties: false
    description: CPU sensor data
    properties:
      name:
        description: The CPU name
        type: string
      status:
        $ref: '#/types/sensor_status'
      status_msg:
        description: The CPU status
        type: string
      temperature:
        $ref: '#/types/sensor_temperature'
    required:
    - status
    - name
    - status_msg
    - temperature
    type: object
  device_id:
    description: A generic device identifier
    type: string
  device_type:
    description: The type of a device
    enum:
    - disk
    - chassis
    type: string
  disk_location:
    additionalProperties: false
    description: The location of a disk in a chassis
    properties:
      column:
        description: Disk column
        minimum: 0
        type: integer
      label:
        description: Disk label
        type: string
      row:
        description: Disk row
        minimum: 0
        type: integer
    type: object
  disk_status:
    description: Status of a disk
    enum:
    - ok
    - failed
    - failing
    - rebuilding
    - missing
    - invalid
    - new
    type: string
  exhaust_air_sensor:
    additionalProperties: false
    description: Chassis air exhaust sensor data
    properties:
      name:
        description: Sensor name
        type: string
      status:
        $ref: '#/types/sensor_status'
      status_msg:
        description: Sensor status
        type: string
      temperature:
        $ref: '#/types/sensor_temperature'
    required:
    - status
    - name
    - status_msg
    - temperature
    type: object
  health_status:
    description: Health status
    enum:
    - ok
    - notice
    - failing
    - failed
    type: string
  intake_air_sensor:
    additionalProperties: false
    description: Chassis air intake sensor data
    properties:
      name:
        description: Sensor name
        type: string
      status:
        $ref: '#/types/sensor_status'
      status_msg:
        description: Sensor status
        type: string
      temperature:
        $ref: '#/types/sensor_temperature'
    required:
    - status
    - name
    - status_msg
    - temperature
    type: object
  power_supply:
    additionalProperties: false
    description: Power supply sensor data
    properties:
      name:
        description: The power supply name
        type: string
      status:
        $ref: '#/types/sensor_status'
      status_msg:
        description: The power supply status
        type: string
      temperature:
        $ref: '#/types/sensor_temperature'
    required:
    - status
    - name
    - status_msg
    - temperature
    type: object
  raid_controller:
    additionalProperties: false
    description: RAID controller sensor data
    properties:
      battery:
        $merge:
          source:
            $ref: '#/types/sensor_status'
          with:
            description: The status of the controller's battery
      name:
        description: RAID controller name
        type: string
      status:
        $ref: '#/types/sensor_status'
      status_msg:
        description: RAID controller status
        type: string
      temperature:
        $ref: '#/types/sensor_temperature'
    required:
    - status
    - name
    - status_msg
    - battery
    - temperature
    type: object
  rpm:
    description: Revolutions per minute
    type: integer
  sensor_status:
    description: The status of a sensor
    enum:
    - ok
    - missing
    - unknown
    - failing
    - failed
    type: string
  sensor_temperature:
    additionalProperties: false
    description: Temperature sensor data
    properties:
      current_temperature:
        description: Current temperature in celsius
        type: integer
      threshold:
        description: Threshold temperature in celsius
        type: integer
    required:
    - current_temperature
    - threshold
    type: object
  storage_unit_controller:
    additionalProperties: false
    description: Storage unit controller sensor data
    properties:
      name:
        description: Controller name
        type: string
      status:
        $ref: '#/types/sensor_status'
      status_msg:
        description: Controller status
        type: string
      temperature:
        $ref: '#/types/sensor_temperature'
    required:
    - status
    - name
    - status_msg
    - temperature
    type: object
  system_fan:
    additionalProperties: false
    description: System fan sensor data
    properties:
      fan_speed:
        $ref: '#/types/rpm'
      name:
        description: The fan name
        type: string
      status:
        $ref: '#/types/sensor_status'
      status_msg:
        description: The fan status
        type: string
    required:
    - status
    - name
    - status_msg
    - fan_speed
    type: object
version: '1.1'
