{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "additionalProperties": false,
    "name": "Repository Configuration",
    "properties": {
        "abandoned": {
            "additionalProperties": {
                "description": "A valid Package name",
                "type": [
                    "boolean",
                    "string"
                ]
            },
            "description": "List of packages marked as abandoned for this repository, the mark can be boolean or a package name/URL pointing to a recommended alternative.",
            "type": "object"
        },
        "archive": {
            "additionalProperties": false,
            "description": "Options for creating package archives for distribution.",
            "properties": {
                "absolute-directory": {
                    "description": "The absolute path of the dist files.",
                    "type": "string"
                },
                "blacklist": {
                    "description": "List of blacklisted packages.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "directory": {
                    "description": "The location of the dist files.",
                    "type": "string"
                },
                "format": {
                    "description": "Archive format.",
                    "pattern": "^zip|tar$",
                    "type": "string"
                },
                "prefix-url": {
                    "_format": "uri",
                    "description": "Location of the downloads.",
                    "type": "string"
                },
                "skip-dev": {
                    "description": "If true, will not create downloads for branches.",
                    "type": "boolean"
                },
                "whitelist": {
                    "description": "List of whitelisted packages.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "directory"
            ],
            "type": "object"
        },
        "config": {
            "description": "Composer options.",
            "properties": {
                "autoloader-suffix": {
                    "description": "Optional string to be used as a suffix for the generated Composer autoloader. When null a random one will be generated.",
                    "type": "string"
                },
                "bin-compat": {
                    "description": "The compatibility of the binaries, defaults to \"auto\" (automatically guessed) and can be \"full\" (compatible with both Windows and Unix-based systems).",
                    "enum": [
                        "auto",
                        "full"
                    ]
                },
                "bin-dir": {
                    "description": "The location where all binaries are linked, defaults to \"vendor/bin\".",
                    "type": "string"
                },
                "cache-dir": {
                    "description": "The location where all caches are located, defaults to \"~/.composer/cache\" on *nix and \"%LOCALAPPDATA%\\Composer\" on windows.",
                    "type": "string"
                },
                "cache-files-dir": {
                    "description": "The location where files (zip downloads) are cached, defaults to \"{$cache-dir}/files\".",
                    "type": "string"
                },
                "cache-files-maxsize": {
                    "description": "The cache max size for the files cache, defaults to \"300MiB\".",
                    "type": [
                        "string",
                        "integer"
                    ]
                },
                "cache-files-ttl": {
                    "description": "The cache time-to-live for files, defaults to the value of cache-ttl.",
                    "type": "integer"
                },
                "cache-repo-dir": {
                    "description": "The location where repo (git/hg repo clones) are cached, defaults to \"{$cache-dir}/repo\".",
                    "type": "string"
                },
                "cache-ttl": {
                    "description": "The default cache time-to-live, defaults to 15552000 (6 months).",
                    "type": "integer"
                },
                "cache-vcs-dir": {
                    "description": "The location where vcs infos (git clones, github api calls, etc. when reading vcs repos) are cached, defaults to \"{$cache-dir}/vcs\".",
                    "type": "string"
                },
                "classmap-authoritative": {
                    "description": "If true, the composer autoloader will not scan the filesystem for classes that are not found in the class map, defaults to false.",
                    "type": "boolean"
                },
                "discard-changes": {
                    "description": "The default style of handling dirty updates, defaults to false and can be any of true, false or \"stash\".",
                    "type": [
                        "string",
                        "boolean"
                    ]
                },
                "github-domains": {
                    "description": "A list of domains to use in github mode. This is used for GitHub Enterprise setups, defaults to [\"github.com\"].",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "github-expose-hostname": {
                    "description": "Defaults to true. If set to false, the OAuth tokens created to access the github API will have a date instead of the machine hostname.",
                    "type": "boolean"
                },
                "github-oauth": {
                    "additionalProperties": true,
                    "description": "A hash of domain name => github API oauth tokens, typically {\"github.com\":\"<token>\"}.",
                    "type": "object"
                },
                "github-protocols": {
                    "description": "A list of protocols to use for github.com clones, in priority order, defaults to [\"git\", \"https\", \"http\"].",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "http-basic": {
                    "additionalProperties": true,
                    "description": "A hash of domain name => {\"username\": \"...\", \"password\": \"...\"}.",
                    "type": "object"
                },
                "notify-on-install": {
                    "description": "Composer allows repositories to define a notification URL, so that they get notified whenever a package from that repository is installed. This option allows you to disable that behaviour, defaults to true.",
                    "type": "boolean"
                },
                "optimize-autoloader": {
                    "description": "Always optimize when dumping the autoloader.",
                    "type": "boolean"
                },
                "platform": {
                    "additionalProperties": true,
                    "description": "This is a hash of package name (keys) and version (values) that will be used to mock the platform packages on this machine.",
                    "type": "object"
                },
                "preferred-install": {
                    "description": "The install method Composer will prefer to use, defaults to auto and can be any of source, dist or auto.",
                    "type": "string"
                },
                "prepend-autoloader": {
                    "description": "If false, the composer autoloader will not be prepended to existing autoloaders, defaults to true.",
                    "type": "boolean"
                },
                "process-timeout": {
                    "description": "The timeout in seconds for process executions, defaults to 300 (5mins).",
                    "type": "integer"
                },
                "store-auths": {
                    "description": "What to do after prompting for authentication, one of: true (store), false (do not store) or \"prompt\" (ask every time), defaults to prompt.",
                    "type": [
                        "string",
                        "boolean"
                    ]
                },
                "use-include-path": {
                    "description": "If true, the Composer autoloader will also look for classes in the PHP include path.",
                    "type": "boolean"
                },
                "vendor-dir": {
                    "description": "The location where all packages are installed, defaults to \"vendor\".",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "description": {
            "description": "Short Repository description.",
            "type": "string"
        },
        "homepage": {
            "_format": "uri",
            "description": "Homepage URL for the Repository.",
            "type": "string"
        },
        "minimum-stability": {
            "description": "The minimum stability the packages must have to be install-able. Possible values are: dev, alpha, beta, RC, stable.",
            "enum": [
                "dev",
                "alpha",
                "beta",
                "rc",
                "RC",
                "stable"
            ],
            "type": [
                "string"
            ]
        },
        "name": {
            "description": "Repository name.",
            "type": "string"
        },
        "notify-batch": {
            "description": "a URL that will be called every time a user installs a package.",
            "type": "string"
        },
        "output-dir": {
            "description": "The directory where the static Repository is built.",
            "type": "string"
        },
        "output-html": {
            "description": "If true, build a static web page.",
            "type": "boolean"
        },
        "repositories": {
            "additionalProperties": true,
            "description": "A set of additional repositories where packages can be found.",
            "type": [
                "object",
                "array"
            ]
        },
        "require": {
            "additionalProperties": {
                "description": "A valid version constraint",
                "type": "string"
            },
            "description": "This is a hash of package name (keys) and version constraints (values) that are required to run this package.",
            "minProperties": 1,
            "type": "object"
        },
        "require-all": {
            "description": "If true, selects all versions of all packages in the repositories defined.",
            "type": "boolean"
        },
        "require-dependecies": {
            "description": "If true, resolve and add all dependencies of each required package.",
            "type": "boolean"
        },
        "require-dev-dependecies": {
            "description": "If true, resolve and add all Dev dependencies of each required package.",
            "type": "boolean"
        },
        "twig-template": {
            "description": "Path to a template for the static web page.",
            "type": "string"
        }
    },
    "required": [
        "name",
        "homepage"
    ],
    "type": "object"
}