# SoftwareDevelopment-schema.json

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "../Documentation/Implementation/data_model/Json/",
    "title": "SoftwareDevelopment",
    "description": "SoftwareDevelopment schema",
    "dataTypes": [
        "software"
    ],
    "type": "object",
    "properties": {
        "codeRepository": {
            "type": "string",
            "description": "Name of the code repository"
        },
        "codeRepositoryUrl": {
            "type": "string",
            "format": "url",
            "description": "URL of the code repository"
        },
        "softwareAccess": {
            "type": "string",
            "description": "Conditions of access to the source code",
            "enum": [
                "Public (open)",
                "Private (closed or owner)"
            ]
        },
        "versionControlTool": {
            "type": "string",
            "description": "Using a version control tool"
        },
        "softwareTest": {
            "type": "string",
            "description": "Types of test method used to ensure the quality of the code"
        },
        "continuousIntegrationTool": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Name of the continuous integration tool"
        },
        "continuousIntegrationUrl": {
            "type": "string",
            "format": "url",
            "description": "URL to the continuous integration service"
        },
        "description": {
            "type": "string",
            "description": "Additional information on the choice of development tools and methods"
        }
    },
    "required": [
        "codeRepository",
        "softwareAccess",
        "versionControlTool",
        "continuousIntegrationTool"
    ]
}