{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "https://github.com/flxbl-io/json-schemas/blob/main/release-defn.schema.json",
    "title": "A definition of a release, the artifacts to be deployed along with its version,",
    "description": "This yaml file is either manually defined or auto generated by sfp release definition generator",
    "type": "object",
    "required": ["release", "artifacts"],
    "additionalProperties": false,
    "dependencies": {
        "baselineOrg": ["skipIfAlreadyInstalled"]
    },
    "properties": {
        "release": {
            "type": "string"
        },
        "releaseConfigName": {
            "type": "string",
            "title": "The name of the release config that generated this release definition,autopopulated when generated by release definition generator"
        },
        "metadata": {
            "type": "object",
            "title": "Additional data to be written to the release definition"
        },
        "skipIfAlreadyInstalled": {
            "type": "boolean"
        },
        "skipArtifactUpdate": {
            "type": "boolean"
        },
        "baselineOrg": {
            "type": "string"
        },
        "artifacts": {
            "type": "object",
            "patternProperties": {
                ".+": {
                    "type": "string"
                }
            }
        },
        "packageDependencies": {
            "type": "object",
            "patternProperties": {
                ".+": {
                    "type": "string",
                    "pattern": "^04t([a-zA-Z0-9]{15}|[a-zA-Z0-9]{12})$"
                }
            }
        },
        "promotePackagesBeforeDeploymentToOrg": {
            "type": "string"
        },
        "changelog": {
            "type": "object",
            "properties": {
                "workItemFilter": {
                    "type": "string",
                    "title": "Support legacy workItemFilter which supports only one single regex pattern"
                },
                "workItemFilters": {
                    "type": "array",
                    "title": "Regex to filter workitems from commit messages",
                    "items": {
                        "type": "string"
                    }
                },
                "workItemUrl": {
                    "type": "string"
                },
                "limit": {
                    "type": "integer"
                },
                "showAllArtifacts": {
                    "type": "boolean"
                }
            },
            "oneOf": [{ "required": ["workItemFilter"] }, { "required": ["workItemFilters"] }],
            "additionalProperties": false
        }
    }
}
