{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/ada/main/json-schema/ada-platform-integration-create-request-schema.json",
  "title": "PlatformIntegrationCreateRequest",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/ada-platformintegrations-api-openapi.yml#/components/schemas/PlatformIntegrationCreateRequest",
  "type": "object",
  "properties": {
    "identifier_field_path": {
      "$ref": "#/$defs/IntegrationIdentifierField"
    },
    "icon_url": {
      "$ref": "#/$defs/IntegrationIconUrl"
    },
    "call_to_action": {
      "$ref": "#/$defs/IntegrationCallToAction"
    },
    "name": {
      "type": "string",
      "description": "The name of the integration"
    },
    "description": {
      "type": "string",
      "description": "A description of what the integration does and how to use it"
    },
    "author": {
      "type": "string",
      "description": "The name of the integration developer"
    },
    "contact": {
      "type": "string",
      "description": "The URL or email address where users of the integration can reach out for support"
    },
    "uninstallation_url": {
      "type": "string",
      "format": "url",
      "description": "The `delete` endpoint that initiates the uninstallation flow for the integration"
    },
    "oauth_callback_url": {
      "type": "string",
      "format": "url",
      "description": "The `get` endpoint that will be invoked after OAuth authorization"
    },
    "tags": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/PlatformIntegrationCreateRequestTagsItems"
      },
      "description": "A list of tags that describe the type of integration"
    },
    "error_codes": {
      "oneOf": [
        {
          "$ref": "#/$defs/PlatformIntegrationCreateRequestErrorCodes"
        },
        {
          "type": "null"
        }
      ],
      "description": "An object containing error codes and their corresponding error message the integration may return to the OAuth failure page to be displayed"
    },
    "scopes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The list of OAuth token permissions the integration requests when installed"
    },
    "configuration_fields": {
      "$ref": "#/$defs/PlatformIntegrationCreateRequestConfigurationFields",
      "description": "A json-schema describing the settings fields that a user should be presented with when installing the integration"
    }
  },
  "required": [
    "identifier_field_path",
    "name",
    "description",
    "author",
    "contact",
    "uninstallation_url",
    "oauth_callback_url",
    "tags",
    "scopes",
    "configuration_fields"
  ],
  "$defs": {
    "IntegrationCallToAction": {
      "type": [
        "string",
        "null"
      ],
      "description": "The call to action text",
      "title": "IntegrationCallToAction"
    },
    "IntegrationIconUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "url",
      "description": "The URL of the icon that should be displayed with your integration",
      "title": "IntegrationIconUrl"
    },
    "IntegrationIdentifierField": {
      "type": "string",
      "description": "JMESPath describing which of the fields in `configuration_fields` is the best human-friendly field to use to identify a specific installation (e.g., account name)",
      "title": "IntegrationIdentifierField"
    },
    "PlatformIntegrationCreateRequestConfigurationFields": {
      "type": "object",
      "properties": {},
      "description": "A json-schema describing the settings fields that a user should be presented with when installing the integration",
      "title": "PlatformIntegrationCreateRequestConfigurationFields"
    },
    "PlatformIntegrationCreateRequestErrorCodes": {
      "type": "object",
      "properties": {},
      "description": "An object containing error codes and their corresponding error message the integration may return to the OAuth failure page to be displayed",
      "title": "PlatformIntegrationCreateRequestErrorCodes"
    },
    "PlatformIntegrationCreateRequestTagsItems": {
      "type": "string",
      "enum": [
        "knowledge"
      ],
      "title": "PlatformIntegrationCreateRequestTagsItems"
    }
  }
}