Fern · Schema

Fern SDK Generator

Schema describing a Fern SDK generator configuration. Each generator emits an idiomatic SDK in a single target language and optionally publishes it to a package registry.

Agent ReadyAIAPI DefinitionsAsyncAPICode GenerationDeveloper ExperienceDeveloper PortalDocumentationgRPCllms.txtMCPOpenAPIOpenRPCPlatformProtobufSDKsWebSockets

Properties

Name Type Description
name string Generator name (e.g. fernapi/fern-typescript-sdk).
language string Target SDK language.
version string Generator version pin.
output object Destination for the generated SDK.
config object Generator-specific configuration options.
publish object Automatic publishing behavior.
View JSON Schema on GitHub

JSON Schema

fern-sdk-generator-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/fern/main/json-schema/fern-sdk-generator-schema.json",
  "title": "Fern SDK Generator",
  "description": "Schema describing a Fern SDK generator configuration. Each generator emits an idiomatic SDK in a single target language and optionally publishes it to a package registry.",
  "type": "object",
  "required": ["language", "name"],
  "properties": {
    "name": {
      "type": "string",
      "description": "Generator name (e.g. fernapi/fern-typescript-sdk)."
    },
    "language": {
      "type": "string",
      "description": "Target SDK language.",
      "enum": [
        "typescript",
        "python",
        "go",
        "java",
        "csharp",
        "php",
        "ruby",
        "swift",
        "rust"
      ]
    },
    "version": {
      "type": "string",
      "description": "Generator version pin."
    },
    "output": {
      "type": "object",
      "description": "Destination for the generated SDK.",
      "properties": {
        "location": {
          "type": "string",
          "enum": ["local-file-system", "npm", "pypi", "maven-central", "nuget", "rubygems", "packagist", "crates-io", "github"]
        },
        "package": {"type": "string"},
        "repository": {"type": "string"},
        "license": {"type": "string"}
      }
    },
    "config": {
      "type": "object",
      "description": "Generator-specific configuration options."
    },
    "publish": {
      "type": "object",
      "description": "Automatic publishing behavior.",
      "properties": {
        "onMerge": {"type": "boolean"},
        "preRelease": {"type": "boolean"},
        "tagFormat": {"type": "string"}
      }
    }
  }
}