scitran/core

View on GitHub
swagger/schemas/definitions/device.json

Summary

Maintainability
Test Coverage
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "definitions": {
    "errors": {
      "type": ["array", "null"],
      "items": {
        "type": "string"
      }
    },
    "interval": {"type": "integer"},
    "status-value": {
      "type": "string",
      "enum": ["ok", "missing", "error", "unknown"]
    },
    "device-status-entry": {
      "type": "object",
      "properties":{
        "errors":    {"$ref":"#/definitions/errors"},
        "last_seen": {"$ref":"common.json#/definitions/timestamp"},
        "status":    {"$ref":"#/definitions/status-value"}
      },
      "additionalProperties":false,
      "required": ["last_seen", "status"]      
    },
    "device": {
      "type": "object",
      "properties": {
        "_id":       {"type":"string"},
        "method":    {"type":"string"},
        "name":      {"type":"string"},
        "errors":    {"$ref":"#/definitions/errors"},
        "info":      {"$ref":"common.json#/definitions/info"},
        "interval":  {"$ref":"#/definitions/interval"},
        "last_seen": {"$ref":"common.json#/definitions/timestamp"}
      },
      "x-sdk-model": "device",
      "additionalProperties": false
    },
    "device-input":{
      "type": "object",
      "properties": {
        "interval":       {"$ref":"#/definitions/interval"},
        "errors":         {"$ref":"#/definitions/errors"},
        "info":           {"$ref":"common.json#/definitions/info"}
      },
      "x-sdk-model": "device",
      "additionalProperties": false
    },
    "device-output": {
      "type": "object",
      "allOf": [{"$ref":"#/definitions/device"}],
      "required": ["_id", "name", "method", "last_seen"],
      "x-sdk-model": "device"
    },
    "device-status": {
      "type":"object",
      "patternProperties": {
        "^[0-9a-z.@_-]*$":{
          "$ref": "#/definitions/device-status-entry"
        }      
      }
    }
  }
}