@microsoft/jest-sarif
Version:
A collection of jest matchers for working with SARIF
1,073 lines • 136 kB
JSON
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Static Analysis Results Format (SARIF) Version 2.1.0-rtm.5 JSON Schema",
"id": "https://raw.githubusercontent.com/schemastore/schemastore/master/src/schemas/json/sarif-2.1.0-rtm.5.json",
"description": "Static Analysis Results Format (SARIF) Version 2.1.0-rtm.5 JSON Schema: a standard format for the output of static analysis tools.",
"additionalProperties": false,
"type": "object",
"properties": {
"$schema": {
"description": "The URI of the JSON schema corresponding to the version.",
"type": "string",
"format": "uri"
},
"version": {
"description": "The SARIF format version of this log file.",
"enum": ["2.1.0"]
},
"runs": {
"description": "The set of runs contained in this log file.",
"type": "array",
"minItems": 0,
"uniqueItems": false,
"items": {
"$ref": "#/definitions/run"
}
},
"inlineExternalProperties": {
"description": "References to external property files that share data between runs.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"items": {
"$ref": "#/definitions/externalProperties"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the log file.",
"$ref": "#/definitions/propertyBag"
}
},
"required": ["version", "runs"],
"definitions": {
"address": {
"description": "A physical or virtual address, or a range of addresses, in an 'addressable region' (memory or a binary file).",
"additionalProperties": false,
"type": "object",
"properties": {
"absoluteAddress": {
"description": "The address expressed as a byte offset from the start of the addressable region.",
"type": "integer",
"minimum": -1,
"default": -1
},
"relativeAddress": {
"description": "The address expressed as a byte offset from the absolute address of the top-most parent object.",
"type": "integer"
},
"length": {
"description": "The number of bytes in this range of addresses.",
"type": "integer"
},
"kind": {
"description": "An open-ended string that identifies the address kind. 'data', 'function', 'header','instruction', 'module', 'page', 'section', 'segment', 'stack', 'stackFrame', 'table' are well-known values.",
"type": "string"
},
"name": {
"description": "A name that is associated with the address, e.g., '.text'.",
"type": "string"
},
"fullyQualifiedName": {
"description": "A human-readable fully qualified name that is associated with the address.",
"type": "string"
},
"offsetFromParent": {
"description": "The byte offset of this address from the absolute or relative address of the parent object.",
"type": "integer"
},
"index": {
"description": "The index within run.addresses of the cached object for this address.",
"type": "integer",
"default": -1,
"minimum": -1
},
"parentIndex": {
"description": "The index within run.addresses of the parent object.",
"type": "integer",
"default": -1,
"minimum": -1
},
"properties": {
"description": "Key/value pairs that provide additional information about the address.",
"$ref": "#/definitions/propertyBag"
}
}
},
"artifact": {
"description": "A single artifact. In some cases, this artifact might be nested within another artifact.",
"additionalProperties": false,
"type": "object",
"properties": {
"description": {
"description": "A short description of the artifact.",
"$ref": "#/definitions/message"
},
"location": {
"description": "The location of the artifact.",
"$ref": "#/definitions/artifactLocation"
},
"parentIndex": {
"description": "Identifies the index of the immediate parent of the artifact, if this artifact is nested.",
"type": "integer",
"default": -1,
"minimum": -1
},
"offset": {
"description": "The offset in bytes of the artifact within its containing artifact.",
"type": "integer",
"minimum": 0
},
"length": {
"description": "The length of the artifact in bytes.",
"type": "integer",
"default": -1,
"minimum": -1
},
"roles": {
"description": "The role or roles played by the artifact in the analysis.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"enum": [
"analysisTarget",
"attachment",
"responseFile",
"resultFile",
"standardStream",
"tracedFile",
"unmodified",
"modified",
"added",
"deleted",
"renamed",
"uncontrolled",
"driver",
"extension",
"translation",
"taxonomy",
"policy",
"referencedOnCommandLine",
"memoryContents",
"directory",
"userSpecifiedConfiguration",
"toolSpecifiedConfiguration",
"debugOutputFile"
]
}
},
"mimeType": {
"description": "The MIME type (RFC 2045) of the artifact.",
"type": "string",
"pattern": "[^/]+/.+"
},
"contents": {
"description": "The contents of the artifact.",
"$ref": "#/definitions/artifactContent"
},
"encoding": {
"description": "Specifies the encoding for an artifact object that refers to a text file.",
"type": "string"
},
"sourceLanguage": {
"description": "Specifies the source language for any artifact object that refers to a text file that contains source code.",
"type": "string"
},
"hashes": {
"description": "A dictionary, each of whose keys is the name of a hash function and each of whose values is the hashed value of the artifact produced by the specified hash function.",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"lastModifiedTimeUtc": {
"description": "The Coordinated Universal Time (UTC) date and time at which the artifact was most recently modified. See \"Date/time properties\" in the SARIF spec for the required format.",
"type": "string",
"format": "date-time"
},
"properties": {
"description": "Key/value pairs that provide additional information about the artifact.",
"$ref": "#/definitions/propertyBag"
}
}
},
"artifactChange": {
"description": "A change to a single artifact.",
"additionalProperties": false,
"type": "object",
"properties": {
"artifactLocation": {
"description": "The location of the artifact to change.",
"$ref": "#/definitions/artifactLocation"
},
"replacements": {
"description": "An array of replacement objects, each of which represents the replacement of a single region in a single artifact specified by 'artifactLocation'.",
"type": "array",
"minItems": 1,
"uniqueItems": false,
"items": {
"$ref": "#/definitions/replacement"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the change.",
"$ref": "#/definitions/propertyBag"
}
},
"required": ["artifactLocation", "replacements"]
},
"artifactContent": {
"description": "Represents the contents of an artifact.",
"type": "object",
"additionalProperties": false,
"properties": {
"text": {
"description": "UTF-8-encoded content from a text artifact.",
"type": "string"
},
"binary": {
"description": "MIME Base64-encoded content from a binary artifact, or from a text artifact in its original encoding.",
"type": "string"
},
"rendered": {
"description": "An alternate rendered representation of the artifact (e.g., a decompiled representation of a binary region).",
"$ref": "#/definitions/multiformatMessageString"
},
"properties": {
"description": "Key/value pairs that provide additional information about the artifact content.",
"$ref": "#/definitions/propertyBag"
}
}
},
"artifactLocation": {
"description": "Specifies the location of an artifact.",
"additionalProperties": false,
"type": "object",
"properties": {
"uri": {
"description": "A string containing a valid relative or absolute URI.",
"type": "string",
"format": "uri-reference"
},
"uriBaseId": {
"description": "A string which indirectly specifies the absolute URI with respect to which a relative URI in the \"uri\" property is interpreted.",
"type": "string"
},
"index": {
"description": "The index within the run artifacts array of the artifact object associated with the artifact location.",
"type": "integer",
"default": -1,
"minimum": -1
},
"description": {
"description": "A short description of the artifact location.",
"$ref": "#/definitions/message"
},
"properties": {
"description": "Key/value pairs that provide additional information about the artifact location.",
"$ref": "#/definitions/propertyBag"
}
}
},
"attachment": {
"description": "An artifact relevant to a result.",
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"description": "A message describing the role played by the attachment.",
"$ref": "#/definitions/message"
},
"artifactLocation": {
"description": "The location of the attachment.",
"$ref": "#/definitions/artifactLocation"
},
"regions": {
"description": "An array of regions of interest within the attachment.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/region"
}
},
"rectangles": {
"description": "An array of rectangles specifying areas of interest within the image.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/rectangle"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the attachment.",
"$ref": "#/definitions/propertyBag"
}
},
"required": ["artifactLocation"]
},
"codeFlow": {
"description": "A set of threadFlows which together describe a pattern of code execution relevant to detecting a result.",
"additionalProperties": false,
"type": "object",
"properties": {
"message": {
"description": "A message relevant to the code flow.",
"$ref": "#/definitions/message"
},
"threadFlows": {
"description": "An array of one or more unique threadFlow objects, each of which describes the progress of a program through a thread of execution.",
"type": "array",
"minItems": 1,
"uniqueItems": false,
"items": {
"$ref": "#/definitions/threadFlow"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the code flow.",
"$ref": "#/definitions/propertyBag"
}
},
"required": ["threadFlows"]
},
"configurationOverride": {
"description": "Information about how a specific rule or notification was reconfigured at runtime.",
"type": "object",
"additionalProperties": false,
"properties": {
"configuration": {
"description": "Specifies how the rule or notification was configured during the scan.",
"$ref": "#/definitions/reportingConfiguration"
},
"descriptor": {
"description": "A reference used to locate the descriptor whose configuration was overridden.",
"$ref": "#/definitions/reportingDescriptorReference"
},
"properties": {
"description": "Key/value pairs that provide additional information about the configuration override.",
"$ref": "#/definitions/propertyBag"
}
},
"required": ["configuration", "descriptor"]
},
"conversion": {
"description": "Describes how a converter transformed the output of a static analysis tool from the analysis tool's native output format into the SARIF format.",
"additionalProperties": false,
"type": "object",
"properties": {
"tool": {
"description": "A tool object that describes the converter.",
"$ref": "#/definitions/tool"
},
"invocation": {
"description": "An invocation object that describes the invocation of the converter.",
"$ref": "#/definitions/invocation"
},
"analysisToolLogFiles": {
"description": "The locations of the analysis tool's per-run log files.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/artifactLocation"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the conversion.",
"$ref": "#/definitions/propertyBag"
}
},
"required": ["tool"]
},
"edge": {
"description": "Represents a directed edge in a graph.",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "A string that uniquely identifies the edge within its graph.",
"type": "string"
},
"label": {
"description": "A short description of the edge.",
"$ref": "#/definitions/message"
},
"sourceNodeId": {
"description": "Identifies the source node (the node at which the edge starts).",
"type": "string"
},
"targetNodeId": {
"description": "Identifies the target node (the node at which the edge ends).",
"type": "string"
},
"properties": {
"description": "Key/value pairs that provide additional information about the edge.",
"$ref": "#/definitions/propertyBag"
}
},
"required": ["id", "sourceNodeId", "targetNodeId"]
},
"edgeTraversal": {
"description": "Represents the traversal of a single edge during a graph traversal.",
"type": "object",
"additionalProperties": false,
"properties": {
"edgeId": {
"description": "Identifies the edge being traversed.",
"type": "string"
},
"message": {
"description": "A message to display to the user as the edge is traversed.",
"$ref": "#/definitions/message"
},
"finalState": {
"description": "The values of relevant expressions after the edge has been traversed.",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/multiformatMessageString"
}
},
"stepOverEdgeCount": {
"description": "The number of edge traversals necessary to return from a nested graph.",
"type": "integer",
"minimum": 0
},
"properties": {
"description": "Key/value pairs that provide additional information about the edge traversal.",
"$ref": "#/definitions/propertyBag"
}
},
"required": ["edgeId"]
},
"exception": {
"description": "Describes a runtime exception encountered during the execution of an analysis tool.",
"type": "object",
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"description": "A string that identifies the kind of exception, for example, the fully qualified type name of an object that was thrown, or the symbolic name of a signal."
},
"message": {
"description": "A message that describes the exception.",
"type": "string"
},
"stack": {
"description": "The sequence of function calls leading to the exception.",
"$ref": "#/definitions/stack"
},
"innerExceptions": {
"description": "An array of exception objects each of which is considered a cause of this exception.",
"type": "array",
"minItems": 0,
"uniqueItems": false,
"default": [],
"items": {
"$ref": "#/definitions/exception"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the exception.",
"$ref": "#/definitions/propertyBag"
}
}
},
"externalProperties": {
"description": "The top-level element of an external property file.",
"type": "object",
"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 a separate run.",
"$ref": "#/definitions/conversion"
},
"graphs": {
"description": "An array of graph objects that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"default": [],
"uniqueItems": true,
"items": {
"$ref": "#/definitions/graph"
}
},
"externalizedProperties": {
"description": "Key/value pairs that provide additional information that will be merged with a separate run.",
"$ref": "#/definitions/propertyBag"
},
"artifacts": {
"description": "An array of artifact objects that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"items": {
"$ref": "#/definitions/artifact"
}
},
"invocations": {
"description": "Describes the invocation of the analysis tool that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": false,
"default": [],
"items": {
"$ref": "#/definitions/invocation"
}
},
"logicalLocations": {
"description": "An array of logical locations such as namespaces, types or functions that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/logicalLocation"
}
},
"threadFlowLocations": {
"description": "An array of threadFlowLocation objects that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/threadFlowLocation"
}
},
"results": {
"description": "An array of result objects that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": false,
"default": [],
"items": {
"$ref": "#/definitions/result"
}
},
"taxonomies": {
"description": "Tool taxonomies that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/toolComponent"
}
},
"driver": {
"description": "The analysis tool object that will be merged with a separate run.",
"$ref": "#/definitions/toolComponent"
},
"extensions": {
"description": "Tool extensions that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/toolComponent"
}
},
"policies": {
"description": "Tool policies that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/toolComponent"
}
},
"translations": {
"description": "Tool translations that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/toolComponent"
}
},
"addresses": {
"description": "Addresses that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": false,
"default": [],
"items": {
"$ref": "#/definitions/address"
}
},
"webRequests": {
"description": "Requests that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/webRequest"
}
},
"webResponses": {
"description": "Responses that will be merged with a separate run.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/webResponse"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the external properties.",
"$ref": "#/definitions/propertyBag"
}
}
},
"externalPropertyFileReference": {
"description": "Contains information that enables a SARIF consumer to locate the external property file that contains the value of an externalized property associated with the run.",
"type": "object",
"additionalProperties": false,
"properties": {
"location": {
"description": "The location of the external property file.",
"$ref": "#/definitions/artifactLocation"
},
"guid": {
"description": "A stable, unique identifier for the external property file 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}$"
},
"itemCount": {
"description": "A non-negative integer specifying the number of items contained in the external property file.",
"type": "integer",
"default": -1,
"minimum": -1
},
"properties": {
"description": "Key/value pairs that provide additional information about the external property file.",
"$ref": "#/definitions/propertyBag"
}
},
"anyOf": [{ "required": ["location"] }, { "required": ["guid"] }]
},
"externalPropertyFileReferences": {
"description": "References to external property files that should be inlined with the content of a root log file.",
"additionalProperties": false,
"type": "object",
"properties": {
"conversion": {
"description": "An external property file containing a run.conversion object to be merged with the root log file.",
"$ref": "#/definitions/externalPropertyFileReference"
},
"graphs": {
"description": "An array of external property files containing a run.graphs object to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"externalizedProperties": {
"description": "An external property file containing a run.properties object to be merged with the root log file.",
"$ref": "#/definitions/externalPropertyFileReference"
},
"artifacts": {
"description": "An array of external property files containing run.artifacts arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"invocations": {
"description": "An array of external property files containing run.invocations arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"logicalLocations": {
"description": "An array of external property files containing run.logicalLocations arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"threadFlowLocations": {
"description": "An array of external property files containing run.threadFlowLocations arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"results": {
"description": "An array of external property files containing run.results arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"taxonomies": {
"description": "An array of external property files containing run.taxonomies arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"addresses": {
"description": "An array of external property files containing run.addresses arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"driver": {
"description": "An external property file containing a run.driver object to be merged with the root log file.",
"$ref": "#/definitions/externalPropertyFileReference"
},
"extensions": {
"description": "An array of external property files containing run.extensions arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"policies": {
"description": "An array of external property files containing run.policies arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"translations": {
"description": "An array of external property files containing run.translations arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"webRequests": {
"description": "An array of external property files containing run.requests arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"webResponses": {
"description": "An array of external property files containing run.responses arrays to be merged with the root log file.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/externalPropertyFileReference"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the external property files.",
"$ref": "#/definitions/propertyBag"
}
}
},
"fix": {
"description": "A proposed fix for the problem represented by a result object. A fix specifies a set of artifacts to modify. For each artifact, it specifies a set of bytes to remove, and provides a set of new bytes to replace them.",
"additionalProperties": false,
"type": "object",
"properties": {
"description": {
"description": "A message that describes the proposed fix, enabling viewers to present the proposed change to an end user.",
"$ref": "#/definitions/message"
},
"artifactChanges": {
"description": "One or more artifact changes that comprise a fix for a result.",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"$ref": "#/definitions/artifactChange"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the fix.",
"$ref": "#/definitions/propertyBag"
}
},
"required": ["artifactChanges"]
},
"graph": {
"description": "A network of nodes and directed edges that describes some aspect of the structure of the code (for example, a call graph).",
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"description": "A description of the graph.",
"$ref": "#/definitions/message"
},
"nodes": {
"description": "An array of node objects representing the nodes of the graph.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/node"
}
},
"edges": {
"description": "An array of edge objects representing the edges of the graph.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"default": [],
"items": {
"$ref": "#/definitions/edge"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the graph.",
"$ref": "#/definitions/propertyBag"
}
}
},
"graphTraversal": {
"description": "Represents a path through a graph.",
"type": "object",
"additionalProperties": false,
"properties": {
"runGraphIndex": {
"description": "The index within the run.graphs to be associated with the result.",
"type": "integer",
"default": -1,
"minimum": -1
},
"resultGraphIndex": {
"description": "The index within the result.graphs to be associated with the result.",
"type": "integer",
"default": -1,
"minimum": -1
},
"description": {
"description": "A description of this graph traversal.",
"$ref": "#/definitions/message"
},
"initialState": {
"description": "Values of relevant expressions at the start of the graph traversal that may change during graph traversal.",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/multiformatMessageString"
}
},
"immutableState": {
"description": "Values of relevant expressions at the start of the graph traversal that remain constant for the graph traversal.",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/multiformatMessageString"
}
},
"edgeTraversals": {
"description": "The sequences of edges traversed by this graph traversal.",
"type": "array",
"minItems": 0,
"uniqueItems": false,
"default": [],
"items": {
"$ref": "#/definitions/edgeTraversal"
}
},
"properties": {
"description": "Key/value pairs that provide additional information about the graph traversal.",
"$ref": "#/definitions/propertyBag"
}
},
"oneOf": [{ "required": ["runGraphIndex"] }, { "required": ["resultGraphIndex"] }]
},
"invocation": {
"description": "The runtime environment of the analysis tool run.",
"additionalProperties": false,
"type": "object",
"properties": {
"commandLine": {
"description": "The command line used to invoke the tool.",
"type": "string"
},
"arguments": {
"description": "An array of strings, containing in order the command line arguments passed to the tool from the operating system.",
"type": "array",
"minItems": 0,
"uniqueItems": false,
"items": {
"type": "string"
}
},
"responseFiles": {
"description": "The locations of any response files specified on the tool's command line.",
"type": "array",
"minItems": 0,
"uniqueItems": true,
"items": {
"$ref": "#/definitions/artifactLocation"
}
},
"startTimeUtc": {
"description": "The Coordinated Universal Time (UTC) date and time at which the invocation started. See \"Date/time properties\" in the SARIF spec for the required format.",
"type": "string",
"format": "date-time"
},
"endTimeUtc": {
"description": "The Coordinated Universal Time (UTC) date and time at which the invocation ended. See \"Date/time properties\" in the SARIF spec for the required format.",
"type": "string",
"format": "date-time"
},
"exitCode": {
"description": "The process exit code.",
"type": "integer"
},
"ruleConfigurationOverrides": {
"description": "An array of configurationOverride objects that describe rules related runtime overrides.",
"type": "array",
"minItems": 0,
"default": [],
"uniqueItems": true,
"items": {
"$ref": "#/definitions/configurationOverride"
}
},
"notificationConfigurationOverrides": {
"description": "An array of configurationOverride objects that describe notifications related runtime overrides.",
"type": "array",
"minItems": 0,
"default": [],
"uniqueItems": true,
"items": {
"$ref": "#/definitions/configurationOverride"
}
},
"toolExecutionNotifications": {
"description": "A list of runtime conditions detected by the tool during the analysis.",
"type": "array",
"minItems": 0,
"uniqueItems": false,
"default": [],
"items": {
"$ref": "#/definitions/notification"
}
},
"toolConfigurationNotifications": {
"description": "A list of conditions detected by the tool that are relevant to the tool's configuration.",
"type": "array",
"minItems": 0,
"uniqueItems": false,
"default": [],
"items": {
"$ref": "#/definitions/notification"
}
},
"exitCodeDescription": {
"description": "The reason for the process exit.",
"type": "string"
},
"exitSignalName": {
"description": "The name of the signal that caused the process to exit.",
"type": "string"
},
"exitSignalNumber": {
"description": "The numeric value of the signal that caused the process to exit.",
"type": "integer"
},
"processStartFailureMessage": {
"description": "The reason given by the operating system that the process failed to start.",
"type": "string"
},
"executionSuccessful": {
"description": "Specifies whether the tool's execution completed successfully.",
"type": "boolean"
},
"machine": {
"description": "The machine on which the invocation occurred.",
"type": "string"
},
"account": {
"description": "The account under which the invocation occurred.",
"type": "string"
},
"processId": {
"description": "The id of the process in which the invocation occurred.",
"type": "integer"
},
"executableLocation": {
"description": "An absolute URI specifying the location of the executable that was invoked.",
"$ref": "#/definitions/artifactLocation"
},
"workingDirectory": {
"description": "The working directory for the invocation.",
"$ref": "#/definitions/artifactLocation"
},
"environmentVariables": {
"description": "The environment variables associated with the analysis tool process, expressed as key/value pairs.",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"stdin": {
"description": "A file containing the standard input stre