{ "type": "object", "properties": { "type": { "type": "string", "description": "A label for the generator API. Currently unused", "enum": [ "client", "server", "documentation" ] }, "name": { "type": "string", "description": "Name of the config. Currently unused." }, "license": { "type": "boolean", "description": "Whether to create a license file" }, "apache": { "type": "boolean", "description": "Whether to include the Apache-2.0 license instead of the Unlicense" }, "generator": { "type": "string", "description": "Custom JS function defining additional lambdas" }, "directories": { "type": "array", "description": "list of directories to create in output directory", "items": { "type": "string" } }, "defaults": { "type": "object", "description": "Any settings/overrides to be passed to the adaptor. Required even if empty. May contain 'language' hint" }, "partials": { "type": "object", "description": "A map containing the partial name as key and the template filename as value", "additionalProperties": { "type": "string" } }, "perModel": { "type": "array", "items": { "type": "object", "properties": { "input": { "type": "string", "description": "The input template filename" }, "output": { "type": "string", "description": "The output filename, can be templated" }, "defaults": { "type": "object" } }, "additionalProperties": false } }, "perOperation": { "type": "array", "items": { "type": "object", "properties": { "input": { "type": "string", "description": "The input template filename" }, "output": { "type": "string", "description": "The output filename, can be templated" } }, "additionalProperties": false } }, "perApi": { "type": "array", "items": { "type": "object", "properties": { "input": { "type": "string", "description": "The input template filename" }, "output": { "type": "string", "description": "The output filename, can be templated" }, "defaults": { "type": "object" } }, "additionalProperties": false } }, "transformations": { "type": "array", "minItems": 1, "items": { "type": "object", "description":"Must contain output, one of template or input is also required", "properties": { "template": { "type": "string" }, "input": { "type": "string" }, "output": { "type": "string" } }, "required": [ "output" ], "additionalProperties": false } }, "touch": { "type": "string", "description": "A list of files to touch, separated by newlines, may be templated" } }, "required": [ "defaults", "transformations" ], "additionalProperties": false }