{
  "$schema": "http://json-schema.org/schema",
  "id": "https://github.com/cyclosproject/ng-swagger-gen/blob/master/ng-swagger-gen-schema.json",
  "title": "Options for ng-swagger-gen",
  "type": "object",
  "required": [
    "swagger"
  ],
  "properties": {
    "$schema": {
      "type": "string"
    },
    "swagger": {
      "description": "The location of the swagger descriptor in JSON format.\nMay be either a local file or URL.",
      "type": "string"
    },
    "output": {
      "description": "Where generated files will be written to. Defaults to 'src/app/api'.",
      "type": "string",
      "default": "src/app/api"
    },
    "prefix": {
      "description": "A prefix to the generated global classes, such as `Configuration` and `Module`. Defaults to 'Api', so the default generated files are `ApiConfiguration` and `ApiModule`.",
      "type": "string",
      "default": "Api"
    },
    "includeTags": {
      "description": "When specified, filters the generated services, including only those corresponding to this list of tags.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "excludeTags": {
      "description": "When specified, filters the generated services, excluding any service corresponding to this list of tags.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ignoreUnusedModels": {
      "description": "Indicates whether or not to ignore model files that are not referenced by any operation. Defaults to true.",
      "type": "boolean",
      "default": "true"
    },
    "minParamsForContainer": {
      "description": "Indicates the minimum number of parameters to wrap operation parameters in a container class. Defaults to 2.",
      "type": "integer",
      "default": "2"
    },
    "sortParams": {
      "description": "How to sort operation parameters. Required always come first. For backwards compatibility, the default value is 'desc', but 'none' is recommended for new projects.",
      "type": "string",
      "enum": [
        "none", "asc", "desc"
      ],
      "default": "desc"
    },
    "defaultTag": {
      "description": "The assumed tag for operations that don't define any. Defaults to 'Api'",
      "type": "string",
      "default": "Api"
    },
    "removeStaleFiles": {
      "description": "Indicates whether or not to remove any files in the output folder that were not generated by ng-swagger-gen. Defaults to true.",
      "type": "boolean",
      "default": "true"
    },
    "modelIndex": {
      "description": "Indicates whether or not to generate the file which exports all models. Defaults to true.",
      "type": "boolean",
      "default": "true"
    },
    "serviceIndex": {
      "description": "Indicates whether or not to generate the file which exports all services. Defaults to true.",
      "type": "boolean",
      "default": "true"
    },
    "apiModule": {
      "description": "Indicates whether or not to generate the Angular module which provides all services. Defaults to true.",
      "type": "boolean",
      "default": "true"
    },
    "enumModule": {
      "description": "Indicates whether or not to export an additional TypeScript module (not to be confused with Angular's @NgModule) for each enum model, exporting values as constants and providing the values() method. Setting to false will reduce the size of the generated code. Defaults to true.",
      "type": "boolean",
      "default": "true"
    },
    "templates": {
      "description": "Path to override the Mustache templates used to generate files.",
      "type": "string"
    },
    "generateExamples": {
      "description": "Indicates whether or not to generate the example files from the example sections of the models. Defaults to false.",
      "type": "boolean",
      "default": "false"
    },
    "camelCase": {
      "description": "Generates service methods in camelCase instead of PascalCase",
      "type": "boolean",
      "default": "false"
    },
    "customFileSuffix": {
      "description": "Define custom suffixes for your autogenerated files",
      "type": "object",
      "properties": {
        "model":      {
          "type": "string",
          "default": ""
        },
        "example": {
          "type": "string",
          "default": ".example"
        },
        "service": {
          "type": "string",
          "default": ".service"
        }
      },
      "default": {
        "model": "",
        "example": ".example",
        "service": ".service"
      }
    },
    "timeout":{
      "description": "The amount of time (in milliseconds) to wait for a response from the server when downloading files. The default is 20 seconds.",
      "type": "number",
      "default": 20000
    },
    "skipProxySetup": {
      "description": "Skip the proxy setup when unable to generate from localhost.",
      "type": "boolean",
      "default": "false"
    }
  }
}
