{
    "additionalProperties": false,
    "patternProperties": {
        "^[a-z]+$": {
            "additionalProperties": false,
            "properties": {
                "branches": {
                    "minProperties": 1,
                    "patternProperties": {
                        "nightly|beta|devedition|release|esr|unbranded-release": {
                            "additionalProperties": false,
                            "properties": {
                                "arches": {
                                    "patternProperties": {
                                        "multi|x86(_64)?|arm-v15": {
                                            "additionalProperties": false,
                                            "minProperties": 2,
                                            "properties": {
                                                "fileEnding": {
                                                    "pattern": "^\\.[a-z0-9.-]+$",
                                                    "type": "string"
                                                },
                                                "namespace": {
                                                    "minLength": 3,
                                                    "type": "string"
                                                },
                                                "path": {
                                                    "minLength": 3,
                                                    "pattern": "^[a-z0-9/-]+$",
                                                    "type": "string"
                                                },
                                                "platform": {
                                                    "pattern": "^[A-Z0-9_]+$",
                                                    "type": "string"
                                                },
                                                "product": {
                                                    "pattern": "^[A-Z_]+$",
                                                    "type": "string"
                                                },
                                                "version": {
                                                    "pattern": "^[A-Z0-9_]+$",
                                                    "type": "string"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                },
                                "defaultArch": {
                                    "enum": [
                                        "multi",
                                        "x86",
                                        "x86_64",
                                        "arm-v15"
                                    ],
                                    "type": "string"
                                },
                                "type": {
                                    "enum": [
                                        "classic",
                                        "mdu",
                                        "taskcluster"
                                    ],
                                    "type": "string"
                                }
                            },
                            "required": [
                                "defaultArch",
                                "type",
                                "arches"
                            ],
                            "type": "object"
                        }
                    },
                    "type": "object"
                },
                "defaultBranch": {
                    "enum": [
                        "nightly",
                        "devedition",
                        "beta",
                        "release",
                        "esr",
                        "unbranded-release"
                    ],
                    "type": "string"
                }
            },
            "required": [
                "defaultBranch",
                "branches"
            ],
            "type": "object"
        }
    },
    "title": "Firefox download sources",
    "type": "object"
}