{
  "$id": "https://json.schemastore.org/sarif-external-property-file-2.1.0-rtm.1.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false,
  "properties": {
    "$schema": {
      "description": "The URI of the JSON schema corresponding to the version of the external property file format.",
      "type": "string",
      "format": "uri"
    },
    "version": {
      "description": "The SARIF format version of this external properties object.",
      "enum": ["2.1.0"]
    },
    "guid": {
      "description": "A stable, unique identifier for this external properties object, in the form of a GUID.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "runGuid": {
      "description": "A stable, unique identifier for the run associated with this external properties object, in the form of a GUID.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "conversion": {
      "description": "A conversion object that will be merged with an external run.",
      "$ref": "sarif-2.1.0-rtm.1.json#/definitions/conversion"
    },
    "graphs": {
      "description": "An array of graph objects that will merged with an external run.",
      "type": "array",
      "minItems": 0,
      "default": [],
      "uniqueItems": true,
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/graph"
      }
    },
    "externalizedProperties": {
      "description": "Key/value pairs that provide additional information that will be merged with an external run.",
      "$ref": "sarif-2.1.0-rtm.1.json#/definitions/propertyBag"
    },
    "artifacts": {
      "description": "An array of artifact objects that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": true,
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/artifact"
      }
    },
    "invocations": {
      "description": "Describes the invocation of the analysis tool that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": false,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/invocation"
      }
    },
    "logicalLocations": {
      "description": "An array of logical locations such as namespaces, types or functions that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": true,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/logicalLocation"
      }
    },
    "threadFlowLocations": {
      "description": "An array of threadFlowLocation objects that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": true,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/threadFlowLocation"
      }
    },
    "results": {
      "description": "An array of result objects that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": false,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/result"
      }
    },
    "taxonomies": {
      "description": "Tool taxonomies that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": true,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/toolComponent"
      }
    },
    "driver": {
      "description": "The analysis tool object that will be merged with an external run.",
      "$ref": "sarif-2.1.0-rtm.1.json#/definitions/toolComponent"
    },
    "extensions": {
      "description": "Tool extensions that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": true,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/toolComponent"
      }
    },
    "policies": {
      "description": "Tool policies that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": true,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/toolComponent"
      }
    },
    "translations": {
      "description": "Tool translations that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": true,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/toolComponent"
      }
    },
    "addresses": {
      "description": "Addresses that will be merged with with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": false,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/address"
      }
    },
    "webRequests": {
      "description": "Requests that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": true,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/webRequest"
      }
    },
    "webResponses": {
      "description": "Responses that will be merged with an external run.",
      "type": "array",
      "minItems": 0,
      "uniqueItems": true,
      "default": [],
      "items": {
        "$ref": "sarif-2.1.0-rtm.1.json#/definitions/webResponse"
      }
    },
    "properties": {
      "description": "Key/value pairs that provide additional information about the external properties.",
      "$ref": "sarif-2.1.0-rtm.1.json#/definitions/propertyBag"
    }
  },
  "required": ["version"],
  "title": "SARIF External Property File Schema Version 2.1.0-rtm.1 JSON Schema",
  "type": "object"
}
