{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://hai.ai/schemas/components/service/v1/service.schema.json",
  "title": "Service",
  "description": "Services that an Agent claims to provide.",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "hai": "agent",
      "description": "Name of service"
    },
    "serviceDescription": {
      "type": "string",
      "hai": "agent",
      "description": "Description of basic service provided."
    },
    "successDescription": {
      "type": "string",
      "hai": "agent",
      "description": "Description of successful delivery of service."
    },
    "failureDescription": {
      "type": "string",
      "hai": "agent",
      "description": "Description of failure of delivery of service."
    },
    "costDescription": {
      "type": "string",
      "hai": "agent",
      "description": "types of costs"
    },
    "idealCustomerDescription": {
      "type": "string",
      "hai": "agent",
      "description": "Description of ideal customer"
    },
    "termsOfService": {
      "type": "string",
      "hai": "agent",
      "description": "Legal TOS"
    },
    "privacyPolicy": {
      "type": "string",
      "hai": "agent",
      "description": "How data will be used"
    },
    "copyright": {
      "type": "string",
      "hai": "agent",
      "description": "How can data provided be used"
    },
    "eula": {
      "type": "string",
      "hai": "agent",
      "description": "End user license agreement"
    },
    "isDev": {
      "type": "boolean",
      "hai": "meta",
      "description": "Is the test/development version of the service?"
    },
    "tools": {
      "type": "array",
      "description": "URLs and function definitions of of tools that can be called",
      "items": {
        "$ref": "https://hai.ai/schemas/components/tool/v1/tool.schema.json"
      }
    },
    "piiDesired": {
      "type": "array",
      "hai": "meta",
      "description": "Sensitive data desired.",
      "items": {
        "type": "string",
        "enum": [
          "signature",
          "cryptoaddress",
          "creditcard",
          "govid",
          "social",
          "email",
          "phone",
          "address",
          "zip",
          "PHI",
          "MHI",
          "identity",
          "political",
          "bankaddress",
          "income"
        ]
      }
    }
  },
  "required": [
    "serviceDescription",
    "successDescription",
    "failureDescription"
  ],
  "additionalProperties": false
}
