{

"$schema":"http://json-schema.org/draft-04/schema#",
"additionalProperties":false,
"definitions":{
  "source":{
    "description":"Source file",
    "id":"#source",
    "title":"Source",
    "type":"string"
  },
  "target":{
    "description":"Target directory",
    "id":"#target",
    "title":"Target",
    "type":"string"
  },
  "name":{
    "description":"New name of the copied file",
    "id":"#name",
    "title":"Name",
    "type":"string"
  },
  "linkname":{
    "description":"Link file",
    "id":"#linkname",
    "title":"Link",
    "type":"string"
  },
  "symbolic":{
    "description":"Whether created link should be symbolic",
    "id":"#symbolic",
    "title":"Symbolic",
    "type":"boolean"
  },
  "copy":{
    "additionalItems":false,
    "id":"#copy",
    "items":{
      "additionalProperties":false,
      "properties":{
        "source":{
          "$ref":"#/definitions/source"
        },
        "target":{
          "$ref":"#/definitions/target"
        },
        "name":{
          "$ref":"#/definitions/name"
        }
      },
      "required":[
        "source",
        "target"
      ],
      "type":"object"
    },
    "type":"array"
  },
  "remove":{
    "additionalItems":false,
    "id":"#remove",
    "items":{
      "description":"File to remove",
      "title":"File",
      "type":"string"
    },
    "type":"array"
  },
  "link":{
    "additionalItems":false,
    "id":"#link",
    "items":{
      "additionalProperties":false,
      "properties":{
        "target":{
          "$ref":"#/definitions/target"
        },
        "link":{
          "$ref":"#/definitions/linkname"
        },
        "symbolic":{
          "$ref":"#/definitions/symbolic"
        }
      },
      "required":[
        "target",
        "link"
      ],
      "type":"object"
    },
    "type":"array"
  },
  "actions":{
    "additionalProperties":false,
    "id":"#actions",
    "properties":{
      "copy":{
        "$ref":"#/definitions/copy"
      },
      "remove":{
        "$ref":"#/definitions/remove"
      },
      "link":{
        "$ref":"#/definitions/link"
      }
    },
    "type":"object"
  },
  "cpu":{
    "description":"Minimum required CPU",
    "id":"#cpu",
    "title":"CPU",
    "type":"integer"
  },
  "distribution":{
    "description":"Distribution name",
    "id":"#distribution",
    "title":"Distribution",
    "type":"string"
  },
  "name":{
    "description":"Image name",
    "id":"#name",
    "title":"Name",
    "type":"string"
  },
  "ram":{
    "description":"Minimum required RAM",
    "id":"#ram",
    "title":"RAM",
    "type":"integer"
  },
  "url":{
    "description":"Image URL",
    "id":"#url",
    "title":"URL",
    "type":"string"
  },
  "function":{
    "description":"Hash function",
    "id":"#function",
    "title":"Function",
    "type":"string"
  },
  "hash":{
    "additionalProperties":false,
    "id":"#hash",
    "properties":{
      "function":{
        "$ref":"#/definitions/function"
      }
    },
    "required":[
      "function"
    ],
    "type":"object"
  },
  "file":{
    "description":"URL to file with both signature and data",
    "id":"#file",
    "title":"File",
    "type":"string"
  },
  "clearsign":{
    "additionalProperties":false,
    "id":"#clearsign",
    "properties":{
      "file":{
        "$ref":"#/definitions/file"
      }
    },
    "required":[
      "file"
    ],
    "type":"object"
  },
  "data":{
    "description":"URL to file with signed data",
    "id":"#data",
    "title":"Data",
    "type":"string"
  },
  "signature_file":{
    "description":"URL to file with signature",
    "id":"#signature_file",
    "title":"Signature",
    "type":"string"
  },
  "detached":{
    "additionalProperties":false,
    "id":"#detached",
    "properties":{
      "data":{
        "$ref":"#/definitions/data"
      },
      "signature":{
        "$ref":"#/definitions/signature_file"
      }
    },
    "required":[
      "data",
      "signature"
    ],
    "type":"object"
  },
  "signature":{
    "additionalProperties":false,
    "id":"#signature",
    "properties":{
      "clearsign":{
        "$ref":"#/definitions/clearsign"
      },
      "detached":{
        "$ref":"#/definitions/detached"
      }
    },
    "type":"object"
  },
  "verification":{
    "additionalProperties":false,
    "id":"#verification",
    "properties":{
      "hash":{
        "$ref":"#/definitions/hash"
      },
      "signature":{
        "$ref":"#/definitions/signature"
      }
    },
    "required":[
      "hash",
      "signature"
    ],
    "type":"object"
  },
  "version":{
    "description":"Image version",
    "id":"#version",
    "title":"Version",
    "type":"string"
  }
},
"id":"imagemaster3000-definition-schema.json",
"properties":{
  "actions":{
    "$ref":"#/definitions/actions"
  },
  "cpu":{
    "$ref":"#/definitions/cpu"
  },
  "distribution":{
    "$ref":"#/definitions/distribution"
  },
  "name":{
    "$ref":"#/definitions/name"
  },
  "ram":{
    "$ref":"#/definitions/ram"
  },
  "url":{
    "$ref":"#/definitions/url"
  },
  "verification":{
    "$ref":"#/definitions/verification"
  },
  "version":{
    "$ref":"#/definitions/version"
  }
},
"required":[
  "name",
  "url",
  "version",
  "distribution"
],
"type":"object"

}