{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Provider",
    "description": "A provider is a deployment platform or orchestrator.",
    "type": "array",
    "items": {
        "oneOf": [
            {
                "$ref": "#/definitions/path"
            },
            {
                "$ref": "#/definitions/repository"
            },
            {
                "$ref": "#/definitions/inheritance"
            }
        ]
    },
    "definitions": {
        "path": {
            "description": "Path to the artifact",
            "type": "string",
            "default": "null"
        },
        "repository": {
            "type": "object",
            "properties": {
                "source": {
                    "name": "source",
                    "description": "Source location of the source control repository. The source MUST be specified by a valid URL.",
                    "type": "string",
                    "default": "null"
                },
                "path": {
                    "name": "path",
                    "description": "The path to a specific artifact file or directory of artifact files. Default value is '/' which would reference all of the files in the repository.",
                    "type": "string",
                    "default": "/"
                },
                "type": {
                    "name": "type",
                    "description": "The source control type. Default value is 'git'.",
                    "type": "string",
                    "default": "git"
                },
                "branch": {
                    "name": "branch",
                    "description": "The source control branch. Default value is 'master'.",
                    "type": "string",
                    "default": "master"
                },
                "tag": {
                    "name": "tag",
                    "description": "The source control tag.",
                    "type": "string",
                    "default": "null"
                }
            }
        },
        "inheritance": {
            "type": "object",
            "properties": {
                "inherit": {
                    "name": "inherit",
                    "description": "List of components whose artifacts will be added to the list of artifacts for the provider.",
                    "type": "array"
                }
            }
        }
    }
}