{
  "name": "Executor",
  "base": "PersistedModel",
  "description": "Represents an Executor VM or bare-metal machine, which can host multiple service instances",
  "properties": {
    "address": {
      "type": "string",
      "description": "The IP address on which the API server and gateway can access this executor"
    },
    "hostname": {
      "type": "string",
      "description": "The hostname of this executor"
    },
    "APIPort": {
      "type": "string",
      "description": "The port this executor is listening on for API commands. (deprecated)"
    },
    "metadata": {
      "type": "object",
      "description": "Driver and connection metadata for remote host",
      "default": {}
    },
    "token": {
      "type": "string",
      "description": "Authentication token for executor to connect to central"
    },
    "driver": {
      "type": "string",
      "description": "The driver used to connect to this executor"
    },
    "totalCapacity": {
      "type": "number",
      "description": "The number of containers/service instances that this executor can support"
    },
    "remainingCapacity": {
      "type": "number",
      "default": -1,
      "description": "Currently allocated number of instances"
    }
  },
  "validations": [],
  "relations": {
    "instances": {
      "type": "hasMany",
      "model": "ServiceInstance"
    },
    "services": {
      "type": "hasMany",
      "model": "ServerService",
      "through": "ServiceInstance"
    }
  },
  "acls": [],
  "methods": []
}
