{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/orbital/refs/heads/main/json-schema/connection.json",
  "title": "Orbital Connection",
  "description": "Represents a data source connection configuration in Orbital, defining how Orbital connects to external APIs, databases, message queues, or serverless functions.",
  "type": "object",
  "properties": {
    "connectionId": {
      "type": "string",
      "description": "Unique identifier for the connection."
    },
    "name": {
      "type": "string",
      "description": "Display name of the connection."
    },
    "connectionType": {
      "type": "string",
      "description": "Type of the data source connection.",
      "enum": ["API", "DATABASE", "MESSAGE_QUEUE", "SERVERLESS_FUNCTION"]
    },
    "connectionUrl": {
      "type": "string",
      "format": "uri",
      "description": "URL or connection string for the data source."
    },
    "status": {
      "type": "string",
      "description": "Current status of the connection.",
      "enum": ["ACTIVE", "INACTIVE", "ERROR"]
    },
    "authentication": {
      "type": "object",
      "description": "Authentication configuration for the connection.",
      "properties": {
        "type": {
          "type": "string",
          "description": "Authentication method.",
          "enum": ["NONE", "BASIC", "BEARER_TOKEN", "OAUTH2", "API_KEY"]
        },
        "credentials": {
          "type": "object",
          "description": "Authentication credentials (format depends on auth type).",
          "additionalProperties": true
        }
      }
    }
  },
  "required": ["name", "connectionType", "connectionUrl"]
}
