Package modulecheck.reporting.sarif

Types

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Address(    @Json(name = "absoluteAddress") val absoluteAddress: Int? = null,     @Json(name = "fullyQualifiedName") val fullyQualifiedName: String? = null,     @Json(name = "index") val index: Int? = null,     @Json(name = "kind") val kind: String? = null,     @Json(name = "length") val length: Int? = null,     @Json(name = "name") val name: String? = null,     @Json(name = "offsetFromParent") val offsetFromParent: Int? = null,     @Json(name = "parentIndex") val parentIndex: Int? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "relativeAddress") val relativeAddress: Int? = null)

A physical or virtual address, or a range of addresses, in an 'addressable region' (memory or a binary file).

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Artifact(    @Json(name = "contents") val contents: ArtifactContent? = null,     @Json(name = "description") val description: Message? = null,     @Json(name = "encoding") val encoding: String? = null,     @Json(name = "hashes") val hashes: Map<String, String>? = null,     @Json(name = "lastModifiedTimeUtc") val lastModifiedTimeUTC: String? = null,     @Json(name = "length") val length: Int? = null,     @Json(name = "location") val location: ArtifactLocation? = null,     @Json(name = "mimeType") val mimeType: String? = null,     @Json(name = "offset") val offset: Int? = null,     @Json(name = "parentIndex") val parentIndex: Int? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "roles") val roles: List<Role>? = null,     @Json(name = "sourceLanguage") val sourceLanguage: String? = null)

A single artifact. In some cases, this artifact might be nested within another artifact.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ArtifactChange(    @Json(name = "artifactLocation") val artifactLocation: ArtifactLocation,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "replacements") val replacements: List<Replacement>)

A change to a single artifact.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ArtifactContent(    @Json(name = "binary") val binary: String? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "rendered") val rendered: MultiformatMessageString? = null,     @Json(name = "text") val text: String? = null)

The contents of the artifact.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ArtifactLocation(    @Json(name = "description") val description: Message? = null,     @Json(name = "index") val index: Int? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "uri") val uri: String? = null,     @Json(name = "uriBaseId") val uriBaseID: String? = null)

The location of the artifact.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Attachment(    @Json(name = "artifactLocation") val artifactLocation: ArtifactLocation,     @Json(name = "description") val description: Message? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "rectangles") val rectangles: List<Rectangle>? = null,     @Json(name = "regions") val regions: List<Region>? = null)

An artifact relevant to a result.

Link copied to clipboard
enum BaselineState(val value: String) : Enum<BaselineState>

The state of a result relative to a baseline of a previous run.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class CodeFlow(    @Json(name = "message") val message: Message? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "threadFlows") val threadFlows: List<ThreadFlow>)

A set of threadFlows which together describe a pattern of code execution relevant to detecting a result.

Link copied to clipboard
enum ColumnKind(val value: String) : Enum<ColumnKind>

Specifies the unit in which the tool measures columns.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ConfigurationOverride(    @Json(name = "configuration") val configuration: ReportingConfiguration,     @Json(name = "descriptor") val descriptor: ReportingDescriptorReference,     @Json(name = "properties") val properties: PropertyBag? = null)

Information about how a specific rule or notification was reconfigured at runtime.

Link copied to clipboard
enum Content(val value: String) : Enum<Content>
Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Conversion(    @Json(name = "analysisToolLogFiles") val analysisToolLogFiles: List<ArtifactLocation>? = null,     @Json(name = "invocation") val invocation: Invocation? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "tool") val tool: Tool)

A conversion object that will be merged with a separate run.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Edge(    @Json(name = "id") val id: String,     @Json(name = "label") val label: Message? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "sourceNodeId") val sourceNodeID: String,     @Json(name = "targetNodeId") val targetNodeID: String)

Represents a directed edge in a graph.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class EdgeTraversal(    @Json(name = "edgeId") val edgeID: String,     @Json(name = "finalState") val finalState: Map<String, MultiformatMessageString>? = null,     @Json(name = "message") val message: Message? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "stepOverEdgeCount") val stepOverEdgeCount: Int? = null)

Represents the traversal of a single edge during a graph traversal.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Exception(    @Json(name = "innerExceptions") val innerExceptions: List<Exception>? = null,     @Json(name = "kind") val kind: String? = null,     @Json(name = "message") val message: String? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "stack") val stack: Stack? = null)

The runtime exception, if any, relevant to this notification.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ExternalProperties(    @Json(name = "addresses") val addresses: List<Address>? = null,     @Json(name = "artifacts") val artifacts: List<Artifact>? = null,     @Json(name = "conversion") val conversion: Conversion? = null,     @Json(name = "driver") val driver: SarifDriver? = null,     @Json(name = "extensions") val extensions: List<SarifDriver>? = null,     @Json(name = "externalizedProperties") val externalizedProperties: PropertyBag? = null,     @Json(name = "graphs") val graphs: List<Graph>? = null,     @Json(name = "guid") val guid: String? = null,     @Json(name = "invocations") val invocations: List<Invocation>? = null,     @Json(name = "logicalLocations") val logicalLocations: List<LogicalLocation>? = null,     @Json(name = "policies") val policies: List<SarifDriver>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "results") val results: List<SarifResult>? = null,     @Json(name = "runGuid") val runGUID: String? = null,     @Json(name = "schema") val schema: String? = null,     @Json(name = "taxonomies") val taxonomies: List<SarifDriver>? = null,     @Json(name = "threadFlowLocations") val threadFlowLocations: List<ThreadFlowLocation>? = null,     @Json(name = "translations") val translations: List<SarifDriver>? = null,     @Json(name = "version") val version: Version? = null,     @Json(name = "webRequests") val webRequests: List<WebRequest>? = null,     @Json(name = "webResponses") val webResponses: List<WebResponse>? = null)

The top-level element of an external property file.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ExternalPropertyFileReference(    @Json(name = "guid") val guid: String? = null,     @Json(name = "itemCount") val itemCount: Int? = null,     @Json(name = "location") val location: ArtifactLocation? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

An external property file containing a run.conversion object to be merged with the root log file.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ExternalPropertyFileReferences(    @Json(name = "addresses") val addresses: List<ExternalPropertyFileReference>? = null,     @Json(name = "artifacts") val artifacts: List<ExternalPropertyFileReference>? = null,     @Json(name = "conversion") val conversion: ExternalPropertyFileReference? = null,     @Json(name = "driver") val driver: ExternalPropertyFileReference? = null,     @Json(name = "extensions") val extensions: List<ExternalPropertyFileReference>? = null,     @Json(name = "externalizedProperties") val externalizedProperties: ExternalPropertyFileReference? = null,     @Json(name = "graphs") val graphs: List<ExternalPropertyFileReference>? = null,     @Json(name = "invocations") val invocations: List<ExternalPropertyFileReference>? = null,     @Json(name = "logicalLocations") val logicalLocations: List<ExternalPropertyFileReference>? = null,     @Json(name = "policies") val policies: List<ExternalPropertyFileReference>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "results") val results: List<ExternalPropertyFileReference>? = null,     @Json(name = "taxonomies") val taxonomies: List<ExternalPropertyFileReference>? = null,     @Json(name = "threadFlowLocations") val threadFlowLocations: List<ExternalPropertyFileReference>? = null,     @Json(name = "translations") val translations: List<ExternalPropertyFileReference>? = null,     @Json(name = "webRequests") val webRequests: List<ExternalPropertyFileReference>? = null,     @Json(name = "webResponses") val webResponses: List<ExternalPropertyFileReference>? = null)

References to external property files that should be inlined with the content of a root log file.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Fix(    @Json(name = "artifactChanges") val artifactChanges: List<ArtifactChange>,     @Json(name = "description") val description: Message? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

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.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Graph(    @Json(name = "description") val description: Message? = null,     @Json(name = "edges") val edges: List<Edge>? = null,     @Json(name = "nodes") val nodes: List<Node>? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

A network of nodes and directed edges that describes some aspect of the structure of the code (for example, a call graph).

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class GraphTraversal(    @Json(name = "description") val description: Message? = null,     @Json(name = "edgeTraversals") val edgeTraversals: List<EdgeTraversal>? = null,     @Json(name = "immutableState") val immutableState: Map<String, MultiformatMessageString>? = null,     @Json(name = "initialState") val initialState: Map<String, MultiformatMessageString>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "resultGraphIndex") val resultGraphIndex: Int? = null,     @Json(name = "runGraphIndex") val runGraphIndex: Int? = null)

Represents a path through a graph.

Link copied to clipboard
enum Importance(val value: String) : Enum<Importance>

Specifies the importance of this location in understanding the code flow in which it occurs. The order from most to least important is "essential", "important", "unimportant". Default: "important".

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Invocation(    @Json(name = "account") val account: String? = null,     @Json(name = "arguments") val arguments: List<String>? = null,     @Json(name = "commandLine") val commandLine: String? = null,     @Json(name = "endTimeUtc") val endTimeUTC: String? = null,     @Json(name = "environmentVariables") val environmentVariables: Map<String, String>? = null,     @Json(name = "executableLocation") val executableLocation: ArtifactLocation? = null,     @Json(name = "executionSuccessful") val executionSuccessful: Boolean,     @Json(name = "exitCode") val exitCode: Int? = null,     @Json(name = "exitCodeDescription") val exitCodeDescription: String? = null,     @Json(name = "exitSignalName") val exitSignalName: String? = null,     @Json(name = "exitSignalNumber") val exitSignalNumber: Int? = null,     @Json(name = "machine") val machine: String? = null,     @Json(name = "notificationConfigurationOverrides") val notificationConfigurationOverrides: List<ConfigurationOverride>? = null,     @Json(name = "processId") val processID: Int? = null,     @Json(name = "processStartFailureMessage") val processStartFailureMessage: String? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "responseFiles") val responseFiles: List<ArtifactLocation>? = null,     @Json(name = "ruleConfigurationOverrides") val ruleConfigurationOverrides: List<ConfigurationOverride>? = null,     @Json(name = "startTimeUtc") val startTimeUTC: String? = null,     @Json(name = "stderr") val stderr: ArtifactLocation? = null,     @Json(name = "stdin") val stdin: ArtifactLocation? = null,     @Json(name = "stdout") val stdout: ArtifactLocation? = null,     @Json(name = "stdoutStderr") val stdoutStderr: ArtifactLocation? = null,     @Json(name = "toolConfigurationNotifications") val toolConfigurationNotifications: List<Notification>? = null,     @Json(name = "toolExecutionNotifications") val toolExecutionNotifications: List<Notification>? = null,     @Json(name = "workingDirectory") val workingDirectory: ArtifactLocation? = null)

An invocation object that describes the invocation of the converter.

Link copied to clipboard
enum Level(val value: String) : Enum<Level>

Specifies the failure level for the report.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Location(    @Json(name = "annotations") val annotations: List<Region>? = null,     @Json(name = "id") val id: Int? = null,     @Json(name = "logicalLocations") val logicalLocations: List<LogicalLocation>? = null,     @Json(name = "message") val message: Message? = null,     @Json(name = "physicalLocation") val physicalLocation: PhysicalLocation? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "relationships") val relationships: List<LocationRelationship>? = null)

The location to which this stack frame refers.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class LocationRelationship(    @Json(name = "description") val description: Message? = null,     @Json(name = "kinds") val kinds: List<String>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "target") val target: Int)

Information about the relation of one location to another.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class LogicalLocation(    @Json(name = "decoratedName") val decoratedName: String? = null,     @Json(name = "fullyQualifiedName") val fullyQualifiedName: String? = null,     @Json(name = "index") val index: Int? = null,     @Json(name = "kind") val kind: String? = null,     @Json(name = "name") val name: String? = null,     @Json(name = "parentIndex") val parentIndex: Int? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

A logical location of a construct that produced a result.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Message(    @Json(name = "arguments") val arguments: List<String>? = null,     @Json(name = "id") val id: String? = null,     @Json(name = "markdown") val markdown: String? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "text") val text: String? = null)

A short description of the artifact.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class MultiformatMessageString(    @Json(name = "markdown") val markdown: String? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "text") val text: String)

An alternate rendered representation of the artifact (e.g., a decompiled representation of a binary region).

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Node(    @Json(name = "children") val children: List<Node>? = null,     @Json(name = "id") val id: String,     @Json(name = "label") val label: Message? = null,     @Json(name = "location") val location: Location? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

Represents a node in a graph.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Notification(    @Json(name = "associatedRule") val associatedRule: ReportingDescriptorReference? = null,     @Json(name = "descriptor") val descriptor: ReportingDescriptorReference? = null,     @Json(name = "exception") val exception: Exception? = null,     @Json(name = "level") val level: Level? = null,     @Json(name = "locations") val locations: List<Location>? = null,     @Json(name = "message") val message: Message,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "threadId") val threadID: Int? = null,     @Json(name = "timeUtc") val timeUTC: String? = null)

Describes a condition relevant to the tool itself, as opposed to being relevant to a target being analyzed by the tool.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class PhysicalLocation(    @Json(name = "address") val address: Address? = null,     @Json(name = "artifactLocation") val artifactLocation: ArtifactLocation? = null,     @Json(name = "contextRegion") val contextRegion: Region? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "region") val region: Region? = null)

Identifies the artifact and region.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class PropertyBag(@Json(name = "tags") val tags: List<String>? = null)

Key/value pairs.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Rectangle(    @Json(name = "bottom") val bottom: Double? = null,     @Json(name = "left") val left: Double? = null,     @Json(name = "message") val message: Message? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "right") val right: Double? = null,     @Json(name = "top") val top: Double? = null)

An area within an image.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Region(    @Json(name = "byteLength") val byteLength: Int? = null,     @Json(name = "byteOffset") val byteOffset: Int? = null,     @Json(name = "charLength") val charLength: Int? = null,     @Json(name = "charOffset") val charOffset: Int? = null,     @Json(name = "endColumn") val endColumn: Int? = null,     @Json(name = "endLine") val endLine: Int? = null,     @Json(name = "message") val message: Message? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "snippet") val snippet: ArtifactContent? = null,     @Json(name = "sourceLanguage") val sourceLanguage: String? = null,     @Json(name = "startColumn") val startColumn: Int? = null,     @Json(name = "startLine") val startLine: Int? = null)

A region within an artifact where a result was detected.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Replacement(    @Json(name = "deletedRegion") val deletedRegion: Region,     @Json(name = "insertedContent") val insertedContent: ArtifactContent? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

The replacement of a single region of an artifact.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ReportingConfiguration(    @Json(name = "enabled") val enabled: Boolean? = null,     @Json(name = "level") val level: Level? = null,     @Json(name = "parameters") val parameters: PropertyBag? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "rank") val rank: Double? = null)

Specifies how the rule or notification was configured during the scan.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ReportingDescriptorReference(    @Json(name = "guid") val guid: String? = null,     @Json(name = "id") val id: String? = null,     @Json(name = "index") val index: Int? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "toolComponent") val toolComponent: ToolComponentReference? = null)

A reference used to locate the descriptor whose configuration was overridden.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ReportingDescriptorRelationship(    @Json(name = "description") val description: Message? = null,     @Json(name = "kinds") val kinds: List<String>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "target") val target: ReportingDescriptorReference)

Information about the relation of one reporting descriptor to another.

Link copied to clipboard
enum ResultKind(val value: String) : Enum<ResultKind>

A value that categorizes results by evaluation state.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ResultProvenance(    @Json(name = "conversionSources") val conversionSources: List<PhysicalLocation>? = null,     @Json(name = "firstDetectionRunGuid") val firstDetectionRunGUID: String? = null,     @Json(name = "firstDetectionTimeUtc") val firstDetectionTimeUTC: String? = null,     @Json(name = "invocationIndex") val invocationIndex: Int? = null,     @Json(name = "lastDetectionRunGuid") val lastDetectionRunGUID: String? = null,     @Json(name = "lastDetectionTimeUtc") val lastDetectionTimeUTC: String? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

Information about how and when the result was detected.

Link copied to clipboard
enum Role : Enum<Role>
Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Run(    @Json(name = "addresses") val addresses: List<Address>? = null,     @Json(name = "artifacts") val artifacts: List<Artifact>? = null,     @Json(name = "automationDetails") val automationDetails: RunAutomationDetails? = null,     @Json(name = "baselineGuid") val baselineGUID: String? = null,     @Json(name = "columnKind") val columnKind: ColumnKind? = null,     @Json(name = "conversion") val conversion: Conversion? = null,     @Json(name = "defaultEncoding") val defaultEncoding: String? = null,     @Json(name = "defaultSourceLanguage") val defaultSourceLanguage: String? = null,     @Json(name = "externalPropertyFileReferences") val externalPropertyFileReferences: ExternalPropertyFileReferences? = null,     @Json(name = "graphs") val graphs: List<Graph>? = null,     @Json(name = "invocations") val invocations: List<Invocation>? = null,     @Json(name = "language") val language: String? = null,     @Json(name = "logicalLocations") val logicalLocations: List<LogicalLocation>? = null,     @Json(name = "newlineSequences") val newlineSequences: List<String>? = null,     @Json(name = "originalUriBaseIds") val originalURIBaseIDS: Map<String, ArtifactLocation>? = null,     @Json(name = "policies") val policies: List<SarifDriver>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "redactionTokens") val redactionTokens: List<String>? = null,     @Json(name = "results") val results: List<SarifResult>? = null,     @Json(name = "runAggregates") val runAggregates: List<RunAutomationDetails>? = null,     @Json(name = "specialLocations") val specialLocations: SpecialLocations? = null,     @Json(name = "taxonomies") val taxonomies: List<SarifDriver>? = null,     @Json(name = "threadFlowLocations") val threadFlowLocations: List<ThreadFlowLocation>? = null,     @Json(name = "tool") val tool: Tool,     @Json(name = "translations") val translations: List<SarifDriver>? = null,     @Json(name = "versionControlProvenance") val versionControlProvenance: List<VersionControlDetails>? = null,     @Json(name = "webRequests") val webRequests: List<WebRequest>? = null,     @Json(name = "webResponses") val webResponses: List<WebResponse>? = null)

Describes a single run of an analysis tool, and contains the reported output of that run.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class RunAutomationDetails(    @Json(name = "correlationGuid") val correlationGUID: String? = null,     @Json(name = "description") val description: Message? = null,     @Json(name = "guid") val guid: String? = null,     @Json(name = "id") val id: String? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

Automation details that describe this run.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class SarifDriver(    @Json(name = "associatedComponent") val associatedComponent: ToolComponentReference? = null,     @Json(name = "contents") val contents: List<Content>? = null,     @Json(name = "dottedQuadFileVersion") val dottedQuadFileVersion: String? = null,     @Json(name = "downloadUri") val downloadURI: String? = null,     @Json(name = "fullDescription") val fullDescription: MultiformatMessageString? = null,     @Json(name = "fullName") val fullName: String? = null,     @Json(name = "globalMessageStrings") val globalMessageStrings: Map<String, MultiformatMessageString>? = null,     @Json(name = "guid") val guid: String? = null,     @Json(name = "informationUri") val informationURI: String? = null,     @Json(name = "isComprehensive") val isComprehensive: Boolean? = null,     @Json(name = "language") val language: String? = null,     @Json(name = "localizedDataSemanticVersion") val localizedDataSemanticVersion: String? = null,     @Json(name = "locations") val locations: List<ArtifactLocation>? = null,     @Json(name = "minimumRequiredLocalizedDataSemanticVersion") val minimumRequiredLocalizedDataSemanticVersion: String? = null,     @Json(name = "name") val name: String,     @Json(name = "notifications") val notifications: List<SarifRule>? = null,     @Json(name = "organization") val organization: String? = null,     @Json(name = "product") val product: String? = null,     @Json(name = "productSuite") val productSuite: String? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "releaseDateUtc") val releaseDateUTC: String? = null,     @Json(name = "semanticVersion") val semanticVersion: String? = null,     @Json(name = "shortDescription") val shortDescription: MultiformatMessageString? = null,     @Json(name = "supportedTaxonomies") val supportedTaxonomies: List<ToolComponentReference>? = null,     @Json(name = "taxa") val taxa: List<SarifRule>? = null,     @Json(name = "translationMetadata") val translationMetadata: TranslationMetadata? = null,     @Json(name = "version") val version: String? = null,     @Json(name = "rules") val rules: List<SarifRule>? = null)

The analysis tool that was run.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class SarifReport(    @Json(name = "$schema") val schema: String,     @Json(name = "version") val version: Version,     @Json(name = "inlineExternalProperties") val inlineExternalProperties: List<ExternalProperties>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "runs") val runs: List<Run>)

Static Analysis Results Format (SARIF) Version 2.1.0 JSON Schema: a standard format for the output of static analysis tools.

Link copied to clipboard
class SarifReportFactory @Inject constructor(    val websiteUrl: SourceWebsiteUrlProvider,     val moduleCheckVersion: ModuleCheckVersionProvider,     val projectRoot: ProjectRoot)
Link copied to clipboard
@JsonClass(generateAdapter = true)
data class SarifResult(    @Json(name = "analysisTarget") val analysisTarget: ArtifactLocation? = null,     @Json(name = "attachments") val attachments: List<Attachment>? = null,     @Json(name = "baselineState") val baselineState: BaselineState? = null,     @Json(name = "codeFlows") val codeFlows: List<CodeFlow>? = null,     @Json(name = "correlationGuid") val correlationGUID: String? = null,     @Json(name = "fingerprints") val fingerprints: Map<String, String>? = null,     @Json(name = "fixes") val fixes: List<Fix>? = null,     @Json(name = "graphs") val graphs: List<Graph>? = null,     @Json(name = "graphTraversals") val graphTraversals: List<GraphTraversal>? = null,     @Json(name = "guid") val guid: String? = null,     @Json(name = "hostedViewerUri") val hostedViewerURI: String? = null,     @Json(name = "kind") val kind: ResultKind? = null,     @Json(name = "level") val level: Level? = null,     @Json(name = "locations") val locations: List<Location>? = null,     @Json(name = "message") val message: Message,     @Json(name = "occurrenceCount") val occurrenceCount: Int? = null,     @Json(name = "partialFingerprints") val partialFingerprints: Map<String, String>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "provenance") val provenance: ResultProvenance? = null,     @Json(name = "rank") val rank: Double? = null,     @Json(name = "relatedLocations") val relatedLocations: List<Location>? = null,     @Json(name = "rule") val rule: ReportingDescriptorReference? = null,     @Json(name = "ruleId") val ruleID: String? = null,     @Json(name = "ruleIndex") val ruleIndex: Int? = null,     @Json(name = "stacks") val stacks: List<Stack>? = null,     @Json(name = "suppressions") val suppressions: List<Suppression>? = null,     @Json(name = "taxa") val taxa: List<ReportingDescriptorReference>? = null,     @Json(name = "webRequest") val webRequest: WebRequest? = null,     @Json(name = "webResponse") val webResponse: WebResponse? = null,     @Json(name = "workItemUris") val workItemUris: List<String>? = null)

A result produced by an analysis tool.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class SarifRule(    @Json(name = "helpUri") val helpURI: String? = null,     @Json(name = "id") val id: String,     @Json(name = "name") val name: String? = null,     @Json(name = "defaultConfiguration") val defaultConfiguration: ReportingConfiguration? = null,     @Json(name = "shortDescription") val shortDescription: MultiformatMessageString? = null,     @Json(name = "fullDescription") val fullDescription: MultiformatMessageString? = null,     @Json(name = "deprecatedGuids") val deprecatedGuids: List<String>? = null,     @Json(name = "deprecatedIds") val deprecatedIDS: List<String>? = null,     @Json(name = "deprecatedNames") val deprecatedNames: List<String>? = null,     @Json(name = "guid") val guid: String? = null,     @Json(name = "help") val help: MultiformatMessageString? = null,     @Json(name = "messageStrings") val messageStrings: Map<String, MultiformatMessageString>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "relationships") val relationships: List<ReportingDescriptorRelationship>? = null)

Metadata that describes a specific report produced by the tool, as part of the analysis it provides or its runtime reporting.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class SpecialLocations(@Json(name = "displayBase") val displayBase: ArtifactLocation? = null, @Json(name = "properties") val properties: PropertyBag? = null)

A specialLocations object that defines locations of special significance to SARIF consumers.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Stack(    @Json(name = "frames") val frames: List<StackFrame>,     @Json(name = "message") val message: Message? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

The sequence of function calls leading to the exception.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class StackFrame(    @Json(name = "location") val location: Location? = null,     @Json(name = "module") val module: String? = null,     @Json(name = "parameters") val parameters: List<String>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "threadId") val threadID: Int? = null)

A function call within a stack trace.

Link copied to clipboard
enum State : Enum<State>

A string that indicates the state of the suppression.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Suppression(    @Json(name = "guid") val guid: String? = null,     @Json(name = "justification") val justification: String? = null,     @Json(name = "kind") val kind: SuppressionKind,     @Json(name = "location") val location: Location? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "state") val state: State? = null)

A suppression that is relevant to a result.

Link copied to clipboard
enum SuppressionKind : Enum<SuppressionKind>

A string that indicates where the suppression is persisted.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ThreadFlow(    @Json(name = "id") val id: String? = null,     @Json(name = "immutableState") val immutableState: Map<String, MultiformatMessageString>? = null,     @Json(name = "initialState") val initialState: Map<String, MultiformatMessageString>? = null,     @Json(name = "locations") val locations: List<ThreadFlowLocation>,     @Json(name = "message") val message: Message? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

Describes a sequence of code locations that specify a path through a single thread of execution such as an operating system or fiber.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ThreadFlowLocation(    @Json(name = "executionOrder") val executionOrder: Int? = null,     @Json(name = "executionTimeUtc") val executionTimeUTC: String? = null,     @Json(name = "importance") val importance: Importance? = null,     @Json(name = "index") val index: Int? = null,     @Json(name = "kinds") val kinds: List<String>? = null,     @Json(name = "location") val location: Location? = null,     @Json(name = "module") val module: String? = null,     @Json(name = "nestingLevel") val nestingLevel: Int? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "stack") val stack: Stack? = null,     @Json(name = "state") val state: Map<String, MultiformatMessageString>? = null,     @Json(name = "taxa") val taxa: List<ReportingDescriptorReference>? = null,     @Json(name = "webRequest") val webRequest: WebRequest? = null,     @Json(name = "webResponse") val webResponse: WebResponse? = null)

A location visited by an analysis tool while simulating or monitoring the execution of a program.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class Tool(    @Json(name = "driver") val driver: SarifDriver,     @Json(name = "extensions") val extensions: List<SarifDriver>? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

A tool object that describes the converter.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class ToolComponentReference(    @Json(name = "guid") val guid: String? = null,     @Json(name = "index") val index: Int? = null,     @Json(name = "name") val name: String? = null,     @Json(name = "properties") val properties: PropertyBag? = null)

A reference used to locate the toolComponent associated with the descriptor.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class TranslationMetadata(    @Json(name = "downloadUri") val downloadURI: String? = null,     @Json(name = "fullDescription") val fullDescription: MultiformatMessageString? = null,     @Json(name = "fullName") val fullName: String? = null,     @Json(name = "informationUri") val informationURI: String? = null,     @Json(name = "name") val name: String,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "shortDescription") val shortDescription: MultiformatMessageString? = null)

Translation metadata, required for a translation, not populated by other component types.

Link copied to clipboard
enum Version : Enum<Version>

The SARIF format version of this external properties object.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class VersionControlDetails(    @Json(name = "asOfTimeUtc") val asOfTimeUTC: String? = null,     @Json(name = "branch") val branch: String? = null,     @Json(name = "mappedTo") val mappedTo: ArtifactLocation? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "repositoryUri") val repositoryURI: String,     @Json(name = "revisionId") val revisionID: String? = null,     @Json(name = "revisionTag") val revisionTag: String? = null)

Specifies the information necessary to retrieve a desired revision from a version control system.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class WebRequest(    @Json(name = "body") val body: ArtifactContent? = null,     @Json(name = "headers") val headers: Map<String, String>? = null,     @Json(name = "index") val index: Int? = null,     @Json(name = "method") val method: String? = null,     @Json(name = "parameters") val parameters: Map<String, String>? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "protocol") val protocol: String? = null,     @Json(name = "target") val target: String? = null,     @Json(name = "version") val version: String? = null)

A web request associated with this thread flow location.

Link copied to clipboard
@JsonClass(generateAdapter = true)
data class WebResponse(    @Json(name = "body") val body: ArtifactContent? = null,     @Json(name = "headers") val headers: Map<String, String>? = null,     @Json(name = "index") val index: Int? = null,     @Json(name = "noResponseReceived") val noResponseReceived: Boolean? = null,     @Json(name = "properties") val properties: PropertyBag? = null,     @Json(name = "protocol") val protocol: String? = null,     @Json(name = "reasonPhrase") val reasonPhrase: String? = null,     @Json(name = "statusCode") val statusCode: Int? = null,     @Json(name = "version") val version: String? = null)

A web response associated with this thread flow location.