{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/prisma-yml/latest.json",
  "title": "JSON schema for Prisma prisma.yml files",
  "x-lintel": {
    "source": "https://www.schemastore.org/prisma.json",
    "sourceSha256": "d6dab8e6a2c6701dbd75cce2cbbfd3237f01900356d51ef7c7bf9f8b94f25cb5",
    "fileMatch": [
      "prisma.yml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "datamodel": {
      "description": "Type definitions for database models, relations, enums and other types\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
      "type": [
        "string",
        "array"
      ],
      "examples": [
        "types.prisma",
        "enums.prisma"
      ],
      "uniqueItems": true,
      "items": {
        "type": "string"
      }
    },
    "secret": {
      "description": "A secure secret for the current API endpoint\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
      "type": "string"
    },
    "disableAuth": {
      "description": "Disable authentication for the current API endpoint\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
      "type": "boolean"
    },
    "generate": {
      "description": "How and where generate client\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
      "type": "array",
      "items": {
        "title": "file",
        "description": "Files to be generated for the current API endpoint",
        "type": "object",
        "properties": {
          "generator": {
            "description": "A client name\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
            "type": "string",
            "enum": [
              "javascript-client",
              "typescript-client",
              "flow-client",
              "go-client",
              "graphql-schema"
            ]
          },
          "output": {
            "$ref": "https://catalog.lintel.tools/schemas/schemastore/prisma-yml/_shared/latest--base.json#/$defs/path",
            "description": "An output path\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>"
          }
        }
      }
    },
    "seed": {
      "title": "seed",
      "description": "A database seed\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
      "type": "object",
      "properties": {
        "import": {
          "description": "Commands to run while seeding a service for the current API endpoint",
          "type": "string"
        },
        "run": {
          "description": "Instructions to run while seeding a service for the current API endpoint",
          "type": "string"
        }
      }
    },
    "subscriptions": {
      "description": "Server-side subscriptions\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/subscription"
      }
    },
    "custom": {
      "title": "fields",
      "description": "Fields to use in variable interpolations via `${self:custom.field}`\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
      "type": "object"
    },
    "hooks": {
      "title": "hooks",
      "description": "Hooks\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
      "type": "object"
    },
    "endpoint": {
      "description": "An endpoint the service will be reachable at\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
      "type": "string"
    },
    "databaseType": {
      "description": "A relational or document database\n<https://v1.prisma.io/docs/1.34/prisma-cli-and-configuration/prisma-yml-5cy7/#reference>",
      "type": "string",
      "enum": [
        "relational",
        "document"
      ]
    }
  },
  "required": [
    "datamodel"
  ],
  "additionalProperties": false,
  "$defs": {
    "subscription": {
      "description": "A piece of code that you should run.",
      "type": "object",
      "properties": {
        "query": {
          "type": "string"
        },
        "webhook": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "headers": {
                  "type": "object"
                }
              },
              "required": [
                "url"
              ]
            }
          ]
        }
      },
      "required": [
        "query",
        "webhook"
      ]
    }
  }
}
