{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "definitions": {
    "Host": {
      "type": "string",
      "enum": [
        "AppVeyor",
        "AzurePipelines",
        "Bamboo",
        "Bitbucket",
        "Bitrise",
        "GitHubActions",
        "GitLab",
        "Jenkins",
        "Rider",
        "SpaceAutomation",
        "TeamCity",
        "Terminal",
        "TravisCI",
        "VisualStudio",
        "VSCode"
      ]
    },
    "ExecutableTarget": {
      "type": "string",
      "enum": [
        "Clean",
        "Compile",
        "Default",
        "Package",
        "PrePublish",
        "Publish",
        "PublishPackages",
        "PublishPreRelease",
        "PublishRelease",
        "Restore",
        "RunUnitTests"
      ]
    },
    "Verbosity": {
      "type": "string",
      "description": "",
      "enum": [
        "Verbose",
        "Normal",
        "Minimal",
        "Quiet"
      ]
    },
    "NukeBuild": {
      "properties": {
        "Continue": {
          "type": "boolean",
          "description": "Indicates to continue a previously failed build attempt"
        },
        "Help": {
          "type": "boolean",
          "description": "Shows the help text for this build assembly"
        },
        "Host": {
          "description": "Host for execution. Default is 'automatic'",
          "$ref": "#/definitions/Host"
        },
        "NoLogo": {
          "type": "boolean",
          "description": "Disables displaying the NUKE logo"
        },
        "Partition": {
          "type": "string",
          "description": "Partition to use on CI"
        },
        "Plan": {
          "type": "boolean",
          "description": "Shows the execution plan (HTML)"
        },
        "Profile": {
          "type": "array",
          "description": "Defines the profiles to load",
          "items": {
            "type": "string"
          }
        },
        "Root": {
          "type": "string",
          "description": "Root directory during build execution"
        },
        "Skip": {
          "type": "array",
          "description": "List of targets to be skipped. Empty list skips all dependencies",
          "items": {
            "$ref": "#/definitions/ExecutableTarget"
          }
        },
        "Target": {
          "type": "array",
          "description": "List of targets to be invoked. Default is '{default_target}'",
          "items": {
            "$ref": "#/definitions/ExecutableTarget"
          }
        },
        "Verbosity": {
          "description": "Logging verbosity during build execution. Default is 'Normal'",
          "$ref": "#/definitions/Verbosity"
        }
      }
    }
  },
  "allOf": [
    {
      "properties": {
        "CommonPropsFilePath": {
          "type": "string",
          "description": "common.props file path - to determine the configured version"
        },
        "Configuration": {
          "type": "string",
          "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)",
          "enum": [
            "Debug",
            "Release"
          ]
        },
        "ReleaseNotesFilePath": {
          "type": "string",
          "description": "ReleaseNotesFilePath - To determine the lates changelog version"
        },
        "Solution": {
          "type": "string",
          "description": "Path to a solution file that is automatically loaded"
        }
      }
    },
    {
      "$ref": "#/definitions/NukeBuild"
    }
  ]
}
