blob: bb8bb2a67f73ed29459bf0a0bda56d0bbb7fd3c2 [file] [log] [blame]
{
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"dcosReleaseVersion": {
"type": "string",
"pattern": "^(?:0|[1-9][0-9]*)(?:\\.(?:0|[1-9][0-9]*))*$",
"description": "A string representation of a DC/OS Release Version"
},
"url": {
"type": "string",
"allOf": [
{ "format": "uri" },
{ "pattern": "^https?://" }
]
},
"v20Package": {
"properties": {
"packagingVersion": {
"type": "string",
"enum": ["2.0"],
"description": "The version of the packaging format. Please do not use this version. It is only here for backwards compatibility. We recommend you use the latest version."
},
"name": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*[a-z0-9]$",
"description": "The name of the package."
},
"version": {
"type": "string",
"description": "The version of the package. We recommend that you use semantic versions. See http://semver.org/ for more details on semantic versions."
},
"scm": {
"type": "string",
"description": "Source control management. This is generally the URL of the project GitHub repository."
},
"maintainer": {
"type": "string",
"description": "The maintainer of the package. This is generally an email address."
},
"website": {
"type": "string",
"description": "URL to the website of a project. This is generally the URL of the project GitHub repository."
},
"description": {
"type": "string",
"description": "Detailed description of what the package does."
},
"framework": {
"type": "boolean",
"default": false,
"description": "True if this package installs a new Mesos framework."
},
"preInstallNotes": {
"type": "string",
"description": "Pre installation notes that would be useful to the user of this package."
},
"postInstallNotes": {
"type": "string",
"description": "Post installation notes that would be useful to the user of this package."
},
"postUninstallNotes": {
"type": "string",
"description": "Post uninstallation notes that would be useful to the user of this package."
},
"tags": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[^\\s]+$"
},
"description": "A list of keywords associated with the package."
},
"selected": {
"type": "boolean",
"description": "Flag indicating if the package is selected in search results",
"default": false
},
"licenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the license. For example one of [Apache License Version 2.0 | MIT License | BSD License | Proprietary]"
},
"url": {
"$ref": "#/definitions/url",
"description": "The URL where the license can be accessed"
}
},
"additionalProperties": false,
"required": [
"name",
"url"
]
}
}
},
"required": [
"packagingVersion",
"name",
"version",
"maintainer",
"description",
"tags"
],
"additionalProperties": false
},
"v30Package": {
"properties": {
"packagingVersion": {
"type": "string",
"enum": ["3.0"],
"description": "The version of the packaging format."
},
"name": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*[a-z0-9]$",
"description": "The name of the package."
},
"version": {
"type": "string",
"pattern": "^[-a-zA-Z0-9.]+$",
"description": "The version of the package. We recommend that you use semantic versions. See http://semver.org/ for details on semantic versions."
},
"scm": {
"type": "string",
"description": "Source control management. This is generally the URL of the project GitHub repository."
},
"maintainer": {
"type": "string",
"description": "The maintainer of the package. This is generally an email address."
},
"website": {
"type": "string",
"description": "URL to the website of a project. This is generally the URL of the project GitHub repository."
},
"description": {
"type": "string",
"description": "Detailed description of what the package does."
},
"framework": {
"type": "boolean",
"default": false,
"description": "True if this package installs a new Mesos framework."
},
"preInstallNotes": {
"type": "string",
"description": "Pre installation notes that would be useful to the user of this package."
},
"postInstallNotes": {
"type": "string",
"description": "Post installation notes that would be useful to the user of this package."
},
"postUninstallNotes": {
"type": "string",
"description": "Post uninstallation notes that would be useful to the user of this package."
},
"tags": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[^\\s]+$"
},
"description": "A list of keywords associated with the package."
},
"selected": {
"type": "boolean",
"description": "Flag indicating if the package is selected in search results",
"default": false
},
"licenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the license. For example one of [Apache License Version 2.0 | MIT License | BSD License | Proprietary]"
},
"url": {
"$ref": "#/definitions/url",
"description": "The URL where the license can be accessed"
}
},
"additionalProperties": false,
"required": [
"name",
"url"
]
}
},
"minDcosReleaseVersion": {
"$ref": "#/definitions/dcosReleaseVersion",
"description": "The minimum DC/OS Release Version the package can run on."
}
},
"required": [
"packagingVersion",
"name",
"version",
"maintainer",
"description",
"tags"
],
"additionalProperties": false
},
"v40Package": {
"properties": {
"packagingVersion": {
"type": "string",
"enum": ["4.0"],
"description": "The version of the packaging format."
},
"name": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*[a-z0-9]$",
"description": "The name of the package."
},
"version": {
"type": "string",
"pattern": "^[-a-zA-Z0-9.]+$",
"description": "The version of the package. We recommend that you use semantic versions. See http://semver.org/ for details on semantic versions."
},
"scm": {
"type": "string",
"description": "Source control management. This is generally the URL of the project GitHub repository."
},
"maintainer": {
"type": "string",
"description": "The maintainer of the package. This is generally an email address."
},
"website": {
"type": "string",
"description": "URL to the website of a project. This is generally the URL of the project GitHub repository."
},
"description": {
"type": "string",
"description": "Detailed description of what the package does."
},
"framework": {
"type": "boolean",
"default": false,
"description": "True if this package installs a new Mesos framework."
},
"upgradesFrom": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of versions that can upgrade to this package. If the property is a list containing the string '*', any version can upgrade to this package. If the property is not set or the empty list, no version can upgrade to this package."
},
"downgradesTo": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of versions that this package can downgrade to. If the property is a list containing the string '*', this package can downgrade to any version. If the property is not set or the empty list, this package cannot downgrade."
},
"preInstallNotes": {
"type": "string",
"description": "Pre installation notes that would be useful to the user of this package."
},
"postInstallNotes": {
"type": "string",
"description": "Post installation notes that would be useful to the user of this package."
},
"postUninstallNotes": {
"type": "string",
"description": "Post uninstallation notes that would be useful to the user of this package."
},
"tags": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[^\\s]+$",
"description": "A list of keywords associated with the package."
}
},
"selected": {
"type": "boolean",
"description": "Flag indicating if the package is selected in search results",
"default": false
},
"licenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the license. For example one of [Apache License Version 2.0 | MIT License | BSD License | Proprietary]"
},
"url": {
"$ref": "#/definitions/url",
"description": "The URL where the license can be accessed"
}
},
"additionalProperties": false,
"required": [
"name",
"url"
]
}
},
"minDcosReleaseVersion": {
"$ref": "#/definitions/dcosReleaseVersion",
"description": "The minimum DC/OS Release Version the package can run on."
}
},
"required": [
"packagingVersion",
"name",
"version",
"maintainer",
"description",
"tags"
],
"additionalProperties": false
}
},
"type": "object",
"oneOf": [
{ "$ref": "#/definitions/v20Package" },
{ "$ref": "#/definitions/v30Package" },
{ "$ref": "#/definitions/v40Package" }
]
}