{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/cdata/main/json-schema/cdata-create-connection-request-schema.json",
  "title": "CreateConnectionRequest",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/cdata-connection-api-openapi.yml#/components/schemas/CreateConnectionRequest",
  "type": "object",
  "required": [
    "redirectURL"
  ],
  "properties": {
    "dataSource": {
      "type": [
        "string",
        "null"
      ],
      "description": "(Optional) The type of data source (For example: Snowflake, ActOn, or Salesforce). You can obtain data source names from List Connections. If you omit this parameter, the user can select from a list of available data sources."
    },
    "redirectURL": {
      "type": "string",
      "description": "The URL to redirect the customer once the customer has created the connection through the Connect AI UI. This URL maps to the **Return to** button on the **Add Connection** page in the Connect AI UI."
    },
    "name": {
      "type": [
        "string",
        "null"
      ],
      "description": "(Optional) If provided, the connection name. By default, this is a suggested default that the end user can change on the **Add Connection** form. Set `editableName` to `false` to lock the field to this value. If `name` is provided without a `dataSource`, it is ignored."
    },
    "externalId": {
      "type": [
        "string",
        "null"
      ],
      "description": "(Optional) Your identifier for this connection in your own system. Must be unique within the sub-account; if a connection with the same `externalId` already exists under the account, the request returns a conflict error."
    },
    "editableName": {
      "type": "boolean",
      "description": "(Optional) The default value is `true`. When `true`, any `name` you supply is shown as a suggested default value, and the end user can change it. When `false`, the **Connection Name** field is rendered read-only, and the server enforces the supplied `name` on submit. Has no effect when `name` is omitted.",
      "default": true
    }
  },
  "additionalProperties": false
}