sarif

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 20, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Address

type Address struct {
	// The address expressed as a byte offset from the start of the addressable
	// region.
	AbsoluteAddress int `json:"absoluteAddress,omitempty" yaml:"absoluteAddress,omitempty" mapstructure:"absoluteAddress,omitempty"`

	// A human-readable fully qualified name that is associated with the address.
	FullyQualifiedName *string `json:"fullyQualifiedName,omitempty" yaml:"fullyQualifiedName,omitempty" mapstructure:"fullyQualifiedName,omitempty"`

	// The index within run.addresses of the cached object for this address.
	Index int `json:"index,omitempty" yaml:"index,omitempty" mapstructure:"index,omitempty"`

	// An open-ended string that identifies the address kind. 'data', 'function',
	// 'header','instruction', 'module', 'page', 'section', 'segment', 'stack',
	// 'stackFrame', 'table' are well-known values.
	Kind *string `json:"kind,omitempty" yaml:"kind,omitempty" mapstructure:"kind,omitempty"`

	// The number of bytes in this range of addresses.
	Length *int `json:"length,omitempty" yaml:"length,omitempty" mapstructure:"length,omitempty"`

	// A name that is associated with the address, e.g., '.text'.
	Name *string `json:"name,omitempty" yaml:"name,omitempty" mapstructure:"name,omitempty"`

	// The byte offset of this address from the absolute or relative address of the
	// parent object.
	OffsetFromParent *int `json:"offsetFromParent,omitempty" yaml:"offsetFromParent,omitempty" mapstructure:"offsetFromParent,omitempty"`

	// The index within run.addresses of the parent object.
	ParentIndex int `json:"parentIndex,omitempty" yaml:"parentIndex,omitempty" mapstructure:"parentIndex,omitempty"`

	// Key/value pairs that provide additional information about the address.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The address expressed as a byte offset from the absolute address of the
	// top-most parent object.
	RelativeAddress *int `json:"relativeAddress,omitempty" yaml:"relativeAddress,omitempty" mapstructure:"relativeAddress,omitempty"`
}

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

func (*Address) UnmarshalJSON

func (j *Address) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Artifact

type Artifact struct {
	// The contents of the artifact.
	Contents *ArtifactContent `json:"contents,omitempty" yaml:"contents,omitempty" mapstructure:"contents,omitempty"`

	// A short description of the artifact.
	Description Message `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Specifies the encoding for an artifact object that refers to a text file.
	Encoding *string `json:"encoding,omitempty" yaml:"encoding,omitempty" mapstructure:"encoding,omitempty"`

	// 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.
	Hashes map[string]string `json:"hashes,omitempty" yaml:"hashes,omitempty" mapstructure:"hashes,omitempty"`

	// 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.
	LastModifiedTimeUtc *time.Time `json:"lastModifiedTimeUtc,omitempty" yaml:"lastModifiedTimeUtc,omitempty" mapstructure:"lastModifiedTimeUtc,omitempty"`

	// The length of the artifact in bytes.
	Length int `json:"length,omitempty" yaml:"length,omitempty" mapstructure:"length,omitempty"`

	// The location of the artifact.
	Location *ArtifactLocation `json:"location,omitempty" yaml:"location,omitempty" mapstructure:"location,omitempty"`

	// The MIME type (RFC 2045) of the artifact.
	MimeType *string `json:"mimeType,omitempty" yaml:"mimeType,omitempty" mapstructure:"mimeType,omitempty"`

	// The offset in bytes of the artifact within its containing artifact.
	Offset *int `json:"offset,omitempty" yaml:"offset,omitempty" mapstructure:"offset,omitempty"`

	// IDentifies the index of the immediate parent of the artifact, if this artifact
	// is nested.
	ParentIndex int `json:"parentIndex,omitempty" yaml:"parentIndex,omitempty" mapstructure:"parentIndex,omitempty"`

	// Key/value pairs that provide additional information about the artifact.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The role or roles played by the artifact in the analysis.
	Roles []ArtifactRolesElem `json:"roles,omitempty" yaml:"roles,omitempty" mapstructure:"roles,omitempty"`

	// Specifies the source language for any artifact object that refers to a text
	// file that contains source code.
	SourceLanguage *string `json:"sourceLanguage,omitempty" yaml:"sourceLanguage,omitempty" mapstructure:"sourceLanguage,omitempty"`
}

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

func (*Artifact) UnmarshalJSON

func (j *Artifact) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ArtifactChange

type ArtifactChange struct {
	// The location of the artifact to change.
	ArtifactLocation ArtifactLocation `json:"artifactLocation" yaml:"artifactLocation" mapstructure:"artifactLocation"`

	// Key/value pairs that provide additional information about the change.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// An array of replacement objects, each of which represents the replacement of a
	// single region in a single artifact specified by 'artifactLocation'.
	Replacements []Replacement `json:"replacements" yaml:"replacements" mapstructure:"replacements"`
}

A change to a single artifact.

func (*ArtifactChange) UnmarshalJSON

func (j *ArtifactChange) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ArtifactContent

type ArtifactContent struct {
	// MIME Base64-encoded content from a binary artifact, or from a text artifact in
	// its original encoding.
	Binary *string `json:"binary,omitempty" yaml:"binary,omitempty" mapstructure:"binary,omitempty"`

	// Key/value pairs that provide additional information about the artifact content.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// An alternate rendered representation of the artifact (e.g., a decompiled
	// representation of a binary region).
	Rendered *MultiformatMessageString `json:"rendered,omitempty" yaml:"rendered,omitempty" mapstructure:"rendered,omitempty"`

	// UTF-8-encoded content from a text artifact.
	Text *string `json:"text,omitempty" yaml:"text,omitempty" mapstructure:"text,omitempty"`
}

Represents the contents of an artifact.

type ArtifactLocation

type ArtifactLocation struct {
	// A short description of the artifact location.
	Description Message `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// The index within the run artifacts array of the artifact object associated with
	// the artifact location.
	Index int `json:"index,omitempty" yaml:"index,omitempty" mapstructure:"index,omitempty"`

	// Key/value pairs that provide additional information about the artifact
	// location.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// A string containing a valid relative or absolute URI.
	URI *string `json:"uri,omitempty" yaml:"uri,omitempty" mapstructure:"uri,omitempty"`

	// A string which indirectly specifies the absolute URI with respect to which a
	// relative URI in the "uri" property is interpreted.
	URIBaseID *string `json:"uriBaseID,omitempty" yaml:"uriBaseID,omitempty" mapstructure:"uriBaseID,omitempty"`
}

Specifies the location of an artifact.

func (*ArtifactLocation) UnmarshalJSON

func (j *ArtifactLocation) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ArtifactRolesElem

type ArtifactRolesElem string
const ArtifactRolesElemAdded ArtifactRolesElem = "added"
const ArtifactRolesElemAnalysisTarget ArtifactRolesElem = "analysisTarget"
const ArtifactRolesElemAttachment ArtifactRolesElem = "attachment"
const ArtifactRolesElemDebugOutputFile ArtifactRolesElem = "debugOutputFile"
const ArtifactRolesElemDeleted ArtifactRolesElem = "deleted"
const ArtifactRolesElemDirectory ArtifactRolesElem = "directory"
const ArtifactRolesElemDriver ArtifactRolesElem = "driver"
const ArtifactRolesElemExtension ArtifactRolesElem = "extension"
const ArtifactRolesElemMemoryContents ArtifactRolesElem = "memoryContents"
const ArtifactRolesElemModified ArtifactRolesElem = "modified"
const ArtifactRolesElemPolicy ArtifactRolesElem = "policy"
const ArtifactRolesElemReferencedOnCommandLine ArtifactRolesElem = "referencedOnCommandLine"
const ArtifactRolesElemRenamed ArtifactRolesElem = "renamed"
const ArtifactRolesElemResponseFile ArtifactRolesElem = "responseFile"
const ArtifactRolesElemResultFile ArtifactRolesElem = "resultFile"
const ArtifactRolesElemStandardStream ArtifactRolesElem = "standardStream"
const ArtifactRolesElemTaxonomy ArtifactRolesElem = "taxonomy"
const ArtifactRolesElemToolSpecifiedConfiguration ArtifactRolesElem = "toolSpecifiedConfiguration"
const ArtifactRolesElemTracedFile ArtifactRolesElem = "tracedFile"
const ArtifactRolesElemTranslation ArtifactRolesElem = "translation"
const ArtifactRolesElemUncontrolled ArtifactRolesElem = "uncontrolled"
const ArtifactRolesElemUnmodified ArtifactRolesElem = "unmodified"
const ArtifactRolesElemUserSpecifiedConfiguration ArtifactRolesElem = "userSpecifiedConfiguration"

func (*ArtifactRolesElem) UnmarshalJSON

func (j *ArtifactRolesElem) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Attachment

type Attachment struct {
	// The location of the attachment.
	ArtifactLocation ArtifactLocation `json:"artifactLocation" yaml:"artifactLocation" mapstructure:"artifactLocation"`

	// A message describing the role played by the attachment.
	Description Message `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Key/value pairs that provide additional information about the attachment.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// An array of rectangles specifying areas of interest within the image.
	Rectangles []Rectangle `json:"rectangles,omitempty" yaml:"rectangles,omitempty" mapstructure:"rectangles,omitempty"`

	// An array of regions of interest within the attachment.
	Regions []Region `json:"regions,omitempty" yaml:"regions,omitempty" mapstructure:"regions,omitempty"`
}

An artifact relevant to a result.

func (*Attachment) UnmarshalJSON

func (j *Attachment) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type CodeFlow

type CodeFlow struct {
	// A message relevant to the code flow.
	Message Message `json:"message,omitempty" yaml:"message,omitempty" mapstructure:"message,omitempty"`

	// Key/value pairs that provide additional information about the code flow.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// An array of one or more unique threadFlow objects, each of which describes the
	// progress of a program through a thread of execution.
	ThreadFlows []ThreadFlow `json:"threadFlows" yaml:"threadFlows" mapstructure:"threadFlows"`
}

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

func (*CodeFlow) UnmarshalJSON

func (j *CodeFlow) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ConfigurationOverride

type ConfigurationOverride struct {
	// Specifies how the rule or notification was configured during the scan.
	Configuration ReportingConfiguration `json:"configuration" yaml:"configuration" mapstructure:"configuration"`

	// A reference used to locate the descriptor whose configuration was overridden.
	Descriptor ReportingDescriptorReference `json:"descriptor" yaml:"descriptor" mapstructure:"descriptor"`

	// Key/value pairs that provide additional information about the configuration
	// override.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

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

func (*ConfigurationOverride) UnmarshalJSON

func (j *ConfigurationOverride) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Conversion

type Conversion struct {
	// The locations of the analysis tool's per-run log files.
	AnalysisToolLogFiles []ArtifactLocation `json:"analysisToolLogFiles,omitempty" yaml:"analysisToolLogFiles,omitempty" mapstructure:"analysisToolLogFiles,omitempty"`

	// An invocation object that describes the invocation of the converter.
	Invocation *Invocation `json:"invocation,omitempty" yaml:"invocation,omitempty" mapstructure:"invocation,omitempty"`

	// Key/value pairs that provide additional information about the conversion.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// A tool object that describes the converter.
	Tool Tool `json:"tool" yaml:"tool" mapstructure:"tool"`
}

Describes how a converter transformed the output of a static analysis tool from the analysis tool's native output format into the SARIF format.

func (*Conversion) UnmarshalJSON

func (j *Conversion) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Edge

type Edge struct {
	// A string that uniquely identifies the edge within its graph.
	ID string `json:"id" yaml:"id" mapstructure:"id"`

	// A short description of the edge.
	Label Message `json:"label,omitempty" yaml:"label,omitempty" mapstructure:"label,omitempty"`

	// Key/value pairs that provide additional information about the edge.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// IDentifies the source node (the node at which the edge starts).
	SourceNodeID string `json:"sourceNodeID" yaml:"sourceNodeID" mapstructure:"sourceNodeID"`

	// IDentifies the target node (the node at which the edge ends).
	TargetNodeID string `json:"targetNodeID" yaml:"targetNodeID" mapstructure:"targetNodeID"`
}

Represents a directed edge in a graph.

func (*Edge) UnmarshalJSON

func (j *Edge) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type EdgeTraversal

type EdgeTraversal struct {
	// IDentifies the edge being traversed.
	EdgeID string `json:"edgeID" yaml:"edgeID" mapstructure:"edgeID"`

	// The values of relevant expressions after the edge has been traversed.
	FinalState map[string]MultiformatMessageString `json:"finalState,omitempty" yaml:"finalState,omitempty" mapstructure:"finalState,omitempty"`

	// A message to display to the user as the edge is traversed.
	Message Message `json:"message,omitempty" yaml:"message,omitempty" mapstructure:"message,omitempty"`

	// Key/value pairs that provide additional information about the edge traversal.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The number of edge traversals necessary to return from a nested graph.
	StepOverEdgeCount *int `json:"stepOverEdgeCount,omitempty" yaml:"stepOverEdgeCount,omitempty" mapstructure:"stepOverEdgeCount,omitempty"`
}

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

func (*EdgeTraversal) UnmarshalJSON

func (j *EdgeTraversal) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Exception

type Exception struct {
	// An array of exception objects each of which is considered a cause of this
	// exception.
	InnerExceptions []Exception `json:"innerExceptions,omitempty" yaml:"innerExceptions,omitempty" mapstructure:"innerExceptions,omitempty"`

	// 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.
	Kind *string `json:"kind,omitempty" yaml:"kind,omitempty" mapstructure:"kind,omitempty"`

	// A message that describes the exception.
	Message *string `json:"message,omitempty" yaml:"message,omitempty" mapstructure:"message,omitempty"`

	// Key/value pairs that provide additional information about the exception.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The sequence of function calls leading to the exception.
	Stack *Stack `json:"stack,omitempty" yaml:"stack,omitempty" mapstructure:"stack,omitempty"`
}

Describes a runtime exception encountered during the execution of an analysis tool.

func (*Exception) UnmarshalJSON

func (j *Exception) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ExternalProperties

type ExternalProperties struct {
	// Addresses that will be merged with a separate run.
	Addresses []Address `json:"addresses,omitempty" yaml:"addresses,omitempty" mapstructure:"addresses,omitempty"`

	// An array of artifact objects that will be merged with a separate run.
	Artifacts []Artifact `json:"artifacts,omitempty" yaml:"artifacts,omitempty" mapstructure:"artifacts,omitempty"`

	// A conversion object that will be merged with a separate run.
	Conversion *Conversion `json:"conversion,omitempty" yaml:"conversion,omitempty" mapstructure:"conversion,omitempty"`

	// The analysis tool object that will be merged with a separate run.
	Driver *ToolComponent `json:"driver,omitempty" yaml:"driver,omitempty" mapstructure:"driver,omitempty"`

	// Tool extensions that will be merged with a separate run.
	Extensions []ToolComponent `json:"extensions,omitempty" yaml:"extensions,omitempty" mapstructure:"extensions,omitempty"`

	// Key/value pairs that provide additional information that will be merged with a
	// separate run.
	ExternalizedProperties *PropertyBag `` /* 127-byte string literal not displayed */

	// An array of graph objects that will be merged with a separate run.
	Graphs []Graph `json:"graphs,omitempty" yaml:"graphs,omitempty" mapstructure:"graphs,omitempty"`

	// A stable, unique identifier for this external properties object, in the form of
	// a GUID.
	Guid *string `json:"guid,omitempty" yaml:"guid,omitempty" mapstructure:"guid,omitempty"`

	// Describes the invocation of the analysis tool that will be merged with a
	// separate run.
	Invocations []Invocation `json:"invocations,omitempty" yaml:"invocations,omitempty" mapstructure:"invocations,omitempty"`

	// An array of logical locations such as namespaces, types or functions that will
	// be merged with a separate run.
	LogicalLocations []LogicalLocation `json:"logicalLocations,omitempty" yaml:"logicalLocations,omitempty" mapstructure:"logicalLocations,omitempty"`

	// Tool policies that will be merged with a separate run.
	Policies []ToolComponent `json:"policies,omitempty" yaml:"policies,omitempty" mapstructure:"policies,omitempty"`

	// Key/value pairs that provide additional information about the external
	// properties.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// An array of result objects that will be merged with a separate run.
	Results []Result `json:"results,omitempty" yaml:"results,omitempty" mapstructure:"results,omitempty"`

	// A stable, unique identifier for the run associated with this external
	// properties object, in the form of a GUID.
	RunGuid *string `json:"runGuid,omitempty" yaml:"runGuid,omitempty" mapstructure:"runGuid,omitempty"`

	// The URI of the JSON schema corresponding to the version of the external
	// property file format.
	Schema *string `json:"schema,omitempty" yaml:"schema,omitempty" mapstructure:"schema,omitempty"`

	// Tool taxonomies that will be merged with a separate run.
	Taxonomies []ToolComponent `json:"taxonomies,omitempty" yaml:"taxonomies,omitempty" mapstructure:"taxonomies,omitempty"`

	// An array of threadFlowLocation objects that will be merged with a separate run.
	ThreadFlowLocations []ThreadFlowLocation `json:"threadFlowLocations,omitempty" yaml:"threadFlowLocations,omitempty" mapstructure:"threadFlowLocations,omitempty"`

	// Tool translations that will be merged with a separate run.
	Translations []ToolComponent `json:"translations,omitempty" yaml:"translations,omitempty" mapstructure:"translations,omitempty"`

	// The SARIF format version of this external properties object.
	Version *ExternalPropertiesVersion `json:"version,omitempty" yaml:"version,omitempty" mapstructure:"version,omitempty"`

	// Requests that will be merged with a separate run.
	WebRequests []WebRequest `json:"webRequests,omitempty" yaml:"webRequests,omitempty" mapstructure:"webRequests,omitempty"`

	// Responses that will be merged with a separate run.
	WebResponses []WebResponse `json:"webResponses,omitempty" yaml:"webResponses,omitempty" mapstructure:"webResponses,omitempty"`
}

The top-level element of an external property file.

func (*ExternalProperties) UnmarshalJSON

func (j *ExternalProperties) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ExternalPropertiesVersion

type ExternalPropertiesVersion string
const ExternalPropertiesVersionA210 ExternalPropertiesVersion = "2.1.0"

func (*ExternalPropertiesVersion) UnmarshalJSON

func (j *ExternalPropertiesVersion) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ExternalPropertyFileReference

type ExternalPropertyFileReference interface{}

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 ExternalPropertyFileReferences

type ExternalPropertyFileReferences struct {
	// An array of external property files containing run.addresses arrays to be
	// merged with the root log file.
	Addresses []ExternalPropertyFileReference `json:"addresses,omitempty" yaml:"addresses,omitempty" mapstructure:"addresses,omitempty"`

	// An array of external property files containing run.artifacts arrays to be
	// merged with the root log file.
	Artifacts []ExternalPropertyFileReference `json:"artifacts,omitempty" yaml:"artifacts,omitempty" mapstructure:"artifacts,omitempty"`

	// An external property file containing a run.conversion object to be merged with
	// the root log file.
	Conversion ExternalPropertyFileReference `json:"conversion,omitempty" yaml:"conversion,omitempty" mapstructure:"conversion,omitempty"`

	// An external property file containing a run.driver object to be merged with the
	// root log file.
	Driver ExternalPropertyFileReference `json:"driver,omitempty" yaml:"driver,omitempty" mapstructure:"driver,omitempty"`

	// An array of external property files containing run.extensions arrays to be
	// merged with the root log file.
	Extensions []ExternalPropertyFileReference `json:"extensions,omitempty" yaml:"extensions,omitempty" mapstructure:"extensions,omitempty"`

	// An external property file containing a run.properties object to be merged with
	// the root log file.
	ExternalizedProperties ExternalPropertyFileReference `` /* 127-byte string literal not displayed */

	// An array of external property files containing a run.graphs object to be merged
	// with the root log file.
	Graphs []ExternalPropertyFileReference `json:"graphs,omitempty" yaml:"graphs,omitempty" mapstructure:"graphs,omitempty"`

	// An array of external property files containing run.invocations arrays to be
	// merged with the root log file.
	Invocations []ExternalPropertyFileReference `json:"invocations,omitempty" yaml:"invocations,omitempty" mapstructure:"invocations,omitempty"`

	// An array of external property files containing run.logicalLocations arrays to
	// be merged with the root log file.
	LogicalLocations []ExternalPropertyFileReference `json:"logicalLocations,omitempty" yaml:"logicalLocations,omitempty" mapstructure:"logicalLocations,omitempty"`

	// An array of external property files containing run.policies arrays to be merged
	// with the root log file.
	Policies []ExternalPropertyFileReference `json:"policies,omitempty" yaml:"policies,omitempty" mapstructure:"policies,omitempty"`

	// Key/value pairs that provide additional information about the external property
	// files.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// An array of external property files containing run.results arrays to be merged
	// with the root log file.
	Results []ExternalPropertyFileReference `json:"results,omitempty" yaml:"results,omitempty" mapstructure:"results,omitempty"`

	// An array of external property files containing run.taxonomies arrays to be
	// merged with the root log file.
	Taxonomies []ExternalPropertyFileReference `json:"taxonomies,omitempty" yaml:"taxonomies,omitempty" mapstructure:"taxonomies,omitempty"`

	// An array of external property files containing run.threadFlowLocations arrays
	// to be merged with the root log file.
	ThreadFlowLocations []ExternalPropertyFileReference `json:"threadFlowLocations,omitempty" yaml:"threadFlowLocations,omitempty" mapstructure:"threadFlowLocations,omitempty"`

	// An array of external property files containing run.translations arrays to be
	// merged with the root log file.
	Translations []ExternalPropertyFileReference `json:"translations,omitempty" yaml:"translations,omitempty" mapstructure:"translations,omitempty"`

	// An array of external property files containing run.requests arrays to be merged
	// with the root log file.
	WebRequests []ExternalPropertyFileReference `json:"webRequests,omitempty" yaml:"webRequests,omitempty" mapstructure:"webRequests,omitempty"`

	// An array of external property files containing run.responses arrays to be
	// merged with the root log file.
	WebResponses []ExternalPropertyFileReference `json:"webResponses,omitempty" yaml:"webResponses,omitempty" mapstructure:"webResponses,omitempty"`
}

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

func (*ExternalPropertyFileReferences) UnmarshalJSON

func (j *ExternalPropertyFileReferences) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Fix

type Fix struct {
	// One or more artifact changes that comprise a fix for a result.
	ArtifactChanges []ArtifactChange `json:"artifactChanges" yaml:"artifactChanges" mapstructure:"artifactChanges"`

	// A message that describes the proposed fix, enabling viewers to present the
	// proposed change to an end user.
	Description Message `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// Key/value pairs that provide additional information about the fix.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

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.

func (*Fix) UnmarshalJSON

func (j *Fix) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Graph

type Graph struct {
	// A description of the graph.
	Description Message `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// An array of edge objects representing the edges of the graph.
	Edges []Edge `json:"edges,omitempty" yaml:"edges,omitempty" mapstructure:"edges,omitempty"`

	// An array of node objects representing the nodes of the graph.
	Nodes []Node `json:"nodes,omitempty" yaml:"nodes,omitempty" mapstructure:"nodes,omitempty"`

	// Key/value pairs that provide additional information about the graph.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

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

func (*Graph) UnmarshalJSON

func (j *Graph) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type GraphTraversal

type GraphTraversal struct {
	// A description of this graph traversal.
	Description Message `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// The sequences of edges traversed by this graph traversal.
	EdgeTraversals []EdgeTraversal `json:"edgeTraversals,omitempty" yaml:"edgeTraversals,omitempty" mapstructure:"edgeTraversals,omitempty"`

	// Values of relevant expressions at the start of the graph traversal that remain
	// constant for the graph traversal.
	ImmutableState map[string]MultiformatMessageString `json:"immutableState,omitempty" yaml:"immutableState,omitempty" mapstructure:"immutableState,omitempty"`

	// Values of relevant expressions at the start of the graph traversal that may
	// change during graph traversal.
	InitialState map[string]MultiformatMessageString `json:"initialState,omitempty" yaml:"initialState,omitempty" mapstructure:"initialState,omitempty"`

	// Key/value pairs that provide additional information about the graph traversal.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The index within the result.graphs to be associated with the result.
	ResultGraphIndex int `json:"resultGraphIndex,omitempty" yaml:"resultGraphIndex,omitempty" mapstructure:"resultGraphIndex,omitempty"`

	// The index within the run.graphs to be associated with the result.
	RunGraphIndex int `json:"runGraphIndex,omitempty" yaml:"runGraphIndex,omitempty" mapstructure:"runGraphIndex,omitempty"`
}

Represents a path through a graph.

func (*GraphTraversal) UnmarshalJSON

func (j *GraphTraversal) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Invocation

type Invocation struct {
	// The account under which the invocation occurred.
	Account *string `json:"account,omitempty" yaml:"account,omitempty" mapstructure:"account,omitempty"`

	// An array of strings, containing in order the command line arguments passed to
	// the tool from the operating system.
	Arguments []string `json:"arguments,omitempty" yaml:"arguments,omitempty" mapstructure:"arguments,omitempty"`

	// The command line used to invoke the tool.
	CommandLine *string `json:"commandLine,omitempty" yaml:"commandLine,omitempty" mapstructure:"commandLine,omitempty"`

	// 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.
	EndTimeUtc *time.Time `json:"endTimeUtc,omitempty" yaml:"endTimeUtc,omitempty" mapstructure:"endTimeUtc,omitempty"`

	// The environment variables associated with the analysis tool process, expressed
	// as key/value pairs.
	EnvironmentVariables map[string]string `json:"environmentVariables,omitempty" yaml:"environmentVariables,omitempty" mapstructure:"environmentVariables,omitempty"`

	// An absolute URI specifying the location of the executable that was invoked.
	ExecutableLocation *ArtifactLocation `json:"executableLocation,omitempty" yaml:"executableLocation,omitempty" mapstructure:"executableLocation,omitempty"`

	// Specifies whether the tool's execution completed successfully.
	ExecutionSuccessful bool `json:"executionSuccessful" yaml:"executionSuccessful" mapstructure:"executionSuccessful"`

	// The process exit code.
	ExitCode *int `json:"exitCode,omitempty" yaml:"exitCode,omitempty" mapstructure:"exitCode,omitempty"`

	// The reason for the process exit.
	ExitCodeDescription *string `json:"exitCodeDescription,omitempty" yaml:"exitCodeDescription,omitempty" mapstructure:"exitCodeDescription,omitempty"`

	// The name of the signal that caused the process to exit.
	ExitSignalName *string `json:"exitSignalName,omitempty" yaml:"exitSignalName,omitempty" mapstructure:"exitSignalName,omitempty"`

	// The numeric value of the signal that caused the process to exit.
	ExitSignalNumber *int `json:"exitSignalNumber,omitempty" yaml:"exitSignalNumber,omitempty" mapstructure:"exitSignalNumber,omitempty"`

	// The machine on which the invocation occurred.
	Machine *string `json:"machine,omitempty" yaml:"machine,omitempty" mapstructure:"machine,omitempty"`

	// An array of configurationOverride objects that describe notifications related
	// runtime overrides.
	NotificationConfigurationOverrides []ConfigurationOverride `` /* 163-byte string literal not displayed */

	// The id of the process in which the invocation occurred.
	ProcessID *int `json:"processID,omitempty" yaml:"processID,omitempty" mapstructure:"processID,omitempty"`

	// The reason given by the operating system that the process failed to start.
	ProcessStartFailureMessage *string `` /* 139-byte string literal not displayed */

	// Key/value pairs that provide additional information about the invocation.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The locations of any response files specified on the tool's command line.
	ResponseFiles []ArtifactLocation `json:"responseFiles,omitempty" yaml:"responseFiles,omitempty" mapstructure:"responseFiles,omitempty"`

	// An array of configurationOverride objects that describe rules related runtime
	// overrides.
	RuleConfigurationOverrides []ConfigurationOverride `` /* 139-byte string literal not displayed */

	// 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.
	StartTimeUtc *time.Time `json:"startTimeUtc,omitempty" yaml:"startTimeUtc,omitempty" mapstructure:"startTimeUtc,omitempty"`

	// A file containing the standard error stream from the process that was invoked.
	Stderr *ArtifactLocation `json:"stderr,omitempty" yaml:"stderr,omitempty" mapstructure:"stderr,omitempty"`

	// A file containing the standard input stream to the process that was invoked.
	Stdin *ArtifactLocation `json:"stdin,omitempty" yaml:"stdin,omitempty" mapstructure:"stdin,omitempty"`

	// A file containing the standard output stream from the process that was invoked.
	Stdout *ArtifactLocation `json:"stdout,omitempty" yaml:"stdout,omitempty" mapstructure:"stdout,omitempty"`

	// A file containing the interleaved standard output and standard error stream
	// from the process that was invoked.
	StdoutStderr *ArtifactLocation `json:"stdoutStderr,omitempty" yaml:"stdoutStderr,omitempty" mapstructure:"stdoutStderr,omitempty"`

	// A list of conditions detected by the tool that are relevant to the tool's
	// configuration.
	ToolConfigurationNotifications []Notification `` /* 151-byte string literal not displayed */

	// A list of runtime conditions detected by the tool during the analysis.
	ToolExecutionNotifications []Notification `` /* 139-byte string literal not displayed */

	// The working directory for the invocation.
	WorkingDirectory *ArtifactLocation `json:"workingDirectory,omitempty" yaml:"workingDirectory,omitempty" mapstructure:"workingDirectory,omitempty"`
}

The runtime environment of the analysis tool run.

func (*Invocation) UnmarshalJSON

func (j *Invocation) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Location

type Location struct {
	// A set of regions relevant to the location.
	Annotations []Region `json:"annotations,omitempty" yaml:"annotations,omitempty" mapstructure:"annotations,omitempty"`

	// Value that distinguishes this location from all other locations within a single
	// result object.
	ID int `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// The logical locations associated with the result.
	LogicalLocations []LogicalLocation `json:"logicalLocations,omitempty" yaml:"logicalLocations,omitempty" mapstructure:"logicalLocations,omitempty"`

	// A message relevant to the location.
	Message Message `json:"message,omitempty" yaml:"message,omitempty" mapstructure:"message,omitempty"`

	// IDentifies the artifact and region.
	PhysicalLocation PhysicalLocation `json:"physicalLocation,omitempty" yaml:"physicalLocation,omitempty" mapstructure:"physicalLocation,omitempty"`

	// Key/value pairs that provide additional information about the location.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// An array of objects that describe relationships between this location and
	// others.
	Relationships []LocationRelationship `json:"relationships,omitempty" yaml:"relationships,omitempty" mapstructure:"relationships,omitempty"`
}

A location within a programming artifact.

func (*Location) UnmarshalJSON

func (j *Location) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type LocationRelationship

type LocationRelationship struct {
	// A description of the location relationship.
	Description Message `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// A set of distinct strings that categorize the relationship. Well-known kinds
	// include 'includes', 'isIncludedBy' and 'relevant'.
	Kinds []string `json:"kinds,omitempty" yaml:"kinds,omitempty" mapstructure:"kinds,omitempty"`

	// Key/value pairs that provide additional information about the location
	// relationship.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// A reference to the related location.
	Target int `json:"target" yaml:"target" mapstructure:"target"`
}

Information about the relation of one location to another.

func (*LocationRelationship) UnmarshalJSON

func (j *LocationRelationship) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type LogicalLocation

type LogicalLocation struct {
	// The machine-readable name for the logical location, such as a mangled function
	// name provided by a C++ compiler that encodes calling convention, return type
	// and other details along with the function name.
	DecoratedName *string `json:"decoratedName,omitempty" yaml:"decoratedName,omitempty" mapstructure:"decoratedName,omitempty"`

	// The human-readable fully qualified name of the logical location.
	FullyQualifiedName *string `json:"fullyQualifiedName,omitempty" yaml:"fullyQualifiedName,omitempty" mapstructure:"fullyQualifiedName,omitempty"`

	// The index within the logical locations array.
	Index int `json:"index,omitempty" yaml:"index,omitempty" mapstructure:"index,omitempty"`

	// The type of construct this logical location component refers to. Should be one
	// of 'function', 'member', 'module', 'namespace', 'parameter', 'resource',
	// 'returnType', 'type', 'variable', 'object', 'array', 'property', 'value',
	// 'element', 'text', 'attribute', 'comment', 'declaration', 'dtd' or
	// 'processingInstruction', if any of those accurately describe the construct.
	Kind *string `json:"kind,omitempty" yaml:"kind,omitempty" mapstructure:"kind,omitempty"`

	// IDentifies the construct in which the result occurred. For example, this
	// property might contain the name of a class or a method.
	Name *string `json:"name,omitempty" yaml:"name,omitempty" mapstructure:"name,omitempty"`

	// IDentifies the index of the immediate parent of the construct in which the
	// result was detected. For example, this property might point to a logical
	// location that represents the namespace that holds a type.
	ParentIndex int `json:"parentIndex,omitempty" yaml:"parentIndex,omitempty" mapstructure:"parentIndex,omitempty"`

	// Key/value pairs that provide additional information about the logical location.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

A logical location of a construct that produced a result.

func (*LogicalLocation) UnmarshalJSON

func (j *LogicalLocation) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Message

type Message struct {
	Text string `json:"text" yaml:"text" mapstructure:"text"`
}

Encapsulates a message intended to be read by the end user.

type MultiformatMessageString

type MultiformatMessageString struct {
	// A Markdown message string or format string.
	Markdown *string `json:"markdown,omitempty" yaml:"markdown,omitempty" mapstructure:"markdown,omitempty"`

	// Key/value pairs that provide additional information about the message.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// A plain text message string or format string.
	Text string `json:"text" yaml:"text" mapstructure:"text"`
}

A message string or message format string rendered in multiple formats.

func (*MultiformatMessageString) UnmarshalJSON

func (j *MultiformatMessageString) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Node

type Node struct {
	// Array of child nodes.
	Children []Node `json:"children,omitempty" yaml:"children,omitempty" mapstructure:"children,omitempty"`

	// A string that uniquely identifies the node within its graph.
	ID string `json:"id" yaml:"id" mapstructure:"id"`

	// A short description of the node.
	Label Message `json:"label,omitempty" yaml:"label,omitempty" mapstructure:"label,omitempty"`

	// A code location associated with the node.
	Location *Location `json:"location,omitempty" yaml:"location,omitempty" mapstructure:"location,omitempty"`

	// Key/value pairs that provide additional information about the node.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

Represents a node in a graph.

func (*Node) UnmarshalJSON

func (j *Node) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Notification

type Notification struct {
	// A reference used to locate the rule descriptor associated with this
	// notification.
	AssociatedRule ReportingDescriptorReference `json:"associatedRule,omitempty" yaml:"associatedRule,omitempty" mapstructure:"associatedRule,omitempty"`

	// A reference used to locate the descriptor relevant to this notification.
	Descriptor ReportingDescriptorReference `json:"descriptor,omitempty" yaml:"descriptor,omitempty" mapstructure:"descriptor,omitempty"`

	// The runtime exception, if any, relevant to this notification.
	Exception *Exception `json:"exception,omitempty" yaml:"exception,omitempty" mapstructure:"exception,omitempty"`

	// A value specifying the severity level of the notification.
	Level NotificationLevel `json:"level,omitempty" yaml:"level,omitempty" mapstructure:"level,omitempty"`

	// The locations relevant to this notification.
	Locations []Location `json:"locations,omitempty" yaml:"locations,omitempty" mapstructure:"locations,omitempty"`

	// A message that describes the condition that was encountered.
	Message Message `json:"message" yaml:"message" mapstructure:"message"`

	// Key/value pairs that provide additional information about the notification.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The thread identifier of the code that generated the notification.
	ThreadID *int `json:"threadID,omitempty" yaml:"threadID,omitempty" mapstructure:"threadID,omitempty"`

	// The Coordinated Universal Time (UTC) date and time at which the analysis tool
	// generated the notification.
	TimeUtc *time.Time `json:"timeUtc,omitempty" yaml:"timeUtc,omitempty" mapstructure:"timeUtc,omitempty"`
}

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

func (*Notification) UnmarshalJSON

func (j *Notification) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type NotificationLevel

type NotificationLevel string
const NotificationLevelError NotificationLevel = "error"
const NotificationLevelNone NotificationLevel = "none"
const NotificationLevelNote NotificationLevel = "note"
const NotificationLevelWarning NotificationLevel = "warning"

func (*NotificationLevel) UnmarshalJSON

func (j *NotificationLevel) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PhysicalLocation

type PhysicalLocation struct {
	Address *Address `json:"address,omitempty" yaml:"address,omitempty" mapstructure:"address,omitempty"`

	ArtifactLocation ArtifactLocation `json:"artifactLocation,omitempty" yaml:"artifactLocation,omitempty" mapstructure:"artifactLocation,omitempty"`

	Region *Region `json:"region,omitempty" yaml:"region,omitempty" mapstructure:"region,omitempty"`

	ContextRegion *Region `json:"contextRegion,omitempty" yaml:"contextRegion,omitempty" mapstructure:"contextRegion,omitempty"`

	// Key/value pairs that provide additional information about the physical
	// location.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

A physical location relevant to a result. Specifies a reference to a programming artifact together with a range of bytes or characters within that artifact.

type PropertyBag

type PropertyBag struct {
	// A set of distinct strings that provide additional information.
	Tags []string `json:"tags,omitempty" yaml:"tags,omitempty" mapstructure:"tags,omitempty"`

	AdditionalProperties map[string]any `mapstructure:",remain"`
}

Key/value pairs that provide additional information about the object.

func (*PropertyBag) UnmarshalJSON

func (j *PropertyBag) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Rectangle

type Rectangle struct {
	// The Y coordinate of the bottom edge of the rectangle, measured in the image's
	// natural units.
	Bottom *float64 `json:"bottom,omitempty" yaml:"bottom,omitempty" mapstructure:"bottom,omitempty"`

	// The X coordinate of the left edge of the rectangle, measured in the image's
	// natural units.
	Left *float64 `json:"left,omitempty" yaml:"left,omitempty" mapstructure:"left,omitempty"`

	// A message relevant to the rectangle.
	Message Message `json:"message,omitempty" yaml:"message,omitempty" mapstructure:"message,omitempty"`

	// Key/value pairs that provide additional information about the rectangle.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The X coordinate of the right edge of the rectangle, measured in the image's
	// natural units.
	Right *float64 `json:"right,omitempty" yaml:"right,omitempty" mapstructure:"right,omitempty"`

	// The Y coordinate of the top edge of the rectangle, measured in the image's
	// natural units.
	Top *float64 `json:"top,omitempty" yaml:"top,omitempty" mapstructure:"top,omitempty"`
}

An area within an image.

type Region

type Region struct {
	StartLine *int `json:"startLine,omitempty" yaml:"startLine,omitempty" mapstructure:"startLine,omitempty"`

	StartColumn *int `json:"startColumn,omitempty" yaml:"startColumn,omitempty" mapstructure:"startColumn,omitempty"`

	EndLine *int `json:"endLine,omitempty" yaml:"endLine,omitempty" mapstructure:"endLine,omitempty"`

	EndColumn *int `json:"endColumn,omitempty" yaml:"endColumn,omitempty" mapstructure:"endColumn,omitempty"`

	// Key/value pairs that provide additional information about the region.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	Snippet *ArtifactContent `json:"snippet,omitempty" yaml:"snippet,omitempty" mapstructure:"snippet,omitempty"`
}

A region within an artifact where a result was detected.

type Replacement

type Replacement struct {
	// The region of the artifact to delete.
	DeletedRegion Region `json:"deletedRegion" yaml:"deletedRegion" mapstructure:"deletedRegion"`

	// The content to insert at the location specified by the 'deletedRegion'
	// property.
	InsertedContent *ArtifactContent `json:"insertedContent,omitempty" yaml:"insertedContent,omitempty" mapstructure:"insertedContent,omitempty"`

	// Key/value pairs that provide additional information about the replacement.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

The replacement of a single region of an artifact.

func (*Replacement) UnmarshalJSON

func (j *Replacement) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ReportingConfiguration

type ReportingConfiguration struct {
	// Specifies whether the report may be produced during the scan.
	Enabled bool `json:"enabled,omitempty" yaml:"enabled,omitempty" mapstructure:"enabled,omitempty"`

	// Specifies the failure level for the report.
	Level ReportingConfigurationLevel `json:"level,omitempty" yaml:"level,omitempty" mapstructure:"level,omitempty"`

	// Contains configuration information specific to a report.
	Parameters *PropertyBag `json:"parameters,omitempty" yaml:"parameters,omitempty" mapstructure:"parameters,omitempty"`

	// Key/value pairs that provide additional information about the reporting
	// configuration.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// Specifies the relative priority of the report. Used for analysis output only.
	Rank float64 `json:"rank,omitempty" yaml:"rank,omitempty" mapstructure:"rank,omitempty"`
}

Information about a rule or notification that can be configured at runtime.

func (*ReportingConfiguration) UnmarshalJSON

func (j *ReportingConfiguration) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ReportingConfigurationLevel

type ReportingConfigurationLevel string
const ReportingConfigurationLevelError ReportingConfigurationLevel = "error"
const ReportingConfigurationLevelNone ReportingConfigurationLevel = "none"
const ReportingConfigurationLevelNote ReportingConfigurationLevel = "note"
const ReportingConfigurationLevelWarning ReportingConfigurationLevel = "warning"

func (*ReportingConfigurationLevel) UnmarshalJSON

func (j *ReportingConfigurationLevel) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ReportingDescriptor

type ReportingDescriptor struct {
	// Default reporting configuration information.
	DefaultConfiguration *ReportingConfiguration `json:"defaultConfiguration,omitempty" yaml:"defaultConfiguration,omitempty" mapstructure:"defaultConfiguration,omitempty"`

	// An array of unique identifies in the form of a GUID by which this report was
	// known in some previous version of the analysis tool.
	DeprecatedGuids []string `json:"deprecatedGuids,omitempty" yaml:"deprecatedGuids,omitempty" mapstructure:"deprecatedGuids,omitempty"`

	// An array of stable, opaque identifiers by which this report was known in some
	// previous version of the analysis tool.
	DeprecatedIDs []string `json:"deprecatedIDs,omitempty" yaml:"deprecatedIDs,omitempty" mapstructure:"deprecatedIDs,omitempty"`

	// An array of readable identifiers by which this report was known in some
	// previous version of the analysis tool.
	DeprecatedNames []string `json:"deprecatedNames,omitempty" yaml:"deprecatedNames,omitempty" mapstructure:"deprecatedNames,omitempty"`

	// A description of the report. Should, as far as possible, provide details
	// sufficient to enable resolution of any problem indicated by the result.
	FullDescription *MultiformatMessageString `json:"fullDescription,omitempty" yaml:"fullDescription,omitempty" mapstructure:"fullDescription,omitempty"`

	// A unique identifier for the reporting descriptor in the form of a GUID.
	Guid *string `json:"guid,omitempty" yaml:"guid,omitempty" mapstructure:"guid,omitempty"`

	// Provides the primary documentation for the report, useful when there is no
	// online documentation.
	Help *MultiformatMessageString `json:"help,omitempty" yaml:"help,omitempty" mapstructure:"help,omitempty"`

	// A URI where the primary documentation for the report can be found.
	HelpURI *string `json:"helpURI,omitempty" yaml:"helpURI,omitempty" mapstructure:"helpURI,omitempty"`

	// A stable, opaque identifier for the report.
	ID string `json:"id" yaml:"id" mapstructure:"id"`

	// A set of name/value pairs with arbitrary names. Each value is a
	// multiformatMessageString object, which holds message strings in plain text and
	// (optionally) Markdown format. The strings can include placeholders, which can
	// be used to construct a message in combination with an arbitrary number of
	// additional string arguments.
	MessageStrings map[string]MultiformatMessageString `json:"messageStrings,omitempty" yaml:"messageStrings,omitempty" mapstructure:"messageStrings,omitempty"`

	// A report identifier that is understandable to an end user.
	Name *string `json:"name,omitempty" yaml:"name,omitempty" mapstructure:"name,omitempty"`

	// Key/value pairs that provide additional information about the report.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// An array of objects that describe relationships between this reporting
	// descriptor and others.
	Relationships []ReportingDescriptorRelationship `json:"relationships,omitempty" yaml:"relationships,omitempty" mapstructure:"relationships,omitempty"`

	// A concise description of the report. Should be a single sentence that is
	// understandable when visible space is limited to a single line of text.
	ShortDescription *MultiformatMessageString `json:"shortDescription,omitempty" yaml:"shortDescription,omitempty" mapstructure:"shortDescription,omitempty"`
}

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

func (*ReportingDescriptor) UnmarshalJSON

func (j *ReportingDescriptor) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ReportingDescriptorReference

type ReportingDescriptorReference interface{}

Information about how to locate a relevant reporting descriptor.

type ReportingDescriptorRelationship

type ReportingDescriptorRelationship struct {
	// A description of the reporting descriptor relationship.
	Description Message `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// A set of distinct strings that categorize the relationship. Well-known kinds
	// include 'canPrecede', 'canFollow', 'willPrecede', 'willFollow', 'superset',
	// 'subset', 'equal', 'disjoint', 'relevant', and 'incomparable'.
	Kinds []string `json:"kinds,omitempty" yaml:"kinds,omitempty" mapstructure:"kinds,omitempty"`

	// Key/value pairs that provide additional information about the reporting
	// descriptor reference.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// A reference to the related reporting descriptor.
	Target ReportingDescriptorReference `json:"target" yaml:"target" mapstructure:"target"`
}

Information about the relation of one reporting descriptor to another.

func (*ReportingDescriptorRelationship) UnmarshalJSON

func (j *ReportingDescriptorRelationship) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Result

type Result struct {
	// IDentifies the artifact that the analysis tool was instructed to scan. This
	// need not be the same as the artifact where the result actually occurred.
	AnalysisTarget *ArtifactLocation `json:"analysisTarget,omitempty" yaml:"analysisTarget,omitempty" mapstructure:"analysisTarget,omitempty"`

	// A set of artifacts relevant to the result.
	Attachments []Attachment `json:"attachments,omitempty" yaml:"attachments,omitempty" mapstructure:"attachments,omitempty"`

	// The state of a result relative to a baseline of a previous run.
	BaselineState *ResultBaselineState `json:"baselineState,omitempty" yaml:"baselineState,omitempty" mapstructure:"baselineState,omitempty"`

	// An array of 'codeFlow' objects relevant to the result.
	CodeFlows []CodeFlow `json:"codeFlows,omitempty" yaml:"codeFlows,omitempty" mapstructure:"codeFlows,omitempty"`

	// A stable, unique identifier for the equivalence class of logically identical
	// results to which this result belongs, in the form of a GUID.
	CorrelationGuid *string `json:"correlationGuid,omitempty" yaml:"correlationGuid,omitempty" mapstructure:"correlationGuid,omitempty"`

	// A set of strings each of which individually defines a stable, unique identity
	// for the result.
	Fingerprints map[string]string `json:"fingerprints,omitempty" yaml:"fingerprints,omitempty" mapstructure:"fingerprints,omitempty"`

	// An array of 'fix' objects, each of which represents a proposed fix to the
	// problem indicated by the result.
	Fixes []Fix `json:"fixes,omitempty" yaml:"fixes,omitempty" mapstructure:"fixes,omitempty"`

	// An array of one or more unique 'graphTraversal' objects.
	GraphTraversals []GraphTraversal `json:"graphTraversals,omitempty" yaml:"graphTraversals,omitempty" mapstructure:"graphTraversals,omitempty"`

	// An array of zero or more unique graph objects associated with the result.
	Graphs []Graph `json:"graphs,omitempty" yaml:"graphs,omitempty" mapstructure:"graphs,omitempty"`

	// A stable, unique identifier for the result in the form of a GUID.
	Guid *string `json:"guid,omitempty" yaml:"guid,omitempty" mapstructure:"guid,omitempty"`

	// An absolute URI at which the result can be viewed.
	HostedViewerURI *string `json:"hostedViewerURI,omitempty" yaml:"hostedViewerURI,omitempty" mapstructure:"hostedViewerURI,omitempty"`

	// A value that categorizes results by evaluation state.
	Kind ResultKind `json:"kind,omitempty" yaml:"kind,omitempty" mapstructure:"kind,omitempty"`

	// A value specifying the severity level of the result.
	Level ResultLevel `json:"level,omitempty" yaml:"level,omitempty" mapstructure:"level,omitempty"`

	// The set of locations where the result was detected. Specify only one location
	// unless the problem indicated by the result can only be corrected by making a
	// change at every specified location.
	Locations []Location `json:"locations,omitempty" yaml:"locations,omitempty" mapstructure:"locations,omitempty"`

	// A message that describes the result. The first sentence of the message only
	// will be displayed when visible space is limited.
	Message Message `json:"message" yaml:"message" mapstructure:"message"`

	// A positive integer specifying the number of times this logically unique result
	// was observed in this run.
	OccurrenceCount *int `json:"occurrenceCount,omitempty" yaml:"occurrenceCount,omitempty" mapstructure:"occurrenceCount,omitempty"`

	// A set of strings that contribute to the stable, unique identity of the result.
	PartialFingerprints map[string]string `json:"partialFingerprints,omitempty" yaml:"partialFingerprints,omitempty" mapstructure:"partialFingerprints,omitempty"`

	// Key/value pairs that provide additional information about the result.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// Information about how and when the result was detected.
	Provenance *ResultProvenance `json:"provenance,omitempty" yaml:"provenance,omitempty" mapstructure:"provenance,omitempty"`

	// A number representing the priority or importance of the result.
	Rank float64 `json:"rank,omitempty" yaml:"rank,omitempty" mapstructure:"rank,omitempty"`

	// A set of locations relevant to this result.
	RelatedLocations []Location `json:"relatedLocations,omitempty" yaml:"relatedLocations,omitempty" mapstructure:"relatedLocations,omitempty"`

	// A reference used to locate the rule descriptor relevant to this result.
	Rule ReportingDescriptorReference `json:"rule,omitempty" yaml:"rule,omitempty" mapstructure:"rule,omitempty"`

	// The stable, unique identifier of the rule, if any, to which this result is
	// relevant.
	RuleID *string `json:"ruleID,omitempty" yaml:"ruleID,omitempty" mapstructure:"ruleID,omitempty"`

	// The index within the tool component rules array of the rule object associated
	// with this result.
	RuleIndex int `json:"ruleIndex,omitempty" yaml:"ruleIndex,omitempty" mapstructure:"ruleIndex,omitempty"`

	// An array of 'stack' objects relevant to the result.
	Stacks []Stack `json:"stacks,omitempty" yaml:"stacks,omitempty" mapstructure:"stacks,omitempty"`

	// A set of suppressions relevant to this result.
	Suppressions []Suppression `json:"suppressions,omitempty" yaml:"suppressions,omitempty" mapstructure:"suppressions,omitempty"`

	// An array of references to taxonomy reporting descriptors that are applicable to
	// the result.
	Taxa []ReportingDescriptorReference `json:"taxa,omitempty" yaml:"taxa,omitempty" mapstructure:"taxa,omitempty"`

	// A web request associated with this result.
	WebRequest *WebRequest `json:"webRequest,omitempty" yaml:"webRequest,omitempty" mapstructure:"webRequest,omitempty"`

	// A web response associated with this result.
	WebResponse *WebResponse `json:"webResponse,omitempty" yaml:"webResponse,omitempty" mapstructure:"webResponse,omitempty"`

	// The URIs of the work items associated with this result.
	WorkItemURIs []string `json:"workItemURIs,omitempty" yaml:"workItemURIs,omitempty" mapstructure:"workItemURIs,omitempty"`
}

A result produced by an analysis tool.

func (*Result) UnmarshalJSON

func (j *Result) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ResultBaselineState

type ResultBaselineState string
const ResultBaselineStateAbsent ResultBaselineState = "absent"
const ResultBaselineStateNew ResultBaselineState = "new"
const ResultBaselineStateUnchanged ResultBaselineState = "unchanged"
const ResultBaselineStateUpdated ResultBaselineState = "updated"

func (*ResultBaselineState) UnmarshalJSON

func (j *ResultBaselineState) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ResultKind

type ResultKind string
const ResultKindFail ResultKind = "fail"
const ResultKindInformational ResultKind = "informational"
const ResultKindNotApplicable ResultKind = "notApplicable"
const ResultKindOpen ResultKind = "open"
const ResultKindPass ResultKind = "pass"
const ResultKindReview ResultKind = "review"

func (*ResultKind) UnmarshalJSON

func (j *ResultKind) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ResultLevel

type ResultLevel string
const ResultLevelError ResultLevel = "error"
const ResultLevelNone ResultLevel = "none"
const ResultLevelNote ResultLevel = "note"
const ResultLevelWarning ResultLevel = "warning"

func (*ResultLevel) UnmarshalJSON

func (j *ResultLevel) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ResultProvenance

type ResultProvenance struct {
	// An array of physicalLocation objects which specify the portions of an analysis
	// tool's output that a converter transformed into the result.
	ConversionSources []PhysicalLocation `json:"conversionSources,omitempty" yaml:"conversionSources,omitempty" mapstructure:"conversionSources,omitempty"`

	// A GUID-valued string equal to the automationDetails.guid property of the run in
	// which the result was first detected.
	FirstDetectionRunGuid *string `json:"firstDetectionRunGuid,omitempty" yaml:"firstDetectionRunGuid,omitempty" mapstructure:"firstDetectionRunGuid,omitempty"`

	// The Coordinated Universal Time (UTC) date and time at which the result was
	// first detected. See "Date/time properties" in the SARIF spec for the required
	// format.
	FirstDetectionTimeUtc *time.Time `json:"firstDetectionTimeUtc,omitempty" yaml:"firstDetectionTimeUtc,omitempty" mapstructure:"firstDetectionTimeUtc,omitempty"`

	// The index within the run.invocations array of the invocation object which
	// describes the tool invocation that detected the result.
	InvocationIndex int `json:"invocationIndex,omitempty" yaml:"invocationIndex,omitempty" mapstructure:"invocationIndex,omitempty"`

	// A GUID-valued string equal to the automationDetails.guid property of the run in
	// which the result was most recently detected.
	LastDetectionRunGuid *string `json:"lastDetectionRunGuid,omitempty" yaml:"lastDetectionRunGuid,omitempty" mapstructure:"lastDetectionRunGuid,omitempty"`

	// The Coordinated Universal Time (UTC) date and time at which the result was most
	// recently detected. See "Date/time properties" in the SARIF spec for the
	// required format.
	LastDetectionTimeUtc *time.Time `json:"lastDetectionTimeUtc,omitempty" yaml:"lastDetectionTimeUtc,omitempty" mapstructure:"lastDetectionTimeUtc,omitempty"`

	// Key/value pairs that provide additional information about the result.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

Contains information about how and when a result was detected.

func (*ResultProvenance) UnmarshalJSON

func (j *ResultProvenance) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Run

type Run struct {
	// Addresses associated with this run instance, if any.
	Addresses []Address `json:"addresses,omitempty" yaml:"addresses,omitempty" mapstructure:"addresses,omitempty"`

	// An array of artifact objects relevant to the run.
	Artifacts []Artifact `json:"artifacts,omitempty" yaml:"artifacts,omitempty" mapstructure:"artifacts,omitempty"`

	// Automation details that describe this run.
	AutomationDetails *RunAutomationDetails `json:"automationDetails,omitempty" yaml:"automationDetails,omitempty" mapstructure:"automationDetails,omitempty"`

	// The 'guid' property of a previous SARIF 'run' that comprises the baseline that
	// was used to compute result 'baselineState' properties for the run.
	BaselineGuid *string `json:"baselineGuid,omitempty" yaml:"baselineGuid,omitempty" mapstructure:"baselineGuid,omitempty"`

	// Specifies the unit in which the tool measures columns.
	ColumnKind *RunColumnKind `json:"columnKind,omitempty" yaml:"columnKind,omitempty" mapstructure:"columnKind,omitempty"`

	// A conversion object that describes how a converter transformed an analysis
	// tool's native reporting format into the SARIF format.
	Conversion *Conversion `json:"conversion,omitempty" yaml:"conversion,omitempty" mapstructure:"conversion,omitempty"`

	// Specifies the default encoding for any artifact object that refers to a text
	// file.
	DefaultEncoding *string `json:"defaultEncoding,omitempty" yaml:"defaultEncoding,omitempty" mapstructure:"defaultEncoding,omitempty"`

	// Specifies the default source language for any artifact object that refers to a
	// text file that contains source code.
	DefaultSourceLanguage *string `json:"defaultSourceLanguage,omitempty" yaml:"defaultSourceLanguage,omitempty" mapstructure:"defaultSourceLanguage,omitempty"`

	// References to external property files that should be inlined with the content
	// of a root log file.
	ExternalPropertyFileReferences *ExternalPropertyFileReferences `` /* 151-byte string literal not displayed */

	// An array of zero or more unique graph objects associated with the run.
	Graphs []Graph `json:"graphs,omitempty" yaml:"graphs,omitempty" mapstructure:"graphs,omitempty"`

	// Describes the invocation of the analysis tool.
	Invocations []Invocation `json:"invocations,omitempty" yaml:"invocations,omitempty" mapstructure:"invocations,omitempty"`

	// The language of the messages emitted into the log file during this run
	// (expressed as an ISO 639-1 two-letter lowercase culture code) and an optional
	// region (expressed as an ISO 3166-1 two-letter uppercase subculture code
	// associated with a country or region). The casing is recommended but not
	// required (in order for this data to conform to RFC5646).
	Language string `json:"language,omitempty" yaml:"language,omitempty" mapstructure:"language,omitempty"`

	// An array of logical locations such as namespaces, types or functions.
	LogicalLocations []LogicalLocation `json:"logicalLocations,omitempty" yaml:"logicalLocations,omitempty" mapstructure:"logicalLocations,omitempty"`

	// An ordered list of character sequences that were treated as line breaks when
	// computing region information for the run.
	NewlineSequences []string `json:"newlineSequences,omitempty" yaml:"newlineSequences,omitempty" mapstructure:"newlineSequences,omitempty"`

	// The artifact location specified by each uriBaseID symbol on the machine where
	// the tool originally ran.
	OriginalURIBaseIDs map[string]ArtifactLocation `json:"originalURIBaseIDs,omitempty" yaml:"originalURIBaseIDs,omitempty" mapstructure:"originalURIBaseIDs,omitempty"`

	// Contains configurations that may potentially override both
	// reportingDescriptor.defaultConfiguration (the tool's default severities) and
	// invocation.configurationOverrides (severities established at run-time from the
	// command line).
	Policies []ToolComponent `json:"policies,omitempty" yaml:"policies,omitempty" mapstructure:"policies,omitempty"`

	// Key/value pairs that provide additional information about the run.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// An array of strings used to replace sensitive information in a redaction-aware
	// property.
	RedactionTokens []string `json:"redactionTokens,omitempty" yaml:"redactionTokens,omitempty" mapstructure:"redactionTokens,omitempty"`

	// The set of results contained in an SARIF log. The results array can be omitted
	// when a run is solely exporting rules metadata. It must be present (but may be
	// empty) if a log file represents an actual scan.
	Results []Result `json:"results,omitempty" yaml:"results,omitempty" mapstructure:"results,omitempty"`

	// Automation details that describe the aggregate of runs to which this run
	// belongs.
	RunAggregates []RunAutomationDetails `json:"runAggregates,omitempty" yaml:"runAggregates,omitempty" mapstructure:"runAggregates,omitempty"`

	// A specialLocations object that defines locations of special significance to
	// SARIF consumers.
	SpecialLocations *SpecialLocations `json:"specialLocations,omitempty" yaml:"specialLocations,omitempty" mapstructure:"specialLocations,omitempty"`

	// An array of toolComponent objects relevant to a taxonomy in which results are
	// categorized.
	Taxonomies []ToolComponent `json:"taxonomies,omitempty" yaml:"taxonomies,omitempty" mapstructure:"taxonomies,omitempty"`

	// An array of threadFlowLocation objects cached at run level.
	ThreadFlowLocations []ThreadFlowLocation `json:"threadFlowLocations,omitempty" yaml:"threadFlowLocations,omitempty" mapstructure:"threadFlowLocations,omitempty"`

	// Information about the tool or tool pipeline that generated the results in this
	// run. A run can only contain results produced by a single tool or tool pipeline.
	// A run can aggregate results from multiple log files, as long as context around
	// the tool run (tool command-line arguments and the like) is identical for all
	// aggregated files.
	Tool Tool `json:"tool" yaml:"tool" mapstructure:"tool"`

	// The set of available translations of the localized data provided by the tool.
	Translations []ToolComponent `json:"translations,omitempty" yaml:"translations,omitempty" mapstructure:"translations,omitempty"`

	// Specifies the revision in version control of the artifacts that were scanned.
	VersionControlProvenance []VersionControlDetails `` /* 133-byte string literal not displayed */

	// An array of request objects cached at run level.
	WebRequests []WebRequest `json:"webRequests,omitempty" yaml:"webRequests,omitempty" mapstructure:"webRequests,omitempty"`

	// An array of response objects cached at run level.
	WebResponses []WebResponse `json:"webResponses,omitempty" yaml:"webResponses,omitempty" mapstructure:"webResponses,omitempty"`
}

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

func (*Run) UnmarshalJSON

func (j *Run) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RunAutomationDetails

type RunAutomationDetails struct {
	// A stable, unique identifier for the equivalence class of runs to which this
	// object's containing run object belongs in the form of a GUID.
	CorrelationGuid *string `json:"correlationGuid,omitempty" yaml:"correlationGuid,omitempty" mapstructure:"correlationGuid,omitempty"`

	// A description of the identity and role played within the engineering system by
	// this object's containing run object.
	Description Message `json:"description,omitempty" yaml:"description,omitempty" mapstructure:"description,omitempty"`

	// A stable, unique identifier for this object's containing run object in the form
	// of a GUID.
	Guid *string `json:"guid,omitempty" yaml:"guid,omitempty" mapstructure:"guid,omitempty"`

	// A hierarchical string that uniquely identifies this object's containing run
	// object.
	ID *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// Key/value pairs that provide additional information about the run automation
	// details.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

Information that describes a run's identity and role within an engineering system process.

func (*RunAutomationDetails) UnmarshalJSON

func (j *RunAutomationDetails) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type RunColumnKind

type RunColumnKind string
const RunColumnKindUnicodeCodePoints RunColumnKind = "unicodeCodePoints"
const RunColumnKindUtf16CodeUnits RunColumnKind = "utf16CodeUnits"

func (*RunColumnKind) UnmarshalJSON

func (j *RunColumnKind) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SarifSchema210Json

type SarifSchema210Json struct {
	// The URI of the JSON schema corresponding to the version.
	Schema *string `json:"$schema,omitempty" yaml:"$schema,omitempty" mapstructure:"$schema,omitempty"`

	// References to external property files that share data between runs.
	InlineExternalProperties []ExternalProperties `` /* 133-byte string literal not displayed */

	// Key/value pairs that provide additional information about the log file.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The set of runs contained in this log file.
	Runs []Run `json:"runs" yaml:"runs" mapstructure:"runs"`

	// The SARIF format version of this log file.
	Version SarifSchema210JsonVersion `json:"version" yaml:"version" mapstructure:"version"`
}

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

func (*SarifSchema210Json) UnmarshalJSON

func (j *SarifSchema210Json) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SarifSchema210JsonVersion

type SarifSchema210JsonVersion string
const SarifSchema210JsonVersionA210 SarifSchema210JsonVersion = "2.1.0"

func (*SarifSchema210JsonVersion) UnmarshalJSON

func (j *SarifSchema210JsonVersion) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SpecialLocations

type SpecialLocations struct {
	// Provides a suggestion to SARIF consumers to display file paths relative to the
	// specified location.
	DisplayBase *ArtifactLocation `json:"displayBase,omitempty" yaml:"displayBase,omitempty" mapstructure:"displayBase,omitempty"`

	// Key/value pairs that provide additional information about the special
	// locations.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

Defines locations of special significance to SARIF consumers.

type Stack

type Stack struct {
	// An array of stack frames that represents a sequence of calls, rendered in
	// reverse chronological order, that comprise the call stack.
	Frames []StackFrame `json:"frames" yaml:"frames" mapstructure:"frames"`

	// A message relevant to this call stack.
	Message Message `json:"message,omitempty" yaml:"message,omitempty" mapstructure:"message,omitempty"`

	// Key/value pairs that provide additional information about the stack.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

A call stack that is relevant to a result.

func (*Stack) UnmarshalJSON

func (j *Stack) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type StackFrame

type StackFrame struct {
	// The location to which this stack frame refers.
	Location *Location `json:"location,omitempty" yaml:"location,omitempty" mapstructure:"location,omitempty"`

	// The name of the module that contains the code of this stack frame.
	Module *string `json:"module,omitempty" yaml:"module,omitempty" mapstructure:"module,omitempty"`

	// The parameters of the call that is executing.
	Parameters []string `json:"parameters,omitempty" yaml:"parameters,omitempty" mapstructure:"parameters,omitempty"`

	// Key/value pairs that provide additional information about the stack frame.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The thread identifier of the stack frame.
	ThreadID *int `json:"threadID,omitempty" yaml:"threadID,omitempty" mapstructure:"threadID,omitempty"`
}

A function call within a stack trace.

func (*StackFrame) UnmarshalJSON

func (j *StackFrame) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Suppression

type Suppression struct {
	// A stable, unique identifier for the suprression in the form of a GUID.
	Guid *string `json:"guid,omitempty" yaml:"guid,omitempty" mapstructure:"guid,omitempty"`

	// A string representing the justification for the suppression.
	Justification *string `json:"justification,omitempty" yaml:"justification,omitempty" mapstructure:"justification,omitempty"`

	// A string that indicates where the suppression is persisted.
	Kind SuppressionKind `json:"kind" yaml:"kind" mapstructure:"kind"`

	// IDentifies the location associated with the suppression.
	Location *Location `json:"location,omitempty" yaml:"location,omitempty" mapstructure:"location,omitempty"`

	// Key/value pairs that provide additional information about the suppression.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// A string that indicates the review status of the suppression.
	Status *SuppressionStatus `json:"status,omitempty" yaml:"status,omitempty" mapstructure:"status,omitempty"`
}

A suppression that is relevant to a result.

func (*Suppression) UnmarshalJSON

func (j *Suppression) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SuppressionKind

type SuppressionKind string
const SuppressionKindExternal SuppressionKind = "external"
const SuppressionKindInSource SuppressionKind = "inSource"

func (*SuppressionKind) UnmarshalJSON

func (j *SuppressionKind) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SuppressionStatus

type SuppressionStatus string
const SuppressionStatusAccepted SuppressionStatus = "accepted"
const SuppressionStatusRejected SuppressionStatus = "rejected"
const SuppressionStatusUnderReview SuppressionStatus = "underReview"

func (*SuppressionStatus) UnmarshalJSON

func (j *SuppressionStatus) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ThreadFlow

type ThreadFlow struct {
	// An string that uniquely identifies the threadFlow within the codeFlow in which
	// it occurs.
	ID *string `json:"id,omitempty" yaml:"id,omitempty" mapstructure:"id,omitempty"`

	// Values of relevant expressions at the start of the thread flow that remain
	// constant.
	ImmutableState map[string]MultiformatMessageString `json:"immutableState,omitempty" yaml:"immutableState,omitempty" mapstructure:"immutableState,omitempty"`

	// Values of relevant expressions at the start of the thread flow that may change
	// during thread flow execution.
	InitialState map[string]MultiformatMessageString `json:"initialState,omitempty" yaml:"initialState,omitempty" mapstructure:"initialState,omitempty"`

	// A temporally ordered array of 'threadFlowLocation' objects, each of which
	// describes a location visited by the tool while producing the result.
	Locations []ThreadFlowLocation `json:"locations" yaml:"locations" mapstructure:"locations"`

	// A message relevant to the thread flow.
	Message Message `json:"message,omitempty" yaml:"message,omitempty" mapstructure:"message,omitempty"`

	// Key/value pairs that provide additional information about the thread flow.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

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

func (*ThreadFlow) UnmarshalJSON

func (j *ThreadFlow) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ThreadFlowLocation

type ThreadFlowLocation struct {
	// An integer representing the temporal order in which execution reached this
	// location.
	ExecutionOrder int `json:"executionOrder,omitempty" yaml:"executionOrder,omitempty" mapstructure:"executionOrder,omitempty"`

	// The Coordinated Universal Time (UTC) date and time at which this location was
	// executed.
	ExecutionTimeUtc *time.Time `json:"executionTimeUtc,omitempty" yaml:"executionTimeUtc,omitempty" mapstructure:"executionTimeUtc,omitempty"`

	// 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".
	Importance ThreadFlowLocationImportance `json:"importance,omitempty" yaml:"importance,omitempty" mapstructure:"importance,omitempty"`

	// The index within the run threadFlowLocations array.
	Index int `json:"index,omitempty" yaml:"index,omitempty" mapstructure:"index,omitempty"`

	// A set of distinct strings that categorize the thread flow location. Well-known
	// kinds include 'acquire', 'release', 'enter', 'exit', 'call', 'return',
	// 'branch', 'implicit', 'false', 'true', 'caution', 'danger', 'unknown',
	// 'unreachable', 'taint', 'function', 'handler', 'lock', 'memory', 'resource',
	// 'scope' and 'value'.
	Kinds []string `json:"kinds,omitempty" yaml:"kinds,omitempty" mapstructure:"kinds,omitempty"`

	// The code location.
	Location *Location `json:"location,omitempty" yaml:"location,omitempty" mapstructure:"location,omitempty"`

	// The name of the module that contains the code that is executing.
	Module *string `json:"module,omitempty" yaml:"module,omitempty" mapstructure:"module,omitempty"`

	// An integer representing a containment hierarchy within the thread flow.
	NestingLevel *int `json:"nestingLevel,omitempty" yaml:"nestingLevel,omitempty" mapstructure:"nestingLevel,omitempty"`

	// Key/value pairs that provide additional information about the threadflow
	// location.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The call stack leading to this location.
	Stack *Stack `json:"stack,omitempty" yaml:"stack,omitempty" mapstructure:"stack,omitempty"`

	// A dictionary, each of whose keys specifies a variable or expression, the
	// associated value of which represents the variable or expression value. For an
	// annotation of kind 'continuation', for example, this dictionary might hold the
	// current assumed values of a set of global variables.
	State map[string]MultiformatMessageString `json:"state,omitempty" yaml:"state,omitempty" mapstructure:"state,omitempty"`

	// An array of references to rule or taxonomy reporting descriptors that are
	// applicable to the thread flow location.
	Taxa []ReportingDescriptorReference `json:"taxa,omitempty" yaml:"taxa,omitempty" mapstructure:"taxa,omitempty"`

	// A web request associated with this thread flow location.
	WebRequest *WebRequest `json:"webRequest,omitempty" yaml:"webRequest,omitempty" mapstructure:"webRequest,omitempty"`

	// A web response associated with this thread flow location.
	WebResponse *WebResponse `json:"webResponse,omitempty" yaml:"webResponse,omitempty" mapstructure:"webResponse,omitempty"`
}

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

func (*ThreadFlowLocation) UnmarshalJSON

func (j *ThreadFlowLocation) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ThreadFlowLocationImportance

type ThreadFlowLocationImportance string
const ThreadFlowLocationImportanceEssential ThreadFlowLocationImportance = "essential"
const ThreadFlowLocationImportanceImportant ThreadFlowLocationImportance = "important"
const ThreadFlowLocationImportanceUnimportant ThreadFlowLocationImportance = "unimportant"

func (*ThreadFlowLocationImportance) UnmarshalJSON

func (j *ThreadFlowLocationImportance) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Tool

type Tool struct {
	// The analysis tool that was run.
	Driver ToolComponent `json:"driver" yaml:"driver" mapstructure:"driver"`

	// Tool extensions that contributed to or reconfigured the analysis tool that was
	// run.
	Extensions []ToolComponent `json:"extensions,omitempty" yaml:"extensions,omitempty" mapstructure:"extensions,omitempty"`

	// Key/value pairs that provide additional information about the tool.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

The analysis tool that was run.

func (*Tool) UnmarshalJSON

func (j *Tool) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ToolComponent

type ToolComponent struct {
	// The component which is strongly associated with this component. For a
	// translation, this refers to the component which has been translated. For an
	// extension, this is the driver that provides the extension's plugin model.
	AssociatedComponent *ToolComponentReference `json:"associatedComponent,omitempty" yaml:"associatedComponent,omitempty" mapstructure:"associatedComponent,omitempty"`

	// The kinds of data contained in this object.
	Contents []ToolComponentContentsElem `json:"contents,omitempty" yaml:"contents,omitempty" mapstructure:"contents,omitempty"`

	// The binary version of the tool component's primary executable file expressed as
	// four non-negative integers separated by a period (for operating systems that
	// express file versions in this way).
	DottedQuadFileVersion *string `json:"dottedQuadFileVersion,omitempty" yaml:"dottedQuadFileVersion,omitempty" mapstructure:"dottedQuadFileVersion,omitempty"`

	// The absolute URI from which the tool component can be downloaded.
	DownloadURI *string `json:"downloadURI,omitempty" yaml:"downloadURI,omitempty" mapstructure:"downloadURI,omitempty"`

	// A comprehensive description of the tool component.
	FullDescription *MultiformatMessageString `json:"fullDescription,omitempty" yaml:"fullDescription,omitempty" mapstructure:"fullDescription,omitempty"`

	// The name of the tool component along with its version and any other useful
	// identifying information, such as its locale.
	FullName *string `json:"fullName,omitempty" yaml:"fullName,omitempty" mapstructure:"fullName,omitempty"`

	// A dictionary, each of whose keys is a resource identifier and each of whose
	// values is a multiformatMessageString object, which holds message strings in
	// plain text and (optionally) Markdown format. The strings can include
	// placeholders, which can be used to construct a message in combination with an
	// arbitrary number of additional string arguments.
	GlobalMessageStrings map[string]MultiformatMessageString `json:"globalMessageStrings,omitempty" yaml:"globalMessageStrings,omitempty" mapstructure:"globalMessageStrings,omitempty"`

	// A unique identifier for the tool component in the form of a GUID.
	Guid *string `json:"guid,omitempty" yaml:"guid,omitempty" mapstructure:"guid,omitempty"`

	// The absolute URI at which information about this version of the tool component
	// can be found.
	InformationURI *string `json:"informationURI,omitempty" yaml:"informationURI,omitempty" mapstructure:"informationURI,omitempty"`

	// Specifies whether this object contains a complete definition of the localizable
	// and/or non-localizable data for this component, as opposed to including only
	// data that is relevant to the results persisted to this log file.
	IsComprehensive bool `json:"isComprehensive,omitempty" yaml:"isComprehensive,omitempty" mapstructure:"isComprehensive,omitempty"`

	// The language of the messages emitted into the log file during this run
	// (expressed as an ISO 639-1 two-letter lowercase language code) and an optional
	// region (expressed as an ISO 3166-1 two-letter uppercase subculture code
	// associated with a country or region). The casing is recommended but not
	// required (in order for this data to conform to RFC5646).
	Language string `json:"language,omitempty" yaml:"language,omitempty" mapstructure:"language,omitempty"`

	// The semantic version of the localized strings defined in this component;
	// maintained by components that provide translations.
	LocalizedDataSemanticVersion *string `` /* 145-byte string literal not displayed */

	// An array of the artifactLocation objects associated with the tool component.
	Locations []ArtifactLocation `json:"locations,omitempty" yaml:"locations,omitempty" mapstructure:"locations,omitempty"`

	// The minimum value of localizedDataSemanticVersion required in translations
	// consumed by this component; used by components that consume translations.
	MinimumRequiredLocalizedDataSemanticVersion *string `` /* 190-byte string literal not displayed */

	// The name of the tool component.
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// An array of reportingDescriptor objects relevant to the notifications related
	// to the configuration and runtime execution of the tool component.
	Notifications []ReportingDescriptor `json:"notifications,omitempty" yaml:"notifications,omitempty" mapstructure:"notifications,omitempty"`

	// The organization or company that produced the tool component.
	Organization *string `json:"organization,omitempty" yaml:"organization,omitempty" mapstructure:"organization,omitempty"`

	// A product suite to which the tool component belongs.
	Product *string `json:"product,omitempty" yaml:"product,omitempty" mapstructure:"product,omitempty"`

	// A localizable string containing the name of the suite of products to which the
	// tool component belongs.
	ProductSuite *string `json:"productSuite,omitempty" yaml:"productSuite,omitempty" mapstructure:"productSuite,omitempty"`

	// Key/value pairs that provide additional information about the tool component.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// A string specifying the UTC date (and optionally, the time) of the component's
	// release.
	ReleaseDateUtc *string `json:"releaseDateUtc,omitempty" yaml:"releaseDateUtc,omitempty" mapstructure:"releaseDateUtc,omitempty"`

	// An array of reportingDescriptor objects relevant to the analysis performed by
	// the tool component.
	Rules []ReportingDescriptor `json:"rules,omitempty" yaml:"rules,omitempty" mapstructure:"rules,omitempty"`

	// The tool component version in the format specified by Semantic Versioning 2.0.
	SemanticVersion *string `json:"semanticVersion,omitempty" yaml:"semanticVersion,omitempty" mapstructure:"semanticVersion,omitempty"`

	// A brief description of the tool component.
	ShortDescription *MultiformatMessageString `json:"shortDescription,omitempty" yaml:"shortDescription,omitempty" mapstructure:"shortDescription,omitempty"`

	// An array of toolComponentReference objects to declare the taxonomies supported
	// by the tool component.
	SupportedTaxonomies []ToolComponentReference `json:"supportedTaxonomies,omitempty" yaml:"supportedTaxonomies,omitempty" mapstructure:"supportedTaxonomies,omitempty"`

	// An array of reportingDescriptor objects relevant to the definitions of both
	// standalone and tool-defined taxonomies.
	Taxa []ReportingDescriptor `json:"taxa,omitempty" yaml:"taxa,omitempty" mapstructure:"taxa,omitempty"`

	// Translation metadata, required for a translation, not populated by other
	// component types.
	TranslationMetadata *TranslationMetadata `json:"translationMetadata,omitempty" yaml:"translationMetadata,omitempty" mapstructure:"translationMetadata,omitempty"`

	// The tool component version, in whatever format the component natively provides.
	Version *string `json:"version,omitempty" yaml:"version,omitempty" mapstructure:"version,omitempty"`
}

A component, such as a plug-in or the driver, of the analysis tool that was run.

func (*ToolComponent) UnmarshalJSON

func (j *ToolComponent) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ToolComponentContentsElem

type ToolComponentContentsElem string
const ToolComponentContentsElemLocalizedData ToolComponentContentsElem = "localizedData"
const ToolComponentContentsElemNonLocalizedData ToolComponentContentsElem = "nonLocalizedData"

func (*ToolComponentContentsElem) UnmarshalJSON

func (j *ToolComponentContentsElem) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ToolComponentReference

type ToolComponentReference struct {
	// The 'guid' property of the referenced toolComponent.
	Guid *string `json:"guid,omitempty" yaml:"guid,omitempty" mapstructure:"guid,omitempty"`

	// An index into the referenced toolComponent in tool.extensions.
	Index int `json:"index,omitempty" yaml:"index,omitempty" mapstructure:"index,omitempty"`

	// The 'name' property of the referenced toolComponent.
	Name *string `json:"name,omitempty" yaml:"name,omitempty" mapstructure:"name,omitempty"`

	// Key/value pairs that provide additional information about the
	// toolComponentReference.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`
}

IDentifies a particular toolComponent object, either the driver or an extension.

func (*ToolComponentReference) UnmarshalJSON

func (j *ToolComponentReference) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TranslationMetadata

type TranslationMetadata struct {
	// The absolute URI from which the translation metadata can be downloaded.
	DownloadURI *string `json:"downloadURI,omitempty" yaml:"downloadURI,omitempty" mapstructure:"downloadURI,omitempty"`

	// A comprehensive description of the translation metadata.
	FullDescription *MultiformatMessageString `json:"fullDescription,omitempty" yaml:"fullDescription,omitempty" mapstructure:"fullDescription,omitempty"`

	// The full name associated with the translation metadata.
	FullName *string `json:"fullName,omitempty" yaml:"fullName,omitempty" mapstructure:"fullName,omitempty"`

	// The absolute URI from which information related to the translation metadata can
	// be downloaded.
	InformationURI *string `json:"informationURI,omitempty" yaml:"informationURI,omitempty" mapstructure:"informationURI,omitempty"`

	// The name associated with the translation metadata.
	Name string `json:"name" yaml:"name" mapstructure:"name"`

	// Key/value pairs that provide additional information about the translation
	// metadata.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// A brief description of the translation metadata.
	ShortDescription *MultiformatMessageString `json:"shortDescription,omitempty" yaml:"shortDescription,omitempty" mapstructure:"shortDescription,omitempty"`
}

Provides additional metadata related to translation.

func (*TranslationMetadata) UnmarshalJSON

func (j *TranslationMetadata) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type VersionControlDetails

type VersionControlDetails struct {
	// A Coordinated Universal Time (UTC) date and time that can be used to
	// synchronize an enlistment to the state of the repository at that time.
	AsOfTimeUtc *time.Time `json:"asOfTimeUtc,omitempty" yaml:"asOfTimeUtc,omitempty" mapstructure:"asOfTimeUtc,omitempty"`

	// The name of a branch containing the revision.
	Branch *string `json:"branch,omitempty" yaml:"branch,omitempty" mapstructure:"branch,omitempty"`

	// The location in the local file system to which the root of the repository was
	// mapped at the time of the analysis.
	MappedTo *ArtifactLocation `json:"mappedTo,omitempty" yaml:"mappedTo,omitempty" mapstructure:"mappedTo,omitempty"`

	// Key/value pairs that provide additional information about the version control
	// details.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The absolute URI of the repository.
	RepositoryURI string `json:"repositoryURI" yaml:"repositoryURI" mapstructure:"repositoryURI"`

	// A string that uniquely and permanently identifies the revision within the
	// repository.
	RevisionID *string `json:"revisionID,omitempty" yaml:"revisionID,omitempty" mapstructure:"revisionID,omitempty"`

	// A tag that has been applied to the revision.
	RevisionTag *string `json:"revisionTag,omitempty" yaml:"revisionTag,omitempty" mapstructure:"revisionTag,omitempty"`
}

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

func (*VersionControlDetails) UnmarshalJSON

func (j *VersionControlDetails) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type WebRequest

type WebRequest struct {
	// The body of the request.
	Body *ArtifactContent `json:"body,omitempty" yaml:"body,omitempty" mapstructure:"body,omitempty"`

	// The request headers.
	Headers map[string]string `json:"headers,omitempty" yaml:"headers,omitempty" mapstructure:"headers,omitempty"`

	// The index within the run.webRequests array of the request object associated
	// with this result.
	Index int `json:"index,omitempty" yaml:"index,omitempty" mapstructure:"index,omitempty"`

	// The HTTP method. Well-known values are 'GET', 'PUT', 'POST', 'DELETE', 'PATCH',
	// 'HEAD', 'OPTIONS', 'TRACE', 'CONNECT'.
	Method *string `json:"method,omitempty" yaml:"method,omitempty" mapstructure:"method,omitempty"`

	// The request parameters.
	Parameters map[string]string `json:"parameters,omitempty" yaml:"parameters,omitempty" mapstructure:"parameters,omitempty"`

	// Key/value pairs that provide additional information about the request.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The request protocol. Example: 'http'.
	Protocol *string `json:"protocol,omitempty" yaml:"protocol,omitempty" mapstructure:"protocol,omitempty"`

	// The target of the request.
	Target *string `json:"target,omitempty" yaml:"target,omitempty" mapstructure:"target,omitempty"`

	// The request version. Example: '1.1'.
	Version *string `json:"version,omitempty" yaml:"version,omitempty" mapstructure:"version,omitempty"`
}

Describes an HTTP request.

func (*WebRequest) UnmarshalJSON

func (j *WebRequest) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type WebResponse

type WebResponse struct {
	// The body of the response.
	Body *ArtifactContent `json:"body,omitempty" yaml:"body,omitempty" mapstructure:"body,omitempty"`

	// The response headers.
	Headers map[string]string `json:"headers,omitempty" yaml:"headers,omitempty" mapstructure:"headers,omitempty"`

	// The index within the run.webResponses array of the response object associated
	// with this result.
	Index int `json:"index,omitempty" yaml:"index,omitempty" mapstructure:"index,omitempty"`

	// Specifies whether a response was received from the server.
	NoResponseReceived bool `json:"noResponseReceived,omitempty" yaml:"noResponseReceived,omitempty" mapstructure:"noResponseReceived,omitempty"`

	// Key/value pairs that provide additional information about the response.
	Properties *PropertyBag `json:"properties,omitempty" yaml:"properties,omitempty" mapstructure:"properties,omitempty"`

	// The response protocol. Example: 'http'.
	Protocol *string `json:"protocol,omitempty" yaml:"protocol,omitempty" mapstructure:"protocol,omitempty"`

	// The response reason. Example: 'Not found'.
	ReasonPhrase *string `json:"reasonPhrase,omitempty" yaml:"reasonPhrase,omitempty" mapstructure:"reasonPhrase,omitempty"`

	// The response status code. Example: 451.
	StatusCode *int `json:"statusCode,omitempty" yaml:"statusCode,omitempty" mapstructure:"statusCode,omitempty"`

	// The response version. Example: '1.1'.
	Version *string `json:"version,omitempty" yaml:"version,omitempty" mapstructure:"version,omitempty"`
}

Describes the response to an HTTP request.

func (*WebResponse) UnmarshalJSON

func (j *WebResponse) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL