generated

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 22, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const Artifacts_Operation = `` /* 170-byte string literal not displayed */

The query or mutation executed by Artifacts.

View Source
const CVEs_Operation = `` /* 128-byte string literal not displayed */

The query or mutation executed by CVEs.

View Source
const CertifyBadArtifact_Operation = `` /* 890-byte string literal not displayed */

The query or mutation executed by CertifyBadArtifact.

View Source
const CertifyBadPkg_Operation = `` /* 909-byte string literal not displayed */

The query or mutation executed by CertifyBadPkg.

View Source
const CertifyBadSrc_Operation = `` /* 869-byte string literal not displayed */

The query or mutation executed by CertifyBadSrc.

View Source
const CertifyBads_Operation = `` /* 738-byte string literal not displayed */

The query or mutation executed by CertifyBads.

View Source
const CertifyCVE_Operation = `` /* 1002-byte string literal not displayed */

The query or mutation executed by CertifyCVE.

View Source
const CertifyGHSA_Operation = `` /* 1011-byte string literal not displayed */

The query or mutation executed by CertifyGHSA.

View Source
const CertifyGoodArtifact_Operation = `` /* 899-byte string literal not displayed */

The query or mutation executed by CertifyGoodArtifact.

View Source
const CertifyGoodPkg_Operation = `` /* 918-byte string literal not displayed */

The query or mutation executed by CertifyGoodPkg.

View Source
const CertifyGoodSrc_Operation = `` /* 878-byte string literal not displayed */

The query or mutation executed by CertifyGoodSrc.

View Source
const CertifyNoKnownVuln_Operation = `` /* 948-byte string literal not displayed */

The query or mutation executed by CertifyNoKnownVuln.

View Source
const CertifyOSV_Operation = `` /* 1002-byte string literal not displayed */

The query or mutation executed by CertifyOSV.

View Source
const GHSAs_Operation = `` /* 130-byte string literal not displayed */

The query or mutation executed by GHSAs.

View Source
const HasSBOMArtifact_Operation = `` /* 761-byte string literal not displayed */

The query or mutation executed by HasSBOMArtifact.

View Source
const HasSBOMPkg_Operation = `` /* 724-byte string literal not displayed */

The query or mutation executed by HasSBOMPkg.

View Source
const HasSourceAt_Operation = `` /* 856-byte string literal not displayed */

The query or mutation executed by HasSourceAt.

View Source
const HashEqual_Operation = `` /* 586-byte string literal not displayed */

The query or mutation executed by HashEqual.

View Source
const IsDependency_Operation = `` /* 718-byte string literal not displayed */

The query or mutation executed by IsDependency.

View Source
const IsOccurrencePkg_Operation = `` /* 979-byte string literal not displayed */

The query or mutation executed by IsOccurrencePkg.

View Source
const IsOccurrenceSrc_Operation = `` /* 995-byte string literal not displayed */

The query or mutation executed by IsOccurrenceSrc.

View Source
const IsVulnerabilityCVE_Operation = `` /* 695-byte string literal not displayed */

The query or mutation executed by IsVulnerabilityCVE.

View Source
const IsVulnerabilityGHSA_Operation = `` /* 704-byte string literal not displayed */

The query or mutation executed by IsVulnerabilityGHSA.

View Source
const Neighbors_Operation = `` /* 4732-byte string literal not displayed */

The query or mutation executed by Neighbors.

View Source
const Node_Operation = `` /* 4677-byte string literal not displayed */

The query or mutation executed by Node.

View Source
const Nodes_Operation = `` /* 4685-byte string literal not displayed */

The query or mutation executed by Nodes.

View Source
const OSVs_Operation = `
query OSVs ($filter: OSVSpec) {
	osv(osvSpec: $filter) {
		... AllOSVTree
	}
}
fragment AllOSVTree on OSV {
	id
	osvId
}
`

The query or mutation executed by OSVs.

View Source
const Packages_Operation = `` /* 289-byte string literal not displayed */

The query or mutation executed by Packages.

View Source
const Path_Operation = `` /* 4815-byte string literal not displayed */

The query or mutation executed by Path.

View Source
const PkgEqual_Operation = `` /* 637-byte string literal not displayed */

The query or mutation executed by PkgEqual.

View Source
const SLSAForArtifact_Operation = `` /* 766-byte string literal not displayed */

The query or mutation executed by SLSAForArtifact.

View Source
const Scorecard_Operation = `` /* 584-byte string literal not displayed */

The query or mutation executed by Scorecard.

View Source
const Sources_Operation = `` /* 222-byte string literal not displayed */

The query or mutation executed by Sources.

View Source
const VEXPackageAndGhsa_Operation = `` /* 1153-byte string literal not displayed */

The query or mutation executed by VEXPackageAndGhsa.

View Source
const VexArtifactAndCve_Operation = `` /* 1177-byte string literal not displayed */

The query or mutation executed by VexArtifactAndCve.

View Source
const VexArtifactAndGhsa_Operation = `` /* 1186-byte string literal not displayed */

The query or mutation executed by VexArtifactAndGhsa.

View Source
const VexArtifactAndOsv_Operation = `` /* 1177-byte string literal not displayed */

The query or mutation executed by VexArtifactAndOsv.

View Source
const VexPackageAndCve_Operation = `` /* 1144-byte string literal not displayed */

The query or mutation executed by VexPackageAndCve.

View Source
const VexPackageAndOsv_Operation = `` /* 1144-byte string literal not displayed */

The query or mutation executed by VexPackageAndOsv.

Variables

This section is empty.

Functions

This section is empty.

Types

type AllArtifactTree

type AllArtifactTree struct {
	Id        string `json:"id"`
	Algorithm string `json:"algorithm"`
	Digest    string `json:"digest"`
}

AllArtifactTree includes the GraphQL fields of Artifact requested by the fragment AllArtifactTree. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*AllArtifactTree) GetAlgorithm

func (v *AllArtifactTree) GetAlgorithm() string

GetAlgorithm returns AllArtifactTree.Algorithm, and is useful for accessing the field via an interface.

func (*AllArtifactTree) GetDigest

func (v *AllArtifactTree) GetDigest() string

GetDigest returns AllArtifactTree.Digest, and is useful for accessing the field via an interface.

func (*AllArtifactTree) GetId

func (v *AllArtifactTree) GetId() string

GetId returns AllArtifactTree.Id, and is useful for accessing the field via an interface.

type AllCertifyBad

type AllCertifyBad struct {
	Id            string                                      `json:"id"`
	Justification string                                      `json:"justification"`
	Subject       AllCertifyBadSubjectPackageSourceOrArtifact `json:"-"`
	Origin        string                                      `json:"origin"`
	Collector     string                                      `json:"collector"`
}

AllCertifyBad includes the GraphQL fields of CertifyBad requested by the fragment AllCertifyBad. The GraphQL type's documentation follows.

CertifyBad is an attestation that a package, source, or artifact is considered bad.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*AllCertifyBad) GetCollector

func (v *AllCertifyBad) GetCollector() string

GetCollector returns AllCertifyBad.Collector, and is useful for accessing the field via an interface.

func (*AllCertifyBad) GetId

func (v *AllCertifyBad) GetId() string

GetId returns AllCertifyBad.Id, and is useful for accessing the field via an interface.

func (*AllCertifyBad) GetJustification

func (v *AllCertifyBad) GetJustification() string

GetJustification returns AllCertifyBad.Justification, and is useful for accessing the field via an interface.

func (*AllCertifyBad) GetOrigin

func (v *AllCertifyBad) GetOrigin() string

GetOrigin returns AllCertifyBad.Origin, and is useful for accessing the field via an interface.

func (*AllCertifyBad) GetSubject

GetSubject returns AllCertifyBad.Subject, and is useful for accessing the field via an interface.

func (*AllCertifyBad) MarshalJSON

func (v *AllCertifyBad) MarshalJSON() ([]byte, error)

func (*AllCertifyBad) UnmarshalJSON

func (v *AllCertifyBad) UnmarshalJSON(b []byte) error

type AllCertifyBadSubjectArtifact

type AllCertifyBadSubjectArtifact struct {
	Typename        *string `json:"__typename"`
	AllArtifactTree `json:"-"`
}

AllCertifyBadSubjectArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*AllCertifyBadSubjectArtifact) GetAlgorithm

func (v *AllCertifyBadSubjectArtifact) GetAlgorithm() string

GetAlgorithm returns AllCertifyBadSubjectArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectArtifact) GetDigest

func (v *AllCertifyBadSubjectArtifact) GetDigest() string

GetDigest returns AllCertifyBadSubjectArtifact.Digest, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectArtifact) GetId

GetId returns AllCertifyBadSubjectArtifact.Id, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectArtifact) GetTypename

func (v *AllCertifyBadSubjectArtifact) GetTypename() *string

GetTypename returns AllCertifyBadSubjectArtifact.Typename, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectArtifact) MarshalJSON

func (v *AllCertifyBadSubjectArtifact) MarshalJSON() ([]byte, error)

func (*AllCertifyBadSubjectArtifact) UnmarshalJSON

func (v *AllCertifyBadSubjectArtifact) UnmarshalJSON(b []byte) error

type AllCertifyBadSubjectPackage

type AllCertifyBadSubjectPackage struct {
	Typename   *string `json:"__typename"`
	AllPkgTree `json:"-"`
}

AllCertifyBadSubjectPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*AllCertifyBadSubjectPackage) GetId

GetId returns AllCertifyBadSubjectPackage.Id, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectPackage) GetNamespaces

GetNamespaces returns AllCertifyBadSubjectPackage.Namespaces, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectPackage) GetType

func (v *AllCertifyBadSubjectPackage) GetType() string

GetType returns AllCertifyBadSubjectPackage.Type, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectPackage) GetTypename

func (v *AllCertifyBadSubjectPackage) GetTypename() *string

GetTypename returns AllCertifyBadSubjectPackage.Typename, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectPackage) MarshalJSON

func (v *AllCertifyBadSubjectPackage) MarshalJSON() ([]byte, error)

func (*AllCertifyBadSubjectPackage) UnmarshalJSON

func (v *AllCertifyBadSubjectPackage) UnmarshalJSON(b []byte) error

type AllCertifyBadSubjectPackageSourceOrArtifact

type AllCertifyBadSubjectPackageSourceOrArtifact interface {

	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() *string
	// contains filtered or unexported methods
}

AllCertifyBadSubjectPackageSourceOrArtifact includes the requested fields of the GraphQL interface PackageSourceOrArtifact.

AllCertifyBadSubjectPackageSourceOrArtifact is implemented by the following types: AllCertifyBadSubjectArtifact AllCertifyBadSubjectPackage AllCertifyBadSubjectSource The GraphQL type's documentation follows.

PackageSourceOrArtifact is a union of Package, Source, and Artifact.

type AllCertifyBadSubjectSource

type AllCertifyBadSubjectSource struct {
	Typename      *string `json:"__typename"`
	AllSourceTree `json:"-"`
}

AllCertifyBadSubjectSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*AllCertifyBadSubjectSource) GetId

GetId returns AllCertifyBadSubjectSource.Id, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectSource) GetNamespaces

GetNamespaces returns AllCertifyBadSubjectSource.Namespaces, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectSource) GetType

func (v *AllCertifyBadSubjectSource) GetType() string

GetType returns AllCertifyBadSubjectSource.Type, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectSource) GetTypename

func (v *AllCertifyBadSubjectSource) GetTypename() *string

GetTypename returns AllCertifyBadSubjectSource.Typename, and is useful for accessing the field via an interface.

func (*AllCertifyBadSubjectSource) MarshalJSON

func (v *AllCertifyBadSubjectSource) MarshalJSON() ([]byte, error)

func (*AllCertifyBadSubjectSource) UnmarshalJSON

func (v *AllCertifyBadSubjectSource) UnmarshalJSON(b []byte) error

type AllCertifyScorecard

type AllCertifyScorecard struct {
	Id string `json:"id"`
	// The source repository that is being scanned (attestation subject)
	Source AllCertifyScorecardSource `json:"source"`
	// The Scorecard attached to the repository (attestation object)
	Scorecard AllCertifyScorecardScorecard `json:"scorecard"`
}

AllCertifyScorecard includes the GraphQL fields of CertifyScorecard requested by the fragment AllCertifyScorecard. The GraphQL type's documentation follows.

CertifyScorecard is an attestation to attach a Scorecard analysis to a particular source repository.

func (*AllCertifyScorecard) GetId

func (v *AllCertifyScorecard) GetId() string

GetId returns AllCertifyScorecard.Id, and is useful for accessing the field via an interface.

func (*AllCertifyScorecard) GetScorecard

GetScorecard returns AllCertifyScorecard.Scorecard, and is useful for accessing the field via an interface.

func (*AllCertifyScorecard) GetSource

GetSource returns AllCertifyScorecard.Source, and is useful for accessing the field via an interface.

type AllCertifyScorecardScorecard

type AllCertifyScorecardScorecard struct {
	// Exact timestamp when the source was last scanned (in RFC 3339 format)
	TimeScanned time.Time `json:"timeScanned"`
	// Overall Scorecard score for the source
	AggregateScore float64 `json:"aggregateScore"`
	// Individual Scorecard check scores (Branch-Protection, Code-Review, ...)
	Checks []AllCertifyScorecardScorecardChecksScorecardCheck `json:"checks"`
	// Version of the Scorecard scanner used to analyze the source
	ScorecardVersion string `json:"scorecardVersion"`
	// Commit of the Scorecards repository at the time of scanning the source
	ScorecardCommit string `json:"scorecardCommit"`
	// Document from which this attestation is generated from
	Origin string `json:"origin"`
	// GUAC collector for the document
	Collector string `json:"collector"`
}

AllCertifyScorecardScorecard includes the requested fields of the GraphQL type Scorecard. The GraphQL type's documentation follows.

Scorecard contains all of the fields present in a Scorecard attestation.

We also include fields to specify under what conditions the check was performed (time of scan, version of scanners, etc.) as well as how this information got included into GUAC (origin document and the collector for that document).

func (*AllCertifyScorecardScorecard) GetAggregateScore

func (v *AllCertifyScorecardScorecard) GetAggregateScore() float64

GetAggregateScore returns AllCertifyScorecardScorecard.AggregateScore, and is useful for accessing the field via an interface.

func (*AllCertifyScorecardScorecard) GetChecks

GetChecks returns AllCertifyScorecardScorecard.Checks, and is useful for accessing the field via an interface.

func (*AllCertifyScorecardScorecard) GetCollector

func (v *AllCertifyScorecardScorecard) GetCollector() string

GetCollector returns AllCertifyScorecardScorecard.Collector, and is useful for accessing the field via an interface.

func (*AllCertifyScorecardScorecard) GetOrigin

func (v *AllCertifyScorecardScorecard) GetOrigin() string

GetOrigin returns AllCertifyScorecardScorecard.Origin, and is useful for accessing the field via an interface.

func (*AllCertifyScorecardScorecard) GetScorecardCommit

func (v *AllCertifyScorecardScorecard) GetScorecardCommit() string

GetScorecardCommit returns AllCertifyScorecardScorecard.ScorecardCommit, and is useful for accessing the field via an interface.

func (*AllCertifyScorecardScorecard) GetScorecardVersion

func (v *AllCertifyScorecardScorecard) GetScorecardVersion() string

GetScorecardVersion returns AllCertifyScorecardScorecard.ScorecardVersion, and is useful for accessing the field via an interface.

func (*AllCertifyScorecardScorecard) GetTimeScanned

func (v *AllCertifyScorecardScorecard) GetTimeScanned() time.Time

GetTimeScanned returns AllCertifyScorecardScorecard.TimeScanned, and is useful for accessing the field via an interface.

type AllCertifyScorecardScorecardChecksScorecardCheck

type AllCertifyScorecardScorecardChecksScorecardCheck struct {
	Check string `json:"check"`
	Score int    `json:"score"`
}

AllCertifyScorecardScorecardChecksScorecardCheck includes the requested fields of the GraphQL type ScorecardCheck. The GraphQL type's documentation follows.

ScorecardCheck are the individual checks from scorecard and their values as a key-value pair.

For example: Branch-Protection, Code-Review...etc

Based off scorecard's: type jsonCheckResultV2 struct { Details []string `json:"details"` Score int `json:"score"` Reason string `json:"reason"` Name string `json:"name"` Doc jsonCheckDocumentationV2 `json:"documentation"` } This node cannot be directly referred by other parts of GUAC.

func (*AllCertifyScorecardScorecardChecksScorecardCheck) GetCheck

GetCheck returns AllCertifyScorecardScorecardChecksScorecardCheck.Check, and is useful for accessing the field via an interface.

func (*AllCertifyScorecardScorecardChecksScorecardCheck) GetScore

GetScore returns AllCertifyScorecardScorecardChecksScorecardCheck.Score, and is useful for accessing the field via an interface.

type AllCertifyScorecardSource

type AllCertifyScorecardSource struct {
	AllSourceTree `json:"-"`
}

AllCertifyScorecardSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*AllCertifyScorecardSource) GetId

func (v *AllCertifyScorecardSource) GetId() string

GetId returns AllCertifyScorecardSource.Id, and is useful for accessing the field via an interface.

func (*AllCertifyScorecardSource) GetNamespaces

GetNamespaces returns AllCertifyScorecardSource.Namespaces, and is useful for accessing the field via an interface.

func (*AllCertifyScorecardSource) GetType

func (v *AllCertifyScorecardSource) GetType() string

GetType returns AllCertifyScorecardSource.Type, and is useful for accessing the field via an interface.

func (*AllCertifyScorecardSource) MarshalJSON

func (v *AllCertifyScorecardSource) MarshalJSON() ([]byte, error)

func (*AllCertifyScorecardSource) UnmarshalJSON

func (v *AllCertifyScorecardSource) UnmarshalJSON(b []byte) error

type AllCertifyVuln

type AllCertifyVuln struct {
	Id string `json:"id"`
	// The package that is attested
	Package AllCertifyVulnPackage `json:"package"`
	// The vulnerability object. Can be an OSV, CVE, or GHSA or the special NoVuln node.
	Vulnerability AllCertifyVulnVulnerability `json:"-"`
	// Metadata attached to the certification
	Metadata AllCertifyVulnMetadataVulnerabilityMetaData `json:"metadata"`
}

AllCertifyVuln includes the GraphQL fields of CertifyVuln requested by the fragment AllCertifyVuln. The GraphQL type's documentation follows.

CertifyVuln is an attestation to attach vulnerability information to a package.

This information is obtained via a scanner. If there is no vulnerability detected (no OSV, CVE, or GHSA), we attach the special NoVuln node.

func (*AllCertifyVuln) GetId

func (v *AllCertifyVuln) GetId() string

GetId returns AllCertifyVuln.Id, and is useful for accessing the field via an interface.

func (*AllCertifyVuln) GetMetadata

GetMetadata returns AllCertifyVuln.Metadata, and is useful for accessing the field via an interface.

func (*AllCertifyVuln) GetPackage

func (v *AllCertifyVuln) GetPackage() AllCertifyVulnPackage

GetPackage returns AllCertifyVuln.Package, and is useful for accessing the field via an interface.

func (*AllCertifyVuln) GetVulnerability

func (v *AllCertifyVuln) GetVulnerability() AllCertifyVulnVulnerability

GetVulnerability returns AllCertifyVuln.Vulnerability, and is useful for accessing the field via an interface.

func (*AllCertifyVuln) MarshalJSON

func (v *AllCertifyVuln) MarshalJSON() ([]byte, error)

func (*AllCertifyVuln) UnmarshalJSON

func (v *AllCertifyVuln) UnmarshalJSON(b []byte) error

type AllCertifyVulnMetadataVulnerabilityMetaData

type AllCertifyVulnMetadataVulnerabilityMetaData struct {
	// URI of the vulnerability database used by the scanner
	DbUri string `json:"dbUri"`
	// Version of the vulnerability database used by the scanner
	DbVersion string `json:"dbVersion"`
	// URI of the scanner
	ScannerUri string `json:"scannerUri"`
	// Version of the scanner
	ScannerVersion string `json:"scannerVersion"`
	// Time of scan (in RFC 3339 format)
	TimeScanned time.Time `json:"timeScanned"`
	// Document from which this attestation is generated from
	Origin string `json:"origin"`
	// GUAC collector for the document
	Collector string `json:"collector"`
}

AllCertifyVulnMetadataVulnerabilityMetaData includes the requested fields of the GraphQL type VulnerabilityMetaData. The GraphQL type's documentation follows.

VulnerabilityMetaData is the metadata attached to vulnerability certification.

It contains metadata about the scanner process that created the certification.

func (*AllCertifyVulnMetadataVulnerabilityMetaData) GetCollector

GetCollector returns AllCertifyVulnMetadataVulnerabilityMetaData.Collector, and is useful for accessing the field via an interface.

func (*AllCertifyVulnMetadataVulnerabilityMetaData) GetDbUri

GetDbUri returns AllCertifyVulnMetadataVulnerabilityMetaData.DbUri, and is useful for accessing the field via an interface.

func (*AllCertifyVulnMetadataVulnerabilityMetaData) GetDbVersion

GetDbVersion returns AllCertifyVulnMetadataVulnerabilityMetaData.DbVersion, and is useful for accessing the field via an interface.

func (*AllCertifyVulnMetadataVulnerabilityMetaData) GetOrigin

GetOrigin returns AllCertifyVulnMetadataVulnerabilityMetaData.Origin, and is useful for accessing the field via an interface.

func (*AllCertifyVulnMetadataVulnerabilityMetaData) GetScannerUri

GetScannerUri returns AllCertifyVulnMetadataVulnerabilityMetaData.ScannerUri, and is useful for accessing the field via an interface.

func (*AllCertifyVulnMetadataVulnerabilityMetaData) GetScannerVersion

func (v *AllCertifyVulnMetadataVulnerabilityMetaData) GetScannerVersion() string

GetScannerVersion returns AllCertifyVulnMetadataVulnerabilityMetaData.ScannerVersion, and is useful for accessing the field via an interface.

func (*AllCertifyVulnMetadataVulnerabilityMetaData) GetTimeScanned

GetTimeScanned returns AllCertifyVulnMetadataVulnerabilityMetaData.TimeScanned, and is useful for accessing the field via an interface.

type AllCertifyVulnPackage

type AllCertifyVulnPackage struct {
	AllPkgTree `json:"-"`
}

AllCertifyVulnPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*AllCertifyVulnPackage) GetId

func (v *AllCertifyVulnPackage) GetId() string

GetId returns AllCertifyVulnPackage.Id, and is useful for accessing the field via an interface.

func (*AllCertifyVulnPackage) GetNamespaces

GetNamespaces returns AllCertifyVulnPackage.Namespaces, and is useful for accessing the field via an interface.

func (*AllCertifyVulnPackage) GetType

func (v *AllCertifyVulnPackage) GetType() string

GetType returns AllCertifyVulnPackage.Type, and is useful for accessing the field via an interface.

func (*AllCertifyVulnPackage) MarshalJSON

func (v *AllCertifyVulnPackage) MarshalJSON() ([]byte, error)

func (*AllCertifyVulnPackage) UnmarshalJSON

func (v *AllCertifyVulnPackage) UnmarshalJSON(b []byte) error

type AllCertifyVulnVulnerability

type AllCertifyVulnVulnerability interface {

	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() *string
	// contains filtered or unexported methods
}

AllCertifyVulnVulnerability includes the requested fields of the GraphQL interface Vulnerability.

AllCertifyVulnVulnerability is implemented by the following types: AllCertifyVulnVulnerabilityCVE AllCertifyVulnVulnerabilityGHSA AllCertifyVulnVulnerabilityNoVuln AllCertifyVulnVulnerabilityOSV The GraphQL type's documentation follows.

Vulnerability is a union of OSV, CVE, GHSA or the NoVuln node.

type AllCertifyVulnVulnerabilityCVE

type AllCertifyVulnVulnerabilityCVE struct {
	Typename   *string `json:"__typename"`
	AllCveTree `json:"-"`
}

AllCertifyVulnVulnerabilityCVE includes the requested fields of the GraphQL type CVE. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*AllCertifyVulnVulnerabilityCVE) GetCveId

func (v *AllCertifyVulnVulnerabilityCVE) GetCveId() string

GetCveId returns AllCertifyVulnVulnerabilityCVE.CveId, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityCVE) GetId

GetId returns AllCertifyVulnVulnerabilityCVE.Id, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityCVE) GetTypename

func (v *AllCertifyVulnVulnerabilityCVE) GetTypename() *string

GetTypename returns AllCertifyVulnVulnerabilityCVE.Typename, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityCVE) GetYear

func (v *AllCertifyVulnVulnerabilityCVE) GetYear() int

GetYear returns AllCertifyVulnVulnerabilityCVE.Year, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityCVE) MarshalJSON

func (v *AllCertifyVulnVulnerabilityCVE) MarshalJSON() ([]byte, error)

func (*AllCertifyVulnVulnerabilityCVE) UnmarshalJSON

func (v *AllCertifyVulnVulnerabilityCVE) UnmarshalJSON(b []byte) error

type AllCertifyVulnVulnerabilityGHSA

type AllCertifyVulnVulnerabilityGHSA struct {
	Typename    *string `json:"__typename"`
	AllGHSATree `json:"-"`
}

AllCertifyVulnVulnerabilityGHSA includes the requested fields of the GraphQL type GHSA. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*AllCertifyVulnVulnerabilityGHSA) GetGhsaId

func (v *AllCertifyVulnVulnerabilityGHSA) GetGhsaId() string

GetGhsaId returns AllCertifyVulnVulnerabilityGHSA.GhsaId, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityGHSA) GetId

GetId returns AllCertifyVulnVulnerabilityGHSA.Id, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityGHSA) GetTypename

func (v *AllCertifyVulnVulnerabilityGHSA) GetTypename() *string

GetTypename returns AllCertifyVulnVulnerabilityGHSA.Typename, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityGHSA) MarshalJSON

func (v *AllCertifyVulnVulnerabilityGHSA) MarshalJSON() ([]byte, error)

func (*AllCertifyVulnVulnerabilityGHSA) UnmarshalJSON

func (v *AllCertifyVulnVulnerabilityGHSA) UnmarshalJSON(b []byte) error

type AllCertifyVulnVulnerabilityNoVuln

type AllCertifyVulnVulnerabilityNoVuln struct {
	Typename *string `json:"__typename"`
	Id       string  `json:"id"`
}

AllCertifyVulnVulnerabilityNoVuln includes the requested fields of the GraphQL type NoVuln. The GraphQL type's documentation follows.

NoVuln is a special vulnerability node to attest that no vulnerability has been found during a vulnerability scan.

Backends guarantee that this is a singleton node.

func (*AllCertifyVulnVulnerabilityNoVuln) GetId

GetId returns AllCertifyVulnVulnerabilityNoVuln.Id, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityNoVuln) GetTypename

func (v *AllCertifyVulnVulnerabilityNoVuln) GetTypename() *string

GetTypename returns AllCertifyVulnVulnerabilityNoVuln.Typename, and is useful for accessing the field via an interface.

type AllCertifyVulnVulnerabilityOSV

type AllCertifyVulnVulnerabilityOSV struct {
	Typename   *string `json:"__typename"`
	AllOSVTree `json:"-"`
}

AllCertifyVulnVulnerabilityOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*AllCertifyVulnVulnerabilityOSV) GetId

GetId returns AllCertifyVulnVulnerabilityOSV.Id, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityOSV) GetOsvId

func (v *AllCertifyVulnVulnerabilityOSV) GetOsvId() string

GetOsvId returns AllCertifyVulnVulnerabilityOSV.OsvId, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityOSV) GetTypename

func (v *AllCertifyVulnVulnerabilityOSV) GetTypename() *string

GetTypename returns AllCertifyVulnVulnerabilityOSV.Typename, and is useful for accessing the field via an interface.

func (*AllCertifyVulnVulnerabilityOSV) MarshalJSON

func (v *AllCertifyVulnVulnerabilityOSV) MarshalJSON() ([]byte, error)

func (*AllCertifyVulnVulnerabilityOSV) UnmarshalJSON

func (v *AllCertifyVulnVulnerabilityOSV) UnmarshalJSON(b []byte) error

type AllCveTree

type AllCveTree struct {
	Id    string `json:"id"`
	Year  int    `json:"year"`
	CveId string `json:"cveId"`
}

AllCveTree includes the GraphQL fields of CVE requested by the fragment AllCveTree. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*AllCveTree) GetCveId

func (v *AllCveTree) GetCveId() string

GetCveId returns AllCveTree.CveId, and is useful for accessing the field via an interface.

func (*AllCveTree) GetId

func (v *AllCveTree) GetId() string

GetId returns AllCveTree.Id, and is useful for accessing the field via an interface.

func (*AllCveTree) GetYear

func (v *AllCveTree) GetYear() int

GetYear returns AllCveTree.Year, and is useful for accessing the field via an interface.

type AllGHSATree

type AllGHSATree struct {
	Id     string `json:"id"`
	GhsaId string `json:"ghsaId"`
}

AllGHSATree includes the GraphQL fields of GHSA requested by the fragment AllGHSATree. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*AllGHSATree) GetGhsaId

func (v *AllGHSATree) GetGhsaId() string

GetGhsaId returns AllGHSATree.GhsaId, and is useful for accessing the field via an interface.

func (*AllGHSATree) GetId

func (v *AllGHSATree) GetId() string

GetId returns AllGHSATree.Id, and is useful for accessing the field via an interface.

type AllIsOccurrencesTree

type AllIsOccurrencesTree struct {
	Id string `json:"id"`
	// Package or source from which the artifact originates
	Subject AllIsOccurrencesTreeSubjectPackageOrSource `json:"-"`
	// The artifact in the relationship
	Artifact AllIsOccurrencesTreeArtifact `json:"artifact"`
	// Justification for the attested relationship
	Justification string `json:"justification"`
	// Document from which this attestation is generated from
	Origin string `json:"origin"`
	// GUAC collector for the document
	Collector string `json:"collector"`
}

AllIsOccurrencesTree includes the GraphQL fields of IsOccurrence requested by the fragment AllIsOccurrencesTree. The GraphQL type's documentation follows.

IsOccurrence is an attestation to link an artifact to a package or source.

Attestation must occur at the PackageVersion or at the SourceName.

func (*AllIsOccurrencesTree) GetArtifact

GetArtifact returns AllIsOccurrencesTree.Artifact, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTree) GetCollector

func (v *AllIsOccurrencesTree) GetCollector() string

GetCollector returns AllIsOccurrencesTree.Collector, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTree) GetId

func (v *AllIsOccurrencesTree) GetId() string

GetId returns AllIsOccurrencesTree.Id, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTree) GetJustification

func (v *AllIsOccurrencesTree) GetJustification() string

GetJustification returns AllIsOccurrencesTree.Justification, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTree) GetOrigin

func (v *AllIsOccurrencesTree) GetOrigin() string

GetOrigin returns AllIsOccurrencesTree.Origin, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTree) GetSubject

GetSubject returns AllIsOccurrencesTree.Subject, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTree) MarshalJSON

func (v *AllIsOccurrencesTree) MarshalJSON() ([]byte, error)

func (*AllIsOccurrencesTree) UnmarshalJSON

func (v *AllIsOccurrencesTree) UnmarshalJSON(b []byte) error

type AllIsOccurrencesTreeArtifact

type AllIsOccurrencesTreeArtifact struct {
	AllArtifactTree `json:"-"`
}

AllIsOccurrencesTreeArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*AllIsOccurrencesTreeArtifact) GetAlgorithm

func (v *AllIsOccurrencesTreeArtifact) GetAlgorithm() string

GetAlgorithm returns AllIsOccurrencesTreeArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeArtifact) GetDigest

func (v *AllIsOccurrencesTreeArtifact) GetDigest() string

GetDigest returns AllIsOccurrencesTreeArtifact.Digest, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeArtifact) GetId

GetId returns AllIsOccurrencesTreeArtifact.Id, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeArtifact) MarshalJSON

func (v *AllIsOccurrencesTreeArtifact) MarshalJSON() ([]byte, error)

func (*AllIsOccurrencesTreeArtifact) UnmarshalJSON

func (v *AllIsOccurrencesTreeArtifact) UnmarshalJSON(b []byte) error

type AllIsOccurrencesTreeSubjectPackage

type AllIsOccurrencesTreeSubjectPackage struct {
	Typename   *string `json:"__typename"`
	AllPkgTree `json:"-"`
}

AllIsOccurrencesTreeSubjectPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*AllIsOccurrencesTreeSubjectPackage) GetId

GetId returns AllIsOccurrencesTreeSubjectPackage.Id, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeSubjectPackage) GetNamespaces

GetNamespaces returns AllIsOccurrencesTreeSubjectPackage.Namespaces, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeSubjectPackage) GetType

GetType returns AllIsOccurrencesTreeSubjectPackage.Type, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeSubjectPackage) GetTypename

func (v *AllIsOccurrencesTreeSubjectPackage) GetTypename() *string

GetTypename returns AllIsOccurrencesTreeSubjectPackage.Typename, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeSubjectPackage) MarshalJSON

func (v *AllIsOccurrencesTreeSubjectPackage) MarshalJSON() ([]byte, error)

func (*AllIsOccurrencesTreeSubjectPackage) UnmarshalJSON

func (v *AllIsOccurrencesTreeSubjectPackage) UnmarshalJSON(b []byte) error

type AllIsOccurrencesTreeSubjectPackageOrSource

type AllIsOccurrencesTreeSubjectPackageOrSource interface {

	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() *string
	// contains filtered or unexported methods
}

AllIsOccurrencesTreeSubjectPackageOrSource includes the requested fields of the GraphQL interface PackageOrSource.

AllIsOccurrencesTreeSubjectPackageOrSource is implemented by the following types: AllIsOccurrencesTreeSubjectPackage AllIsOccurrencesTreeSubjectSource The GraphQL type's documentation follows.

PackageOrSource is a union of Package and Source.

type AllIsOccurrencesTreeSubjectSource

type AllIsOccurrencesTreeSubjectSource struct {
	Typename      *string `json:"__typename"`
	AllSourceTree `json:"-"`
}

AllIsOccurrencesTreeSubjectSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*AllIsOccurrencesTreeSubjectSource) GetId

GetId returns AllIsOccurrencesTreeSubjectSource.Id, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeSubjectSource) GetNamespaces

GetNamespaces returns AllIsOccurrencesTreeSubjectSource.Namespaces, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeSubjectSource) GetType

GetType returns AllIsOccurrencesTreeSubjectSource.Type, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeSubjectSource) GetTypename

func (v *AllIsOccurrencesTreeSubjectSource) GetTypename() *string

GetTypename returns AllIsOccurrencesTreeSubjectSource.Typename, and is useful for accessing the field via an interface.

func (*AllIsOccurrencesTreeSubjectSource) MarshalJSON

func (v *AllIsOccurrencesTreeSubjectSource) MarshalJSON() ([]byte, error)

func (*AllIsOccurrencesTreeSubjectSource) UnmarshalJSON

func (v *AllIsOccurrencesTreeSubjectSource) UnmarshalJSON(b []byte) error

type AllOSVTree

type AllOSVTree struct {
	Id    string `json:"id"`
	OsvId string `json:"osvId"`
}

AllOSVTree includes the GraphQL fields of OSV requested by the fragment AllOSVTree. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*AllOSVTree) GetId

func (v *AllOSVTree) GetId() string

GetId returns AllOSVTree.Id, and is useful for accessing the field via an interface.

func (*AllOSVTree) GetOsvId

func (v *AllOSVTree) GetOsvId() string

GetOsvId returns AllOSVTree.OsvId, and is useful for accessing the field via an interface.

type AllPkgTree

type AllPkgTree struct {
	Id         string                                 `json:"id"`
	Type       string                                 `json:"type"`
	Namespaces []AllPkgTreeNamespacesPackageNamespace `json:"namespaces"`
}

AllPkgTree includes the GraphQL fields of Package requested by the fragment AllPkgTree. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*AllPkgTree) GetId

func (v *AllPkgTree) GetId() string

GetId returns AllPkgTree.Id, and is useful for accessing the field via an interface.

func (*AllPkgTree) GetNamespaces

func (v *AllPkgTree) GetNamespaces() []AllPkgTreeNamespacesPackageNamespace

GetNamespaces returns AllPkgTree.Namespaces, and is useful for accessing the field via an interface.

func (*AllPkgTree) GetType

func (v *AllPkgTree) GetType() string

GetType returns AllPkgTree.Type, and is useful for accessing the field via an interface.

type AllPkgTreeNamespacesPackageNamespace

type AllPkgTreeNamespacesPackageNamespace struct {
	Id        string                                                 `json:"id"`
	Namespace string                                                 `json:"namespace"`
	Names     []AllPkgTreeNamespacesPackageNamespaceNamesPackageName `json:"names"`
}

AllPkgTreeNamespacesPackageNamespace includes the requested fields of the GraphQL type PackageNamespace. The GraphQL type's documentation follows.

PackageNamespace is a namespace for packages.

In the pURL representation, each PackageNamespace matches the pkg:<type>/<namespace>/ partial pURL.

Namespaces are optional and type specific. Because they are optional, we use empty string to denote missing namespaces.

func (*AllPkgTreeNamespacesPackageNamespace) GetId

GetId returns AllPkgTreeNamespacesPackageNamespace.Id, and is useful for accessing the field via an interface.

func (*AllPkgTreeNamespacesPackageNamespace) GetNames

GetNames returns AllPkgTreeNamespacesPackageNamespace.Names, and is useful for accessing the field via an interface.

func (*AllPkgTreeNamespacesPackageNamespace) GetNamespace

func (v *AllPkgTreeNamespacesPackageNamespace) GetNamespace() string

GetNamespace returns AllPkgTreeNamespacesPackageNamespace.Namespace, and is useful for accessing the field via an interface.

type AllPkgTreeNamespacesPackageNamespaceNamesPackageName

type AllPkgTreeNamespacesPackageNamespaceNamesPackageName struct {
	Id       string                                                                       `json:"id"`
	Name     string                                                                       `json:"name"`
	Versions []AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion `json:"versions"`
}

AllPkgTreeNamespacesPackageNamespaceNamesPackageName includes the requested fields of the GraphQL type PackageName. The GraphQL type's documentation follows.

PackageName is a name for packages.

In the pURL representation, each PackageName matches the pkg:<type>/<namespace>/<name> pURL.

Names are always mandatory.

This is the first node in the trie that can be referred to by other parts of GUAC.

func (*AllPkgTreeNamespacesPackageNamespaceNamesPackageName) GetId

GetId returns AllPkgTreeNamespacesPackageNamespaceNamesPackageName.Id, and is useful for accessing the field via an interface.

func (*AllPkgTreeNamespacesPackageNamespaceNamesPackageName) GetName

GetName returns AllPkgTreeNamespacesPackageNamespaceNamesPackageName.Name, and is useful for accessing the field via an interface.

func (*AllPkgTreeNamespacesPackageNamespaceNamesPackageName) GetVersions

GetVersions returns AllPkgTreeNamespacesPackageNamespaceNamesPackageName.Versions, and is useful for accessing the field via an interface.

type AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion

type AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion struct {
	Id         string                                                                                                 `json:"id"`
	Version    string                                                                                                 `json:"version"`
	Qualifiers []AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersionQualifiersPackageQualifier `json:"qualifiers"`
	Subpath    string                                                                                                 `json:"subpath"`
}

AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion includes the requested fields of the GraphQL type PackageVersion. The GraphQL type's documentation follows.

PackageVersion is a package version.

In the pURL representation, each PackageName matches the pkg:<type>/<namespace>/<name>@<version> pURL.

Versions are optional and each Package type defines own rules for handling them. For this level of GUAC, these are just opaque strings.

NOTE: The handling of versions might change before this schema becomes stable.

This node can be referred to by other parts of GUAC.

Subpath and qualifiers are optional. Lack of qualifiers is represented by an empty list and lack of subpath by empty string (to be consistent with optionality of namespace and version). Two nodes that have different qualifiers and/or subpath but the same version mean two different packages in the trie (they are different). Two nodes that have same version but qualifiers of one are a subset of the qualifier of the other also mean two different packages in the trie.

func (*AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion) GetId

GetId returns AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion.Id, and is useful for accessing the field via an interface.

func (*AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion) GetQualifiers

GetQualifiers returns AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion.Qualifiers, and is useful for accessing the field via an interface.

func (*AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion) GetSubpath

GetSubpath returns AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion.Subpath, and is useful for accessing the field via an interface.

func (*AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion) GetVersion

GetVersion returns AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersion.Version, and is useful for accessing the field via an interface.

type AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersionQualifiersPackageQualifier

type AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersionQualifiersPackageQualifier struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersionQualifiersPackageQualifier includes the requested fields of the GraphQL type PackageQualifier. The GraphQL type's documentation follows.

PackageQualifier is a qualifier for a package, a key-value pair.

In the pURL representation, it is a part of the <qualifiers> part of the pkg:<type>/<namespace>/<name>@<version>?<qualifiers> pURL.

Qualifiers are optional, each Package type defines own rules for handling them, and multiple qualifiers could be attached to the same package.

This node cannot be directly referred by other parts of GUAC.

func (*AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersionQualifiersPackageQualifier) GetKey

GetKey returns AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersionQualifiersPackageQualifier.Key, and is useful for accessing the field via an interface.

func (*AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersionQualifiersPackageQualifier) GetValue

GetValue returns AllPkgTreeNamespacesPackageNamespaceNamesPackageNameVersionsPackageVersionQualifiersPackageQualifier.Value, and is useful for accessing the field via an interface.

type AllSourceTree

type AllSourceTree struct {
	Id         string                                   `json:"id"`
	Type       string                                   `json:"type"`
	Namespaces []AllSourceTreeNamespacesSourceNamespace `json:"namespaces"`
}

AllSourceTree includes the GraphQL fields of Source requested by the fragment AllSourceTree. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*AllSourceTree) GetId

func (v *AllSourceTree) GetId() string

GetId returns AllSourceTree.Id, and is useful for accessing the field via an interface.

func (*AllSourceTree) GetNamespaces

GetNamespaces returns AllSourceTree.Namespaces, and is useful for accessing the field via an interface.

func (*AllSourceTree) GetType

func (v *AllSourceTree) GetType() string

GetType returns AllSourceTree.Type, and is useful for accessing the field via an interface.

type AllSourceTreeNamespacesSourceNamespace

type AllSourceTreeNamespacesSourceNamespace struct {
	Id        string                                                  `json:"id"`
	Namespace string                                                  `json:"namespace"`
	Names     []AllSourceTreeNamespacesSourceNamespaceNamesSourceName `json:"names"`
}

AllSourceTreeNamespacesSourceNamespace includes the requested fields of the GraphQL type SourceNamespace. The GraphQL type's documentation follows.

SourceNamespace is a namespace for sources.

This is the location of the repository (such as github/gitlab/bitbucket).

The namespace field is mandatory.

func (*AllSourceTreeNamespacesSourceNamespace) GetId

GetId returns AllSourceTreeNamespacesSourceNamespace.Id, and is useful for accessing the field via an interface.

func (*AllSourceTreeNamespacesSourceNamespace) GetNames

GetNames returns AllSourceTreeNamespacesSourceNamespace.Names, and is useful for accessing the field via an interface.

func (*AllSourceTreeNamespacesSourceNamespace) GetNamespace

GetNamespace returns AllSourceTreeNamespacesSourceNamespace.Namespace, and is useful for accessing the field via an interface.

type AllSourceTreeNamespacesSourceNamespaceNamesSourceName

type AllSourceTreeNamespacesSourceNamespaceNamesSourceName struct {
	Id     string  `json:"id"`
	Name   string  `json:"name"`
	Tag    *string `json:"tag"`
	Commit *string `json:"commit"`
}

AllSourceTreeNamespacesSourceNamespaceNamesSourceName includes the requested fields of the GraphQL type SourceName. The GraphQL type's documentation follows.

SourceName represents the url of the repository.

The name field is mandatory. The tag and commit fields are optional, but it is an error to specify both.

This is the only source trie node that can be referenced by other parts of GUAC.

func (*AllSourceTreeNamespacesSourceNamespaceNamesSourceName) GetCommit

GetCommit returns AllSourceTreeNamespacesSourceNamespaceNamesSourceName.Commit, and is useful for accessing the field via an interface.

func (*AllSourceTreeNamespacesSourceNamespaceNamesSourceName) GetId

GetId returns AllSourceTreeNamespacesSourceNamespaceNamesSourceName.Id, and is useful for accessing the field via an interface.

func (*AllSourceTreeNamespacesSourceNamespaceNamesSourceName) GetName

GetName returns AllSourceTreeNamespacesSourceNamespaceNamesSourceName.Name, and is useful for accessing the field via an interface.

func (*AllSourceTreeNamespacesSourceNamespaceNamesSourceName) GetTag

GetTag returns AllSourceTreeNamespacesSourceNamespaceNamesSourceName.Tag, and is useful for accessing the field via an interface.

type AnnotationInputSpec

type AnnotationInputSpec struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

AnnotationInputSpec allows ingesting Annotation objects.

func (*AnnotationInputSpec) GetKey

func (v *AnnotationInputSpec) GetKey() string

GetKey returns AnnotationInputSpec.Key, and is useful for accessing the field via an interface.

func (*AnnotationInputSpec) GetValue

func (v *AnnotationInputSpec) GetValue() string

GetValue returns AnnotationInputSpec.Value, and is useful for accessing the field via an interface.

type ArtifactInputSpec

type ArtifactInputSpec struct {
	Algorithm string `json:"algorithm"`
	Digest    string `json:"digest"`
}

ArtifactInputSpec specifies an artifact for mutations.

The checksum fields are canonicalized to be lowercase.

func (*ArtifactInputSpec) GetAlgorithm

func (v *ArtifactInputSpec) GetAlgorithm() string

GetAlgorithm returns ArtifactInputSpec.Algorithm, and is useful for accessing the field via an interface.

func (*ArtifactInputSpec) GetDigest

func (v *ArtifactInputSpec) GetDigest() string

GetDigest returns ArtifactInputSpec.Digest, and is useful for accessing the field via an interface.

type ArtifactSpec

type ArtifactSpec struct {
	Id        *string `json:"id"`
	Algorithm *string `json:"algorithm"`
	Digest    *string `json:"digest"`
}

ArtifactSpec allows filtering the list of artifacts to return in a query.

The checksum fields are canonicalized to be lowercase.

func (*ArtifactSpec) GetAlgorithm

func (v *ArtifactSpec) GetAlgorithm() *string

GetAlgorithm returns ArtifactSpec.Algorithm, and is useful for accessing the field via an interface.

func (*ArtifactSpec) GetDigest

func (v *ArtifactSpec) GetDigest() *string

GetDigest returns ArtifactSpec.Digest, and is useful for accessing the field via an interface.

func (*ArtifactSpec) GetId

func (v *ArtifactSpec) GetId() *string

GetId returns ArtifactSpec.Id, and is useful for accessing the field via an interface.

type ArtifactsArtifactsArtifact

type ArtifactsArtifactsArtifact struct {
	AllArtifactTree `json:"-"`
}

ArtifactsArtifactsArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*ArtifactsArtifactsArtifact) GetAlgorithm

func (v *ArtifactsArtifactsArtifact) GetAlgorithm() string

GetAlgorithm returns ArtifactsArtifactsArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*ArtifactsArtifactsArtifact) GetDigest

func (v *ArtifactsArtifactsArtifact) GetDigest() string

GetDigest returns ArtifactsArtifactsArtifact.Digest, and is useful for accessing the field via an interface.

func (*ArtifactsArtifactsArtifact) GetId

GetId returns ArtifactsArtifactsArtifact.Id, and is useful for accessing the field via an interface.

func (*ArtifactsArtifactsArtifact) MarshalJSON

func (v *ArtifactsArtifactsArtifact) MarshalJSON() ([]byte, error)

func (*ArtifactsArtifactsArtifact) UnmarshalJSON

func (v *ArtifactsArtifactsArtifact) UnmarshalJSON(b []byte) error

type ArtifactsResponse

type ArtifactsResponse struct {
	// Returns all artifacts matching a filter.
	Artifacts []ArtifactsArtifactsArtifact `json:"artifacts"`
}

ArtifactsResponse is returned by Artifacts on success.

func Artifacts

func Artifacts(
	ctx context.Context,
	client graphql.Client,
	filter *ArtifactSpec,
) (*ArtifactsResponse, error)

func (*ArtifactsResponse) GetArtifacts

func (v *ArtifactsResponse) GetArtifacts() []ArtifactsArtifactsArtifact

GetArtifacts returns ArtifactsResponse.Artifacts, and is useful for accessing the field via an interface.

type BuilderInputSpec

type BuilderInputSpec struct {
	Uri string `json:"uri"`
}

BuilderInputSpec specifies a builder for mutations.

func (*BuilderInputSpec) GetUri

func (v *BuilderInputSpec) GetUri() string

GetUri returns BuilderInputSpec.Uri, and is useful for accessing the field via an interface.

type CVEInputSpec

type CVEInputSpec struct {
	Year  int    `json:"year"`
	CveId string `json:"cveId"`
}

CVEInputSpec specifies a CVE vulnerability for mutations.

func (*CVEInputSpec) GetCveId

func (v *CVEInputSpec) GetCveId() string

GetCveId returns CVEInputSpec.CveId, and is useful for accessing the field via an interface.

func (*CVEInputSpec) GetYear

func (v *CVEInputSpec) GetYear() int

GetYear returns CVEInputSpec.Year, and is useful for accessing the field via an interface.

type CVESpec

type CVESpec struct {
	Id    *string `json:"id"`
	Year  *int    `json:"year"`
	CveId *string `json:"cveId"`
}

CVESpec allows filtering the list of advisories to return in a query.

func (*CVESpec) GetCveId

func (v *CVESpec) GetCveId() *string

GetCveId returns CVESpec.CveId, and is useful for accessing the field via an interface.

func (*CVESpec) GetId

func (v *CVESpec) GetId() *string

GetId returns CVESpec.Id, and is useful for accessing the field via an interface.

func (*CVESpec) GetYear

func (v *CVESpec) GetYear() *int

GetYear returns CVESpec.Year, and is useful for accessing the field via an interface.

type CVEsCveCVE

type CVEsCveCVE struct {
	AllCveTree `json:"-"`
}

CVEsCveCVE includes the requested fields of the GraphQL type CVE. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*CVEsCveCVE) GetCveId

func (v *CVEsCveCVE) GetCveId() string

GetCveId returns CVEsCveCVE.CveId, and is useful for accessing the field via an interface.

func (*CVEsCveCVE) GetId

func (v *CVEsCveCVE) GetId() string

GetId returns CVEsCveCVE.Id, and is useful for accessing the field via an interface.

func (*CVEsCveCVE) GetYear

func (v *CVEsCveCVE) GetYear() int

GetYear returns CVEsCveCVE.Year, and is useful for accessing the field via an interface.

func (*CVEsCveCVE) MarshalJSON

func (v *CVEsCveCVE) MarshalJSON() ([]byte, error)

func (*CVEsCveCVE) UnmarshalJSON

func (v *CVEsCveCVE) UnmarshalJSON(b []byte) error

type CVEsResponse

type CVEsResponse struct {
	// Returns all CVEs matching a filter.
	Cve []CVEsCveCVE `json:"cve"`
}

CVEsResponse is returned by CVEs on success.

func CVEs

func CVEs(
	ctx context.Context,
	client graphql.Client,
	filter *CVESpec,
) (*CVEsResponse, error)

func (*CVEsResponse) GetCve

func (v *CVEsResponse) GetCve() []CVEsCveCVE

GetCve returns CVEsResponse.Cve, and is useful for accessing the field via an interface.

type CertifyBadArtifactIngestArtifact

type CertifyBadArtifactIngestArtifact struct {
	AllArtifactTree `json:"-"`
}

CertifyBadArtifactIngestArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*CertifyBadArtifactIngestArtifact) GetAlgorithm

func (v *CertifyBadArtifactIngestArtifact) GetAlgorithm() string

GetAlgorithm returns CertifyBadArtifactIngestArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*CertifyBadArtifactIngestArtifact) GetDigest

GetDigest returns CertifyBadArtifactIngestArtifact.Digest, and is useful for accessing the field via an interface.

func (*CertifyBadArtifactIngestArtifact) GetId

GetId returns CertifyBadArtifactIngestArtifact.Id, and is useful for accessing the field via an interface.

func (*CertifyBadArtifactIngestArtifact) MarshalJSON

func (v *CertifyBadArtifactIngestArtifact) MarshalJSON() ([]byte, error)

func (*CertifyBadArtifactIngestArtifact) UnmarshalJSON

func (v *CertifyBadArtifactIngestArtifact) UnmarshalJSON(b []byte) error

type CertifyBadArtifactIngestCertifyBad

type CertifyBadArtifactIngestCertifyBad struct {
	AllCertifyBad `json:"-"`
}

CertifyBadArtifactIngestCertifyBad includes the requested fields of the GraphQL type CertifyBad. The GraphQL type's documentation follows.

CertifyBad is an attestation that a package, source, or artifact is considered bad.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*CertifyBadArtifactIngestCertifyBad) GetCollector

func (v *CertifyBadArtifactIngestCertifyBad) GetCollector() string

GetCollector returns CertifyBadArtifactIngestCertifyBad.Collector, and is useful for accessing the field via an interface.

func (*CertifyBadArtifactIngestCertifyBad) GetId

GetId returns CertifyBadArtifactIngestCertifyBad.Id, and is useful for accessing the field via an interface.

func (*CertifyBadArtifactIngestCertifyBad) GetJustification

func (v *CertifyBadArtifactIngestCertifyBad) GetJustification() string

GetJustification returns CertifyBadArtifactIngestCertifyBad.Justification, and is useful for accessing the field via an interface.

func (*CertifyBadArtifactIngestCertifyBad) GetOrigin

GetOrigin returns CertifyBadArtifactIngestCertifyBad.Origin, and is useful for accessing the field via an interface.

func (*CertifyBadArtifactIngestCertifyBad) GetSubject

GetSubject returns CertifyBadArtifactIngestCertifyBad.Subject, and is useful for accessing the field via an interface.

func (*CertifyBadArtifactIngestCertifyBad) MarshalJSON

func (v *CertifyBadArtifactIngestCertifyBad) MarshalJSON() ([]byte, error)

func (*CertifyBadArtifactIngestCertifyBad) UnmarshalJSON

func (v *CertifyBadArtifactIngestCertifyBad) UnmarshalJSON(b []byte) error

type CertifyBadArtifactResponse

type CertifyBadArtifactResponse struct {
	// Ingests a new artifact and returns it.
	IngestArtifact CertifyBadArtifactIngestArtifact `json:"ingestArtifact"`
	// Adds a certification that a package, source or artifact is considered bad.
	IngestCertifyBad CertifyBadArtifactIngestCertifyBad `json:"ingestCertifyBad"`
}

CertifyBadArtifactResponse is returned by CertifyBadArtifact on success.

func CertifyBadArtifact

func CertifyBadArtifact(
	ctx context.Context,
	client graphql.Client,
	artifact ArtifactInputSpec,
	certifyBad CertifyBadInputSpec,
) (*CertifyBadArtifactResponse, error)

func (*CertifyBadArtifactResponse) GetIngestArtifact

GetIngestArtifact returns CertifyBadArtifactResponse.IngestArtifact, and is useful for accessing the field via an interface.

func (*CertifyBadArtifactResponse) GetIngestCertifyBad

GetIngestCertifyBad returns CertifyBadArtifactResponse.IngestCertifyBad, and is useful for accessing the field via an interface.

type CertifyBadInputSpec

type CertifyBadInputSpec struct {
	Justification string `json:"justification"`
	Origin        string `json:"origin"`
	Collector     string `json:"collector"`
}

CertifyBadInputSpec represents the mutation input to ingest a CertifyBad evidence.

func (*CertifyBadInputSpec) GetCollector

func (v *CertifyBadInputSpec) GetCollector() string

GetCollector returns CertifyBadInputSpec.Collector, and is useful for accessing the field via an interface.

func (*CertifyBadInputSpec) GetJustification

func (v *CertifyBadInputSpec) GetJustification() string

GetJustification returns CertifyBadInputSpec.Justification, and is useful for accessing the field via an interface.

func (*CertifyBadInputSpec) GetOrigin

func (v *CertifyBadInputSpec) GetOrigin() string

GetOrigin returns CertifyBadInputSpec.Origin, and is useful for accessing the field via an interface.

type CertifyBadPkgIngestCertifyBad

type CertifyBadPkgIngestCertifyBad struct {
	AllCertifyBad `json:"-"`
}

CertifyBadPkgIngestCertifyBad includes the requested fields of the GraphQL type CertifyBad. The GraphQL type's documentation follows.

CertifyBad is an attestation that a package, source, or artifact is considered bad.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*CertifyBadPkgIngestCertifyBad) GetCollector

func (v *CertifyBadPkgIngestCertifyBad) GetCollector() string

GetCollector returns CertifyBadPkgIngestCertifyBad.Collector, and is useful for accessing the field via an interface.

func (*CertifyBadPkgIngestCertifyBad) GetId

GetId returns CertifyBadPkgIngestCertifyBad.Id, and is useful for accessing the field via an interface.

func (*CertifyBadPkgIngestCertifyBad) GetJustification

func (v *CertifyBadPkgIngestCertifyBad) GetJustification() string

GetJustification returns CertifyBadPkgIngestCertifyBad.Justification, and is useful for accessing the field via an interface.

func (*CertifyBadPkgIngestCertifyBad) GetOrigin

func (v *CertifyBadPkgIngestCertifyBad) GetOrigin() string

GetOrigin returns CertifyBadPkgIngestCertifyBad.Origin, and is useful for accessing the field via an interface.

func (*CertifyBadPkgIngestCertifyBad) GetSubject

GetSubject returns CertifyBadPkgIngestCertifyBad.Subject, and is useful for accessing the field via an interface.

func (*CertifyBadPkgIngestCertifyBad) MarshalJSON

func (v *CertifyBadPkgIngestCertifyBad) MarshalJSON() ([]byte, error)

func (*CertifyBadPkgIngestCertifyBad) UnmarshalJSON

func (v *CertifyBadPkgIngestCertifyBad) UnmarshalJSON(b []byte) error

type CertifyBadPkgIngestPackage

type CertifyBadPkgIngestPackage struct {
	AllPkgTree `json:"-"`
}

CertifyBadPkgIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*CertifyBadPkgIngestPackage) GetId

GetId returns CertifyBadPkgIngestPackage.Id, and is useful for accessing the field via an interface.

func (*CertifyBadPkgIngestPackage) GetNamespaces

GetNamespaces returns CertifyBadPkgIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*CertifyBadPkgIngestPackage) GetType

func (v *CertifyBadPkgIngestPackage) GetType() string

GetType returns CertifyBadPkgIngestPackage.Type, and is useful for accessing the field via an interface.

func (*CertifyBadPkgIngestPackage) MarshalJSON

func (v *CertifyBadPkgIngestPackage) MarshalJSON() ([]byte, error)

func (*CertifyBadPkgIngestPackage) UnmarshalJSON

func (v *CertifyBadPkgIngestPackage) UnmarshalJSON(b []byte) error

type CertifyBadPkgResponse

type CertifyBadPkgResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage CertifyBadPkgIngestPackage `json:"ingestPackage"`
	// Adds a certification that a package, source or artifact is considered bad.
	IngestCertifyBad CertifyBadPkgIngestCertifyBad `json:"ingestCertifyBad"`
}

CertifyBadPkgResponse is returned by CertifyBadPkg on success.

func CertifyBadPkg

func CertifyBadPkg(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	pkgMatchType *MatchFlags,
	certifyBad CertifyBadInputSpec,
) (*CertifyBadPkgResponse, error)

func (*CertifyBadPkgResponse) GetIngestCertifyBad

func (v *CertifyBadPkgResponse) GetIngestCertifyBad() CertifyBadPkgIngestCertifyBad

GetIngestCertifyBad returns CertifyBadPkgResponse.IngestCertifyBad, and is useful for accessing the field via an interface.

func (*CertifyBadPkgResponse) GetIngestPackage

func (v *CertifyBadPkgResponse) GetIngestPackage() CertifyBadPkgIngestPackage

GetIngestPackage returns CertifyBadPkgResponse.IngestPackage, and is useful for accessing the field via an interface.

type CertifyBadSpec

type CertifyBadSpec struct {
	Id            *string                      `json:"id"`
	Subject       *PackageSourceOrArtifactSpec `json:"subject"`
	Justification *string                      `json:"justification"`
	Origin        *string                      `json:"origin"`
	Collector     *string                      `json:"collector"`
}

CertifyBadSpec allows filtering the list of CertifyBad evidence to return in a query.

If a package is specified in the subject filter, then it must be specified up to PackageName or PackageVersion. That is, user must specify package name, or name and one of version, qualifiers, or subpath.

If a source is specified in the subject filter, then it must specify a name, and optionally a tag and a commit.

func (*CertifyBadSpec) GetCollector

func (v *CertifyBadSpec) GetCollector() *string

GetCollector returns CertifyBadSpec.Collector, and is useful for accessing the field via an interface.

func (*CertifyBadSpec) GetId

func (v *CertifyBadSpec) GetId() *string

GetId returns CertifyBadSpec.Id, and is useful for accessing the field via an interface.

func (*CertifyBadSpec) GetJustification

func (v *CertifyBadSpec) GetJustification() *string

GetJustification returns CertifyBadSpec.Justification, and is useful for accessing the field via an interface.

func (*CertifyBadSpec) GetOrigin

func (v *CertifyBadSpec) GetOrigin() *string

GetOrigin returns CertifyBadSpec.Origin, and is useful for accessing the field via an interface.

func (*CertifyBadSpec) GetSubject

GetSubject returns CertifyBadSpec.Subject, and is useful for accessing the field via an interface.

type CertifyBadSrcIngestCertifyBad

type CertifyBadSrcIngestCertifyBad struct {
	AllCertifyBad `json:"-"`
}

CertifyBadSrcIngestCertifyBad includes the requested fields of the GraphQL type CertifyBad. The GraphQL type's documentation follows.

CertifyBad is an attestation that a package, source, or artifact is considered bad.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*CertifyBadSrcIngestCertifyBad) GetCollector

func (v *CertifyBadSrcIngestCertifyBad) GetCollector() string

GetCollector returns CertifyBadSrcIngestCertifyBad.Collector, and is useful for accessing the field via an interface.

func (*CertifyBadSrcIngestCertifyBad) GetId

GetId returns CertifyBadSrcIngestCertifyBad.Id, and is useful for accessing the field via an interface.

func (*CertifyBadSrcIngestCertifyBad) GetJustification

func (v *CertifyBadSrcIngestCertifyBad) GetJustification() string

GetJustification returns CertifyBadSrcIngestCertifyBad.Justification, and is useful for accessing the field via an interface.

func (*CertifyBadSrcIngestCertifyBad) GetOrigin

func (v *CertifyBadSrcIngestCertifyBad) GetOrigin() string

GetOrigin returns CertifyBadSrcIngestCertifyBad.Origin, and is useful for accessing the field via an interface.

func (*CertifyBadSrcIngestCertifyBad) GetSubject

GetSubject returns CertifyBadSrcIngestCertifyBad.Subject, and is useful for accessing the field via an interface.

func (*CertifyBadSrcIngestCertifyBad) MarshalJSON

func (v *CertifyBadSrcIngestCertifyBad) MarshalJSON() ([]byte, error)

func (*CertifyBadSrcIngestCertifyBad) UnmarshalJSON

func (v *CertifyBadSrcIngestCertifyBad) UnmarshalJSON(b []byte) error

type CertifyBadSrcIngestSource

type CertifyBadSrcIngestSource struct {
	AllSourceTree `json:"-"`
}

CertifyBadSrcIngestSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*CertifyBadSrcIngestSource) GetId

func (v *CertifyBadSrcIngestSource) GetId() string

GetId returns CertifyBadSrcIngestSource.Id, and is useful for accessing the field via an interface.

func (*CertifyBadSrcIngestSource) GetNamespaces

GetNamespaces returns CertifyBadSrcIngestSource.Namespaces, and is useful for accessing the field via an interface.

func (*CertifyBadSrcIngestSource) GetType

func (v *CertifyBadSrcIngestSource) GetType() string

GetType returns CertifyBadSrcIngestSource.Type, and is useful for accessing the field via an interface.

func (*CertifyBadSrcIngestSource) MarshalJSON

func (v *CertifyBadSrcIngestSource) MarshalJSON() ([]byte, error)

func (*CertifyBadSrcIngestSource) UnmarshalJSON

func (v *CertifyBadSrcIngestSource) UnmarshalJSON(b []byte) error

type CertifyBadSrcResponse

type CertifyBadSrcResponse struct {
	// Ingests a new source and returns the corresponding source trie path.
	IngestSource CertifyBadSrcIngestSource `json:"ingestSource"`
	// Adds a certification that a package, source or artifact is considered bad.
	IngestCertifyBad CertifyBadSrcIngestCertifyBad `json:"ingestCertifyBad"`
}

CertifyBadSrcResponse is returned by CertifyBadSrc on success.

func CertifyBadSrc

func CertifyBadSrc(
	ctx context.Context,
	client graphql.Client,
	source SourceInputSpec,
	certifyBad CertifyBadInputSpec,
) (*CertifyBadSrcResponse, error)

func (*CertifyBadSrcResponse) GetIngestCertifyBad

func (v *CertifyBadSrcResponse) GetIngestCertifyBad() CertifyBadSrcIngestCertifyBad

GetIngestCertifyBad returns CertifyBadSrcResponse.IngestCertifyBad, and is useful for accessing the field via an interface.

func (*CertifyBadSrcResponse) GetIngestSource

func (v *CertifyBadSrcResponse) GetIngestSource() CertifyBadSrcIngestSource

GetIngestSource returns CertifyBadSrcResponse.IngestSource, and is useful for accessing the field via an interface.

type CertifyBadsCertifyBad

type CertifyBadsCertifyBad struct {
	AllCertifyBad `json:"-"`
}

CertifyBadsCertifyBad includes the requested fields of the GraphQL type CertifyBad. The GraphQL type's documentation follows.

CertifyBad is an attestation that a package, source, or artifact is considered bad.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*CertifyBadsCertifyBad) GetCollector

func (v *CertifyBadsCertifyBad) GetCollector() string

GetCollector returns CertifyBadsCertifyBad.Collector, and is useful for accessing the field via an interface.

func (*CertifyBadsCertifyBad) GetId

func (v *CertifyBadsCertifyBad) GetId() string

GetId returns CertifyBadsCertifyBad.Id, and is useful for accessing the field via an interface.

func (*CertifyBadsCertifyBad) GetJustification

func (v *CertifyBadsCertifyBad) GetJustification() string

GetJustification returns CertifyBadsCertifyBad.Justification, and is useful for accessing the field via an interface.

func (*CertifyBadsCertifyBad) GetOrigin

func (v *CertifyBadsCertifyBad) GetOrigin() string

GetOrigin returns CertifyBadsCertifyBad.Origin, and is useful for accessing the field via an interface.

func (*CertifyBadsCertifyBad) GetSubject

GetSubject returns CertifyBadsCertifyBad.Subject, and is useful for accessing the field via an interface.

func (*CertifyBadsCertifyBad) MarshalJSON

func (v *CertifyBadsCertifyBad) MarshalJSON() ([]byte, error)

func (*CertifyBadsCertifyBad) UnmarshalJSON

func (v *CertifyBadsCertifyBad) UnmarshalJSON(b []byte) error

type CertifyBadsResponse

type CertifyBadsResponse struct {
	// Returns all CertifyBad attestations matching a filter.
	CertifyBad []CertifyBadsCertifyBad `json:"CertifyBad"`
}

CertifyBadsResponse is returned by CertifyBads on success.

func CertifyBads

func CertifyBads(
	ctx context.Context,
	client graphql.Client,
	filter *CertifyBadSpec,
) (*CertifyBadsResponse, error)

func (*CertifyBadsResponse) GetCertifyBad

func (v *CertifyBadsResponse) GetCertifyBad() []CertifyBadsCertifyBad

GetCertifyBad returns CertifyBadsResponse.CertifyBad, and is useful for accessing the field via an interface.

type CertifyCVEIngestCVE

type CertifyCVEIngestCVE struct {
	AllCveTree `json:"-"`
}

CertifyCVEIngestCVE includes the requested fields of the GraphQL type CVE. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*CertifyCVEIngestCVE) GetCveId

func (v *CertifyCVEIngestCVE) GetCveId() string

GetCveId returns CertifyCVEIngestCVE.CveId, and is useful for accessing the field via an interface.

func (*CertifyCVEIngestCVE) GetId

func (v *CertifyCVEIngestCVE) GetId() string

GetId returns CertifyCVEIngestCVE.Id, and is useful for accessing the field via an interface.

func (*CertifyCVEIngestCVE) GetYear

func (v *CertifyCVEIngestCVE) GetYear() int

GetYear returns CertifyCVEIngestCVE.Year, and is useful for accessing the field via an interface.

func (*CertifyCVEIngestCVE) MarshalJSON

func (v *CertifyCVEIngestCVE) MarshalJSON() ([]byte, error)

func (*CertifyCVEIngestCVE) UnmarshalJSON

func (v *CertifyCVEIngestCVE) UnmarshalJSON(b []byte) error

type CertifyCVEIngestPackage

type CertifyCVEIngestPackage struct {
	AllPkgTree `json:"-"`
}

CertifyCVEIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*CertifyCVEIngestPackage) GetId

func (v *CertifyCVEIngestPackage) GetId() string

GetId returns CertifyCVEIngestPackage.Id, and is useful for accessing the field via an interface.

func (*CertifyCVEIngestPackage) GetNamespaces

GetNamespaces returns CertifyCVEIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*CertifyCVEIngestPackage) GetType

func (v *CertifyCVEIngestPackage) GetType() string

GetType returns CertifyCVEIngestPackage.Type, and is useful for accessing the field via an interface.

func (*CertifyCVEIngestPackage) MarshalJSON

func (v *CertifyCVEIngestPackage) MarshalJSON() ([]byte, error)

func (*CertifyCVEIngestPackage) UnmarshalJSON

func (v *CertifyCVEIngestPackage) UnmarshalJSON(b []byte) error

type CertifyCVEIngestVulnerabilityCertifyVuln

type CertifyCVEIngestVulnerabilityCertifyVuln struct {
	AllCertifyVuln `json:"-"`
}

CertifyCVEIngestVulnerabilityCertifyVuln includes the requested fields of the GraphQL type CertifyVuln. The GraphQL type's documentation follows.

CertifyVuln is an attestation to attach vulnerability information to a package.

This information is obtained via a scanner. If there is no vulnerability detected (no OSV, CVE, or GHSA), we attach the special NoVuln node.

func (*CertifyCVEIngestVulnerabilityCertifyVuln) GetId

GetId returns CertifyCVEIngestVulnerabilityCertifyVuln.Id, and is useful for accessing the field via an interface.

func (*CertifyCVEIngestVulnerabilityCertifyVuln) GetMetadata

GetMetadata returns CertifyCVEIngestVulnerabilityCertifyVuln.Metadata, and is useful for accessing the field via an interface.

func (*CertifyCVEIngestVulnerabilityCertifyVuln) GetPackage

GetPackage returns CertifyCVEIngestVulnerabilityCertifyVuln.Package, and is useful for accessing the field via an interface.

func (*CertifyCVEIngestVulnerabilityCertifyVuln) GetVulnerability

GetVulnerability returns CertifyCVEIngestVulnerabilityCertifyVuln.Vulnerability, and is useful for accessing the field via an interface.

func (*CertifyCVEIngestVulnerabilityCertifyVuln) MarshalJSON

func (v *CertifyCVEIngestVulnerabilityCertifyVuln) MarshalJSON() ([]byte, error)

func (*CertifyCVEIngestVulnerabilityCertifyVuln) UnmarshalJSON

func (v *CertifyCVEIngestVulnerabilityCertifyVuln) UnmarshalJSON(b []byte) error

type CertifyCVEResponse

type CertifyCVEResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage CertifyCVEIngestPackage `json:"ingestPackage"`
	// Ingests new CVE and returns it.
	IngestCVE CertifyCVEIngestCVE `json:"ingestCVE"`
	// Adds a certification that a package has been scanned for vulnerabilities.
	IngestVulnerability CertifyCVEIngestVulnerabilityCertifyVuln `json:"ingestVulnerability"`
}

CertifyCVEResponse is returned by CertifyCVE on success.

func CertifyCVE

func CertifyCVE(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	cve CVEInputSpec,
	certifyVuln VulnerabilityMetaDataInput,
) (*CertifyCVEResponse, error)

func (*CertifyCVEResponse) GetIngestCVE

func (v *CertifyCVEResponse) GetIngestCVE() CertifyCVEIngestCVE

GetIngestCVE returns CertifyCVEResponse.IngestCVE, and is useful for accessing the field via an interface.

func (*CertifyCVEResponse) GetIngestPackage

func (v *CertifyCVEResponse) GetIngestPackage() CertifyCVEIngestPackage

GetIngestPackage returns CertifyCVEResponse.IngestPackage, and is useful for accessing the field via an interface.

func (*CertifyCVEResponse) GetIngestVulnerability

GetIngestVulnerability returns CertifyCVEResponse.IngestVulnerability, and is useful for accessing the field via an interface.

type CertifyGHSAIngestGHSA

type CertifyGHSAIngestGHSA struct {
	AllGHSATree `json:"-"`
}

CertifyGHSAIngestGHSA includes the requested fields of the GraphQL type GHSA. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*CertifyGHSAIngestGHSA) GetGhsaId

func (v *CertifyGHSAIngestGHSA) GetGhsaId() string

GetGhsaId returns CertifyGHSAIngestGHSA.GhsaId, and is useful for accessing the field via an interface.

func (*CertifyGHSAIngestGHSA) GetId

func (v *CertifyGHSAIngestGHSA) GetId() string

GetId returns CertifyGHSAIngestGHSA.Id, and is useful for accessing the field via an interface.

func (*CertifyGHSAIngestGHSA) MarshalJSON

func (v *CertifyGHSAIngestGHSA) MarshalJSON() ([]byte, error)

func (*CertifyGHSAIngestGHSA) UnmarshalJSON

func (v *CertifyGHSAIngestGHSA) UnmarshalJSON(b []byte) error

type CertifyGHSAIngestPackage

type CertifyGHSAIngestPackage struct {
	AllPkgTree `json:"-"`
}

CertifyGHSAIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*CertifyGHSAIngestPackage) GetId

func (v *CertifyGHSAIngestPackage) GetId() string

GetId returns CertifyGHSAIngestPackage.Id, and is useful for accessing the field via an interface.

func (*CertifyGHSAIngestPackage) GetNamespaces

GetNamespaces returns CertifyGHSAIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*CertifyGHSAIngestPackage) GetType

func (v *CertifyGHSAIngestPackage) GetType() string

GetType returns CertifyGHSAIngestPackage.Type, and is useful for accessing the field via an interface.

func (*CertifyGHSAIngestPackage) MarshalJSON

func (v *CertifyGHSAIngestPackage) MarshalJSON() ([]byte, error)

func (*CertifyGHSAIngestPackage) UnmarshalJSON

func (v *CertifyGHSAIngestPackage) UnmarshalJSON(b []byte) error

type CertifyGHSAIngestVulnerabilityCertifyVuln

type CertifyGHSAIngestVulnerabilityCertifyVuln struct {
	AllCertifyVuln `json:"-"`
}

CertifyGHSAIngestVulnerabilityCertifyVuln includes the requested fields of the GraphQL type CertifyVuln. The GraphQL type's documentation follows.

CertifyVuln is an attestation to attach vulnerability information to a package.

This information is obtained via a scanner. If there is no vulnerability detected (no OSV, CVE, or GHSA), we attach the special NoVuln node.

func (*CertifyGHSAIngestVulnerabilityCertifyVuln) GetId

GetId returns CertifyGHSAIngestVulnerabilityCertifyVuln.Id, and is useful for accessing the field via an interface.

func (*CertifyGHSAIngestVulnerabilityCertifyVuln) GetMetadata

GetMetadata returns CertifyGHSAIngestVulnerabilityCertifyVuln.Metadata, and is useful for accessing the field via an interface.

func (*CertifyGHSAIngestVulnerabilityCertifyVuln) GetPackage

GetPackage returns CertifyGHSAIngestVulnerabilityCertifyVuln.Package, and is useful for accessing the field via an interface.

func (*CertifyGHSAIngestVulnerabilityCertifyVuln) GetVulnerability

GetVulnerability returns CertifyGHSAIngestVulnerabilityCertifyVuln.Vulnerability, and is useful for accessing the field via an interface.

func (*CertifyGHSAIngestVulnerabilityCertifyVuln) MarshalJSON

func (*CertifyGHSAIngestVulnerabilityCertifyVuln) UnmarshalJSON

type CertifyGHSAResponse

type CertifyGHSAResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage CertifyGHSAIngestPackage `json:"ingestPackage"`
	// Ingests a new GitHub Security Advisory and returns it.
	IngestGHSA CertifyGHSAIngestGHSA `json:"ingestGHSA"`
	// Adds a certification that a package has been scanned for vulnerabilities.
	IngestVulnerability CertifyGHSAIngestVulnerabilityCertifyVuln `json:"ingestVulnerability"`
}

CertifyGHSAResponse is returned by CertifyGHSA on success.

func CertifyGHSA

func CertifyGHSA(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	ghsa GHSAInputSpec,
	certifyVuln VulnerabilityMetaDataInput,
) (*CertifyGHSAResponse, error)

func (*CertifyGHSAResponse) GetIngestGHSA

func (v *CertifyGHSAResponse) GetIngestGHSA() CertifyGHSAIngestGHSA

GetIngestGHSA returns CertifyGHSAResponse.IngestGHSA, and is useful for accessing the field via an interface.

func (*CertifyGHSAResponse) GetIngestPackage

func (v *CertifyGHSAResponse) GetIngestPackage() CertifyGHSAIngestPackage

GetIngestPackage returns CertifyGHSAResponse.IngestPackage, and is useful for accessing the field via an interface.

func (*CertifyGHSAResponse) GetIngestVulnerability

GetIngestVulnerability returns CertifyGHSAResponse.IngestVulnerability, and is useful for accessing the field via an interface.

type CertifyGoodArtifactIngestArtifact

type CertifyGoodArtifactIngestArtifact struct {
	AllArtifactTree `json:"-"`
}

CertifyGoodArtifactIngestArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*CertifyGoodArtifactIngestArtifact) GetAlgorithm

func (v *CertifyGoodArtifactIngestArtifact) GetAlgorithm() string

GetAlgorithm returns CertifyGoodArtifactIngestArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*CertifyGoodArtifactIngestArtifact) GetDigest

GetDigest returns CertifyGoodArtifactIngestArtifact.Digest, and is useful for accessing the field via an interface.

func (*CertifyGoodArtifactIngestArtifact) GetId

GetId returns CertifyGoodArtifactIngestArtifact.Id, and is useful for accessing the field via an interface.

func (*CertifyGoodArtifactIngestArtifact) MarshalJSON

func (v *CertifyGoodArtifactIngestArtifact) MarshalJSON() ([]byte, error)

func (*CertifyGoodArtifactIngestArtifact) UnmarshalJSON

func (v *CertifyGoodArtifactIngestArtifact) UnmarshalJSON(b []byte) error

type CertifyGoodArtifactIngestCertifyGood

type CertifyGoodArtifactIngestCertifyGood struct {
	// contains filtered or unexported fields
}

CertifyGoodArtifactIngestCertifyGood includes the requested fields of the GraphQL type CertifyGood. The GraphQL type's documentation follows.

CertifyGood is an attestation that a package, source, or artifact is considered good.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*CertifyGoodArtifactIngestCertifyGood) GetCollector

func (v *CertifyGoodArtifactIngestCertifyGood) GetCollector() string

GetCollector returns CertifyGoodArtifactIngestCertifyGood.Collector, and is useful for accessing the field via an interface.

func (*CertifyGoodArtifactIngestCertifyGood) GetId

GetId returns CertifyGoodArtifactIngestCertifyGood.Id, and is useful for accessing the field via an interface.

func (*CertifyGoodArtifactIngestCertifyGood) GetJustification

func (v *CertifyGoodArtifactIngestCertifyGood) GetJustification() string

GetJustification returns CertifyGoodArtifactIngestCertifyGood.Justification, and is useful for accessing the field via an interface.

func (*CertifyGoodArtifactIngestCertifyGood) GetOrigin

GetOrigin returns CertifyGoodArtifactIngestCertifyGood.Origin, and is useful for accessing the field via an interface.

func (*CertifyGoodArtifactIngestCertifyGood) GetSubject

func (v *CertifyGoodArtifactIngestCertifyGood) GetSubject() allCertifyGoodSubjectPackageSourceOrArtifact

GetSubject returns CertifyGoodArtifactIngestCertifyGood.Subject, and is useful for accessing the field via an interface.

func (*CertifyGoodArtifactIngestCertifyGood) MarshalJSON

func (v *CertifyGoodArtifactIngestCertifyGood) MarshalJSON() ([]byte, error)

func (*CertifyGoodArtifactIngestCertifyGood) UnmarshalJSON

func (v *CertifyGoodArtifactIngestCertifyGood) UnmarshalJSON(b []byte) error

type CertifyGoodArtifactResponse

type CertifyGoodArtifactResponse struct {
	// Ingests a new artifact and returns it.
	IngestArtifact CertifyGoodArtifactIngestArtifact `json:"ingestArtifact"`
	// Adds a certification that a package, source or artifact is considered good.
	IngestCertifyGood CertifyGoodArtifactIngestCertifyGood `json:"ingestCertifyGood"`
}

CertifyGoodArtifactResponse is returned by CertifyGoodArtifact on success.

func CertifyGoodArtifact

func CertifyGoodArtifact(
	ctx context.Context,
	client graphql.Client,
	artifact ArtifactInputSpec,
	certifyGood CertifyGoodInputSpec,
) (*CertifyGoodArtifactResponse, error)

func (*CertifyGoodArtifactResponse) GetIngestArtifact

GetIngestArtifact returns CertifyGoodArtifactResponse.IngestArtifact, and is useful for accessing the field via an interface.

func (*CertifyGoodArtifactResponse) GetIngestCertifyGood

GetIngestCertifyGood returns CertifyGoodArtifactResponse.IngestCertifyGood, and is useful for accessing the field via an interface.

type CertifyGoodInputSpec

type CertifyGoodInputSpec struct {
	Justification string `json:"justification"`
	Origin        string `json:"origin"`
	Collector     string `json:"collector"`
}

CertifyGoodInputSpec represents the mutation input to ingest a CertifyGood evidence.

func (*CertifyGoodInputSpec) GetCollector

func (v *CertifyGoodInputSpec) GetCollector() string

GetCollector returns CertifyGoodInputSpec.Collector, and is useful for accessing the field via an interface.

func (*CertifyGoodInputSpec) GetJustification

func (v *CertifyGoodInputSpec) GetJustification() string

GetJustification returns CertifyGoodInputSpec.Justification, and is useful for accessing the field via an interface.

func (*CertifyGoodInputSpec) GetOrigin

func (v *CertifyGoodInputSpec) GetOrigin() string

GetOrigin returns CertifyGoodInputSpec.Origin, and is useful for accessing the field via an interface.

type CertifyGoodPkgIngestCertifyGood

type CertifyGoodPkgIngestCertifyGood struct {
	// contains filtered or unexported fields
}

CertifyGoodPkgIngestCertifyGood includes the requested fields of the GraphQL type CertifyGood. The GraphQL type's documentation follows.

CertifyGood is an attestation that a package, source, or artifact is considered good.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*CertifyGoodPkgIngestCertifyGood) GetCollector

func (v *CertifyGoodPkgIngestCertifyGood) GetCollector() string

GetCollector returns CertifyGoodPkgIngestCertifyGood.Collector, and is useful for accessing the field via an interface.

func (*CertifyGoodPkgIngestCertifyGood) GetId

GetId returns CertifyGoodPkgIngestCertifyGood.Id, and is useful for accessing the field via an interface.

func (*CertifyGoodPkgIngestCertifyGood) GetJustification

func (v *CertifyGoodPkgIngestCertifyGood) GetJustification() string

GetJustification returns CertifyGoodPkgIngestCertifyGood.Justification, and is useful for accessing the field via an interface.

func (*CertifyGoodPkgIngestCertifyGood) GetOrigin

func (v *CertifyGoodPkgIngestCertifyGood) GetOrigin() string

GetOrigin returns CertifyGoodPkgIngestCertifyGood.Origin, and is useful for accessing the field via an interface.

func (*CertifyGoodPkgIngestCertifyGood) GetSubject

func (v *CertifyGoodPkgIngestCertifyGood) GetSubject() allCertifyGoodSubjectPackageSourceOrArtifact

GetSubject returns CertifyGoodPkgIngestCertifyGood.Subject, and is useful for accessing the field via an interface.

func (*CertifyGoodPkgIngestCertifyGood) MarshalJSON

func (v *CertifyGoodPkgIngestCertifyGood) MarshalJSON() ([]byte, error)

func (*CertifyGoodPkgIngestCertifyGood) UnmarshalJSON

func (v *CertifyGoodPkgIngestCertifyGood) UnmarshalJSON(b []byte) error

type CertifyGoodPkgIngestPackage

type CertifyGoodPkgIngestPackage struct {
	AllPkgTree `json:"-"`
}

CertifyGoodPkgIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*CertifyGoodPkgIngestPackage) GetId

GetId returns CertifyGoodPkgIngestPackage.Id, and is useful for accessing the field via an interface.

func (*CertifyGoodPkgIngestPackage) GetNamespaces

GetNamespaces returns CertifyGoodPkgIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*CertifyGoodPkgIngestPackage) GetType

func (v *CertifyGoodPkgIngestPackage) GetType() string

GetType returns CertifyGoodPkgIngestPackage.Type, and is useful for accessing the field via an interface.

func (*CertifyGoodPkgIngestPackage) MarshalJSON

func (v *CertifyGoodPkgIngestPackage) MarshalJSON() ([]byte, error)

func (*CertifyGoodPkgIngestPackage) UnmarshalJSON

func (v *CertifyGoodPkgIngestPackage) UnmarshalJSON(b []byte) error

type CertifyGoodPkgResponse

type CertifyGoodPkgResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage CertifyGoodPkgIngestPackage `json:"ingestPackage"`
	// Adds a certification that a package, source or artifact is considered good.
	IngestCertifyGood CertifyGoodPkgIngestCertifyGood `json:"ingestCertifyGood"`
}

CertifyGoodPkgResponse is returned by CertifyGoodPkg on success.

func CertifyGoodPkg

func CertifyGoodPkg(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	pkgMatchType *MatchFlags,
	certifyGood CertifyGoodInputSpec,
) (*CertifyGoodPkgResponse, error)

func (*CertifyGoodPkgResponse) GetIngestCertifyGood

func (v *CertifyGoodPkgResponse) GetIngestCertifyGood() CertifyGoodPkgIngestCertifyGood

GetIngestCertifyGood returns CertifyGoodPkgResponse.IngestCertifyGood, and is useful for accessing the field via an interface.

func (*CertifyGoodPkgResponse) GetIngestPackage

GetIngestPackage returns CertifyGoodPkgResponse.IngestPackage, and is useful for accessing the field via an interface.

type CertifyGoodSrcIngestCertifyGood

type CertifyGoodSrcIngestCertifyGood struct {
	// contains filtered or unexported fields
}

CertifyGoodSrcIngestCertifyGood includes the requested fields of the GraphQL type CertifyGood. The GraphQL type's documentation follows.

CertifyGood is an attestation that a package, source, or artifact is considered good.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*CertifyGoodSrcIngestCertifyGood) GetCollector

func (v *CertifyGoodSrcIngestCertifyGood) GetCollector() string

GetCollector returns CertifyGoodSrcIngestCertifyGood.Collector, and is useful for accessing the field via an interface.

func (*CertifyGoodSrcIngestCertifyGood) GetId

GetId returns CertifyGoodSrcIngestCertifyGood.Id, and is useful for accessing the field via an interface.

func (*CertifyGoodSrcIngestCertifyGood) GetJustification

func (v *CertifyGoodSrcIngestCertifyGood) GetJustification() string

GetJustification returns CertifyGoodSrcIngestCertifyGood.Justification, and is useful for accessing the field via an interface.

func (*CertifyGoodSrcIngestCertifyGood) GetOrigin

func (v *CertifyGoodSrcIngestCertifyGood) GetOrigin() string

GetOrigin returns CertifyGoodSrcIngestCertifyGood.Origin, and is useful for accessing the field via an interface.

func (*CertifyGoodSrcIngestCertifyGood) GetSubject

func (v *CertifyGoodSrcIngestCertifyGood) GetSubject() allCertifyGoodSubjectPackageSourceOrArtifact

GetSubject returns CertifyGoodSrcIngestCertifyGood.Subject, and is useful for accessing the field via an interface.

func (*CertifyGoodSrcIngestCertifyGood) MarshalJSON

func (v *CertifyGoodSrcIngestCertifyGood) MarshalJSON() ([]byte, error)

func (*CertifyGoodSrcIngestCertifyGood) UnmarshalJSON

func (v *CertifyGoodSrcIngestCertifyGood) UnmarshalJSON(b []byte) error

type CertifyGoodSrcIngestSource

type CertifyGoodSrcIngestSource struct {
	AllSourceTree `json:"-"`
}

CertifyGoodSrcIngestSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*CertifyGoodSrcIngestSource) GetId

GetId returns CertifyGoodSrcIngestSource.Id, and is useful for accessing the field via an interface.

func (*CertifyGoodSrcIngestSource) GetNamespaces

GetNamespaces returns CertifyGoodSrcIngestSource.Namespaces, and is useful for accessing the field via an interface.

func (*CertifyGoodSrcIngestSource) GetType

func (v *CertifyGoodSrcIngestSource) GetType() string

GetType returns CertifyGoodSrcIngestSource.Type, and is useful for accessing the field via an interface.

func (*CertifyGoodSrcIngestSource) MarshalJSON

func (v *CertifyGoodSrcIngestSource) MarshalJSON() ([]byte, error)

func (*CertifyGoodSrcIngestSource) UnmarshalJSON

func (v *CertifyGoodSrcIngestSource) UnmarshalJSON(b []byte) error

type CertifyGoodSrcResponse

type CertifyGoodSrcResponse struct {
	// Ingests a new source and returns the corresponding source trie path.
	IngestSource CertifyGoodSrcIngestSource `json:"ingestSource"`
	// Adds a certification that a package, source or artifact is considered good.
	IngestCertifyGood CertifyGoodSrcIngestCertifyGood `json:"ingestCertifyGood"`
}

CertifyGoodSrcResponse is returned by CertifyGoodSrc on success.

func CertifyGoodSrc

func CertifyGoodSrc(
	ctx context.Context,
	client graphql.Client,
	source SourceInputSpec,
	certifyGood CertifyGoodInputSpec,
) (*CertifyGoodSrcResponse, error)

func (*CertifyGoodSrcResponse) GetIngestCertifyGood

func (v *CertifyGoodSrcResponse) GetIngestCertifyGood() CertifyGoodSrcIngestCertifyGood

GetIngestCertifyGood returns CertifyGoodSrcResponse.IngestCertifyGood, and is useful for accessing the field via an interface.

func (*CertifyGoodSrcResponse) GetIngestSource

GetIngestSource returns CertifyGoodSrcResponse.IngestSource, and is useful for accessing the field via an interface.

type CertifyNoKnownVulnIngestPackage

type CertifyNoKnownVulnIngestPackage struct {
	AllPkgTree `json:"-"`
}

CertifyNoKnownVulnIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*CertifyNoKnownVulnIngestPackage) GetId

GetId returns CertifyNoKnownVulnIngestPackage.Id, and is useful for accessing the field via an interface.

func (*CertifyNoKnownVulnIngestPackage) GetNamespaces

GetNamespaces returns CertifyNoKnownVulnIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*CertifyNoKnownVulnIngestPackage) GetType

GetType returns CertifyNoKnownVulnIngestPackage.Type, and is useful for accessing the field via an interface.

func (*CertifyNoKnownVulnIngestPackage) MarshalJSON

func (v *CertifyNoKnownVulnIngestPackage) MarshalJSON() ([]byte, error)

func (*CertifyNoKnownVulnIngestPackage) UnmarshalJSON

func (v *CertifyNoKnownVulnIngestPackage) UnmarshalJSON(b []byte) error

type CertifyNoKnownVulnIngestVulnerabilityCertifyVuln

type CertifyNoKnownVulnIngestVulnerabilityCertifyVuln struct {
	AllCertifyVuln `json:"-"`
}

CertifyNoKnownVulnIngestVulnerabilityCertifyVuln includes the requested fields of the GraphQL type CertifyVuln. The GraphQL type's documentation follows.

CertifyVuln is an attestation to attach vulnerability information to a package.

This information is obtained via a scanner. If there is no vulnerability detected (no OSV, CVE, or GHSA), we attach the special NoVuln node.

func (*CertifyNoKnownVulnIngestVulnerabilityCertifyVuln) GetId

GetId returns CertifyNoKnownVulnIngestVulnerabilityCertifyVuln.Id, and is useful for accessing the field via an interface.

func (*CertifyNoKnownVulnIngestVulnerabilityCertifyVuln) GetMetadata

GetMetadata returns CertifyNoKnownVulnIngestVulnerabilityCertifyVuln.Metadata, and is useful for accessing the field via an interface.

func (*CertifyNoKnownVulnIngestVulnerabilityCertifyVuln) GetPackage

GetPackage returns CertifyNoKnownVulnIngestVulnerabilityCertifyVuln.Package, and is useful for accessing the field via an interface.

func (*CertifyNoKnownVulnIngestVulnerabilityCertifyVuln) GetVulnerability

GetVulnerability returns CertifyNoKnownVulnIngestVulnerabilityCertifyVuln.Vulnerability, and is useful for accessing the field via an interface.

func (*CertifyNoKnownVulnIngestVulnerabilityCertifyVuln) MarshalJSON

func (*CertifyNoKnownVulnIngestVulnerabilityCertifyVuln) UnmarshalJSON

type CertifyNoKnownVulnResponse

type CertifyNoKnownVulnResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage CertifyNoKnownVulnIngestPackage `json:"ingestPackage"`
	// Adds a certification that a package has been scanned for vulnerabilities.
	IngestVulnerability CertifyNoKnownVulnIngestVulnerabilityCertifyVuln `json:"ingestVulnerability"`
}

CertifyNoKnownVulnResponse is returned by CertifyNoKnownVuln on success.

func CertifyNoKnownVuln

func CertifyNoKnownVuln(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	certifyVuln VulnerabilityMetaDataInput,
) (*CertifyNoKnownVulnResponse, error)

func (*CertifyNoKnownVulnResponse) GetIngestPackage

GetIngestPackage returns CertifyNoKnownVulnResponse.IngestPackage, and is useful for accessing the field via an interface.

func (*CertifyNoKnownVulnResponse) GetIngestVulnerability

GetIngestVulnerability returns CertifyNoKnownVulnResponse.IngestVulnerability, and is useful for accessing the field via an interface.

type CertifyOSVIngestOSV

type CertifyOSVIngestOSV struct {
	AllOSVTree `json:"-"`
}

CertifyOSVIngestOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*CertifyOSVIngestOSV) GetId

func (v *CertifyOSVIngestOSV) GetId() string

GetId returns CertifyOSVIngestOSV.Id, and is useful for accessing the field via an interface.

func (*CertifyOSVIngestOSV) GetOsvId

func (v *CertifyOSVIngestOSV) GetOsvId() string

GetOsvId returns CertifyOSVIngestOSV.OsvId, and is useful for accessing the field via an interface.

func (*CertifyOSVIngestOSV) MarshalJSON

func (v *CertifyOSVIngestOSV) MarshalJSON() ([]byte, error)

func (*CertifyOSVIngestOSV) UnmarshalJSON

func (v *CertifyOSVIngestOSV) UnmarshalJSON(b []byte) error

type CertifyOSVIngestPackage

type CertifyOSVIngestPackage struct {
	AllPkgTree `json:"-"`
}

CertifyOSVIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*CertifyOSVIngestPackage) GetId

func (v *CertifyOSVIngestPackage) GetId() string

GetId returns CertifyOSVIngestPackage.Id, and is useful for accessing the field via an interface.

func (*CertifyOSVIngestPackage) GetNamespaces

GetNamespaces returns CertifyOSVIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*CertifyOSVIngestPackage) GetType

func (v *CertifyOSVIngestPackage) GetType() string

GetType returns CertifyOSVIngestPackage.Type, and is useful for accessing the field via an interface.

func (*CertifyOSVIngestPackage) MarshalJSON

func (v *CertifyOSVIngestPackage) MarshalJSON() ([]byte, error)

func (*CertifyOSVIngestPackage) UnmarshalJSON

func (v *CertifyOSVIngestPackage) UnmarshalJSON(b []byte) error

type CertifyOSVIngestVulnerabilityCertifyVuln

type CertifyOSVIngestVulnerabilityCertifyVuln struct {
	AllCertifyVuln `json:"-"`
}

CertifyOSVIngestVulnerabilityCertifyVuln includes the requested fields of the GraphQL type CertifyVuln. The GraphQL type's documentation follows.

CertifyVuln is an attestation to attach vulnerability information to a package.

This information is obtained via a scanner. If there is no vulnerability detected (no OSV, CVE, or GHSA), we attach the special NoVuln node.

func (*CertifyOSVIngestVulnerabilityCertifyVuln) GetId

GetId returns CertifyOSVIngestVulnerabilityCertifyVuln.Id, and is useful for accessing the field via an interface.

func (*CertifyOSVIngestVulnerabilityCertifyVuln) GetMetadata

GetMetadata returns CertifyOSVIngestVulnerabilityCertifyVuln.Metadata, and is useful for accessing the field via an interface.

func (*CertifyOSVIngestVulnerabilityCertifyVuln) GetPackage

GetPackage returns CertifyOSVIngestVulnerabilityCertifyVuln.Package, and is useful for accessing the field via an interface.

func (*CertifyOSVIngestVulnerabilityCertifyVuln) GetVulnerability

GetVulnerability returns CertifyOSVIngestVulnerabilityCertifyVuln.Vulnerability, and is useful for accessing the field via an interface.

func (*CertifyOSVIngestVulnerabilityCertifyVuln) MarshalJSON

func (v *CertifyOSVIngestVulnerabilityCertifyVuln) MarshalJSON() ([]byte, error)

func (*CertifyOSVIngestVulnerabilityCertifyVuln) UnmarshalJSON

func (v *CertifyOSVIngestVulnerabilityCertifyVuln) UnmarshalJSON(b []byte) error

type CertifyOSVResponse

type CertifyOSVResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage CertifyOSVIngestPackage `json:"ingestPackage"`
	// Ingests a new OSV vulnerability and returns it.
	IngestOSV CertifyOSVIngestOSV `json:"ingestOSV"`
	// Adds a certification that a package has been scanned for vulnerabilities.
	IngestVulnerability CertifyOSVIngestVulnerabilityCertifyVuln `json:"ingestVulnerability"`
}

CertifyOSVResponse is returned by CertifyOSV on success.

func CertifyOSV

func CertifyOSV(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	osv OSVInputSpec,
	certifyVuln VulnerabilityMetaDataInput,
) (*CertifyOSVResponse, error)

func (*CertifyOSVResponse) GetIngestOSV

func (v *CertifyOSVResponse) GetIngestOSV() CertifyOSVIngestOSV

GetIngestOSV returns CertifyOSVResponse.IngestOSV, and is useful for accessing the field via an interface.

func (*CertifyOSVResponse) GetIngestPackage

func (v *CertifyOSVResponse) GetIngestPackage() CertifyOSVIngestPackage

GetIngestPackage returns CertifyOSVResponse.IngestPackage, and is useful for accessing the field via an interface.

func (*CertifyOSVResponse) GetIngestVulnerability

GetIngestVulnerability returns CertifyOSVResponse.IngestVulnerability, and is useful for accessing the field via an interface.

type DependencyType

type DependencyType string

DependencyType determines the type of the dependency.

const (
	// direct dependency
	DependencyTypeDirect DependencyType = "DIRECT"
	// indirect dependency
	DependencyTypeIndirect DependencyType = "INDIRECT"
	// type not known/not specified
	DependencyTypeUnknown DependencyType = "UNKNOWN"
)

type Edge

type Edge string

Edge allows filtering path/neighbors output to only contain a subset of all possible GUAC links.

Each member of the enum is formed by merging two Node names with _. Each name is converted from CamelCase to CAPITALS_WITH_UNDERSCORES. Only valid edges (pairs from Node to Node) are included.

The only exception to the above rule is for links out of HasSLSA. The names are HAS_SLSA_SUBJECT, HAS_SLSA_BUILT_BY, and HAS_SLSA_MATERIALS. This is because ARTIFACT_HAS_SLSA is only from subject Artifact to HasSLSA.

const (
	EdgeArtifactCertifyBad          Edge = "ARTIFACT_CERTIFY_BAD"
	EdgeArtifactCertifyGood         Edge = "ARTIFACT_CERTIFY_GOOD"
	EdgeArtifactCertifyVexStatement Edge = "ARTIFACT_CERTIFY_VEX_STATEMENT"
	EdgeArtifactHashEqual           Edge = "ARTIFACT_HASH_EQUAL"
	EdgeArtifactHasSbom             Edge = "ARTIFACT_HAS_SBOM"
	EdgeArtifactHasSlsa             Edge = "ARTIFACT_HAS_SLSA"
	EdgeArtifactIsOccurrence        Edge = "ARTIFACT_IS_OCCURRENCE"
	EdgeBuilderHasSlsa              Edge = "BUILDER_HAS_SLSA"
	EdgeCveCertifyVexStatement      Edge = "CVE_CERTIFY_VEX_STATEMENT"
	EdgeCveCertifyVuln              Edge = "CVE_CERTIFY_VULN"
	EdgeCveIsVulnerability          Edge = "CVE_IS_VULNERABILITY"
	EdgeGhsaCertifyVexStatement     Edge = "GHSA_CERTIFY_VEX_STATEMENT"
	EdgeGhsaCertifyVuln             Edge = "GHSA_CERTIFY_VULN"
	EdgeGhsaIsVulnerability         Edge = "GHSA_IS_VULNERABILITY"
	EdgeNoVulnCertifyVuln           Edge = "NO_VULN_CERTIFY_VULN"
	EdgeOsvCertifyVexStatement      Edge = "OSV_CERTIFY_VEX_STATEMENT"
	EdgeOsvCertifyVuln              Edge = "OSV_CERTIFY_VULN"
	EdgeOsvIsVulnerability          Edge = "OSV_IS_VULNERABILITY"
	EdgePackageCertifyBad           Edge = "PACKAGE_CERTIFY_BAD"
	EdgePackageCertifyGood          Edge = "PACKAGE_CERTIFY_GOOD"
	EdgePackageCertifyVexStatement  Edge = "PACKAGE_CERTIFY_VEX_STATEMENT"
	EdgePackageCertifyVuln          Edge = "PACKAGE_CERTIFY_VULN"
	EdgePackageHasSbom              Edge = "PACKAGE_HAS_SBOM"
	EdgePackageHasSourceAt          Edge = "PACKAGE_HAS_SOURCE_AT"
	EdgePackageIsDependency         Edge = "PACKAGE_IS_DEPENDENCY"
	EdgePackageIsOccurrence         Edge = "PACKAGE_IS_OCCURRENCE"
	EdgePackagePkgEqual             Edge = "PACKAGE_PKG_EQUAL"
	EdgeSourceCertifyBad            Edge = "SOURCE_CERTIFY_BAD"
	EdgeSourceCertifyGood           Edge = "SOURCE_CERTIFY_GOOD"
	EdgeSourceCertifyScorecard      Edge = "SOURCE_CERTIFY_SCORECARD"
	EdgeSourceHasSourceAt           Edge = "SOURCE_HAS_SOURCE_AT"
	EdgeSourceIsOccurrence          Edge = "SOURCE_IS_OCCURRENCE"
	EdgeCertifyBadArtifact          Edge = "CERTIFY_BAD_ARTIFACT"
	EdgeCertifyBadPackage           Edge = "CERTIFY_BAD_PACKAGE"
	EdgeCertifyBadSource            Edge = "CERTIFY_BAD_SOURCE"
	EdgeCertifyGoodArtifact         Edge = "CERTIFY_GOOD_ARTIFACT"
	EdgeCertifyGoodPackage          Edge = "CERTIFY_GOOD_PACKAGE"
	EdgeCertifyGoodSource           Edge = "CERTIFY_GOOD_SOURCE"
	EdgeCertifyScorecardSource      Edge = "CERTIFY_SCORECARD_SOURCE"
	EdgeCertifyVexStatementArtifact Edge = "CERTIFY_VEX_STATEMENT_ARTIFACT"
	EdgeCertifyVexStatementCve      Edge = "CERTIFY_VEX_STATEMENT_CVE"
	EdgeCertifyVexStatementGhsa     Edge = "CERTIFY_VEX_STATEMENT_GHSA"
	EdgeCertifyVexStatementOsv      Edge = "CERTIFY_VEX_STATEMENT_OSV"
	EdgeCertifyVexStatementPackage  Edge = "CERTIFY_VEX_STATEMENT_PACKAGE"
	EdgeCertifyVulnCve              Edge = "CERTIFY_VULN_CVE"
	EdgeCertifyVulnGhsa             Edge = "CERTIFY_VULN_GHSA"
	EdgeCertifyVulnNoVuln           Edge = "CERTIFY_VULN_NO_VULN"
	EdgeCertifyVulnOsv              Edge = "CERTIFY_VULN_OSV"
	EdgeCertifyVulnPackage          Edge = "CERTIFY_VULN_PACKAGE"
	EdgeHashEqualArtifact           Edge = "HASH_EQUAL_ARTIFACT"
	EdgeHasSbomArtifact             Edge = "HAS_SBOM_ARTIFACT"
	EdgeHasSbomPackage              Edge = "HAS_SBOM_PACKAGE"
	EdgeHasSlsaBuiltBy              Edge = "HAS_SLSA_BUILT_BY"
	EdgeHasSlsaMaterials            Edge = "HAS_SLSA_MATERIALS"
	EdgeHasSlsaSubject              Edge = "HAS_SLSA_SUBJECT"
	EdgeHasSourceAtPackage          Edge = "HAS_SOURCE_AT_PACKAGE"
	EdgeHasSourceAtSource           Edge = "HAS_SOURCE_AT_SOURCE"
	EdgeIsDependencyPackage         Edge = "IS_DEPENDENCY_PACKAGE"
	EdgeIsOccurrenceArtifact        Edge = "IS_OCCURRENCE_ARTIFACT"
	EdgeIsOccurrencePackage         Edge = "IS_OCCURRENCE_PACKAGE"
	EdgeIsOccurrenceSource          Edge = "IS_OCCURRENCE_SOURCE"
	EdgeIsVulnerabilityCve          Edge = "IS_VULNERABILITY_CVE"
	EdgeIsVulnerabilityGhsa         Edge = "IS_VULNERABILITY_GHSA"
	EdgeIsVulnerabilityOsv          Edge = "IS_VULNERABILITY_OSV"
	EdgePkgEqualPackage             Edge = "PKG_EQUAL_PACKAGE"
)

type GHSAInputSpec

type GHSAInputSpec struct {
	GhsaId string `json:"ghsaId"`
}

GHSAInputSpec specifies a GitHub Security Advisory for mutations.

func (*GHSAInputSpec) GetGhsaId

func (v *GHSAInputSpec) GetGhsaId() string

GetGhsaId returns GHSAInputSpec.GhsaId, and is useful for accessing the field via an interface.

type GHSASpec

type GHSASpec struct {
	Id     *string `json:"id"`
	GhsaId *string `json:"ghsaId"`
}

GHSASpec allows filtering the list of advisories to return in a query.

func (*GHSASpec) GetGhsaId

func (v *GHSASpec) GetGhsaId() *string

GetGhsaId returns GHSASpec.GhsaId, and is useful for accessing the field via an interface.

func (*GHSASpec) GetId

func (v *GHSASpec) GetId() *string

GetId returns GHSASpec.Id, and is useful for accessing the field via an interface.

type GHSAsGhsaGHSA

type GHSAsGhsaGHSA struct {
	AllGHSATree `json:"-"`
}

GHSAsGhsaGHSA includes the requested fields of the GraphQL type GHSA. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*GHSAsGhsaGHSA) GetGhsaId

func (v *GHSAsGhsaGHSA) GetGhsaId() string

GetGhsaId returns GHSAsGhsaGHSA.GhsaId, and is useful for accessing the field via an interface.

func (*GHSAsGhsaGHSA) GetId

func (v *GHSAsGhsaGHSA) GetId() string

GetId returns GHSAsGhsaGHSA.Id, and is useful for accessing the field via an interface.

func (*GHSAsGhsaGHSA) MarshalJSON

func (v *GHSAsGhsaGHSA) MarshalJSON() ([]byte, error)

func (*GHSAsGhsaGHSA) UnmarshalJSON

func (v *GHSAsGhsaGHSA) UnmarshalJSON(b []byte) error

type GHSAsResponse

type GHSAsResponse struct {
	// Returns all GitHub Security Advisories matching a filter.
	Ghsa []GHSAsGhsaGHSA `json:"ghsa"`
}

GHSAsResponse is returned by GHSAs on success.

func GHSAs

func GHSAs(
	ctx context.Context,
	client graphql.Client,
	filter *GHSASpec,
) (*GHSAsResponse, error)

func (*GHSAsResponse) GetGhsa

func (v *GHSAsResponse) GetGhsa() []GHSAsGhsaGHSA

GetGhsa returns GHSAsResponse.Ghsa, and is useful for accessing the field via an interface.

type HasSBOMArtifactIngestArtifact

type HasSBOMArtifactIngestArtifact struct {
	AllArtifactTree `json:"-"`
}

HasSBOMArtifactIngestArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*HasSBOMArtifactIngestArtifact) GetAlgorithm

func (v *HasSBOMArtifactIngestArtifact) GetAlgorithm() string

GetAlgorithm returns HasSBOMArtifactIngestArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestArtifact) GetDigest

func (v *HasSBOMArtifactIngestArtifact) GetDigest() string

GetDigest returns HasSBOMArtifactIngestArtifact.Digest, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestArtifact) GetId

GetId returns HasSBOMArtifactIngestArtifact.Id, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestArtifact) MarshalJSON

func (v *HasSBOMArtifactIngestArtifact) MarshalJSON() ([]byte, error)

func (*HasSBOMArtifactIngestArtifact) UnmarshalJSON

func (v *HasSBOMArtifactIngestArtifact) UnmarshalJSON(b []byte) error

type HasSBOMArtifactIngestHasSBOM

type HasSBOMArtifactIngestHasSBOM struct {
	// contains filtered or unexported fields
}

HasSBOMArtifactIngestHasSBOM includes the requested fields of the GraphQL type HasSBOM.

func (*HasSBOMArtifactIngestHasSBOM) GetAlgorithm

func (v *HasSBOMArtifactIngestHasSBOM) GetAlgorithm() string

GetAlgorithm returns HasSBOMArtifactIngestHasSBOM.Algorithm, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestHasSBOM) GetAnnotations

func (v *HasSBOMArtifactIngestHasSBOM) GetAnnotations() []allHasSBOMTreeAnnotationsAnnotation

GetAnnotations returns HasSBOMArtifactIngestHasSBOM.Annotations, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestHasSBOM) GetCollector

func (v *HasSBOMArtifactIngestHasSBOM) GetCollector() string

GetCollector returns HasSBOMArtifactIngestHasSBOM.Collector, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestHasSBOM) GetDigest

func (v *HasSBOMArtifactIngestHasSBOM) GetDigest() string

GetDigest returns HasSBOMArtifactIngestHasSBOM.Digest, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestHasSBOM) GetDownloadLocation

func (v *HasSBOMArtifactIngestHasSBOM) GetDownloadLocation() string

GetDownloadLocation returns HasSBOMArtifactIngestHasSBOM.DownloadLocation, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestHasSBOM) GetId

GetId returns HasSBOMArtifactIngestHasSBOM.Id, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestHasSBOM) GetOrigin

func (v *HasSBOMArtifactIngestHasSBOM) GetOrigin() string

GetOrigin returns HasSBOMArtifactIngestHasSBOM.Origin, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestHasSBOM) GetSubject

func (v *HasSBOMArtifactIngestHasSBOM) GetSubject() allHasSBOMTreeSubjectPackageOrArtifact

GetSubject returns HasSBOMArtifactIngestHasSBOM.Subject, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestHasSBOM) GetUri

GetUri returns HasSBOMArtifactIngestHasSBOM.Uri, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactIngestHasSBOM) MarshalJSON

func (v *HasSBOMArtifactIngestHasSBOM) MarshalJSON() ([]byte, error)

func (*HasSBOMArtifactIngestHasSBOM) UnmarshalJSON

func (v *HasSBOMArtifactIngestHasSBOM) UnmarshalJSON(b []byte) error

type HasSBOMArtifactResponse

type HasSBOMArtifactResponse struct {
	// Ingests a new artifact and returns it.
	IngestArtifact HasSBOMArtifactIngestArtifact `json:"ingestArtifact"`
	// Certifies that a package or artifact has an SBOM.
	IngestHasSBOM HasSBOMArtifactIngestHasSBOM `json:"ingestHasSBOM"`
}

HasSBOMArtifactResponse is returned by HasSBOMArtifact on success.

func HasSBOMArtifact

func HasSBOMArtifact(
	ctx context.Context,
	client graphql.Client,
	artifact ArtifactInputSpec,
	hasSBOM HasSBOMInputSpec,
) (*HasSBOMArtifactResponse, error)

func (*HasSBOMArtifactResponse) GetIngestArtifact

GetIngestArtifact returns HasSBOMArtifactResponse.IngestArtifact, and is useful for accessing the field via an interface.

func (*HasSBOMArtifactResponse) GetIngestHasSBOM

GetIngestHasSBOM returns HasSBOMArtifactResponse.IngestHasSBOM, and is useful for accessing the field via an interface.

type HasSBOMInputSpec

type HasSBOMInputSpec struct {
	Uri              string                `json:"uri"`
	Algorithm        string                `json:"algorithm"`
	Digest           string                `json:"digest"`
	DownloadLocation string                `json:"downloadLocation"`
	Annotations      []AnnotationInputSpec `json:"annotations"`
	Origin           string                `json:"origin"`
	Collector        string                `json:"collector"`
}

HasSBOMInputSpec is the same as HasSBOM but for mutation input.

func (*HasSBOMInputSpec) GetAlgorithm

func (v *HasSBOMInputSpec) GetAlgorithm() string

GetAlgorithm returns HasSBOMInputSpec.Algorithm, and is useful for accessing the field via an interface.

func (*HasSBOMInputSpec) GetAnnotations

func (v *HasSBOMInputSpec) GetAnnotations() []AnnotationInputSpec

GetAnnotations returns HasSBOMInputSpec.Annotations, and is useful for accessing the field via an interface.

func (*HasSBOMInputSpec) GetCollector

func (v *HasSBOMInputSpec) GetCollector() string

GetCollector returns HasSBOMInputSpec.Collector, and is useful for accessing the field via an interface.

func (*HasSBOMInputSpec) GetDigest

func (v *HasSBOMInputSpec) GetDigest() string

GetDigest returns HasSBOMInputSpec.Digest, and is useful for accessing the field via an interface.

func (*HasSBOMInputSpec) GetDownloadLocation

func (v *HasSBOMInputSpec) GetDownloadLocation() string

GetDownloadLocation returns HasSBOMInputSpec.DownloadLocation, and is useful for accessing the field via an interface.

func (*HasSBOMInputSpec) GetOrigin

func (v *HasSBOMInputSpec) GetOrigin() string

GetOrigin returns HasSBOMInputSpec.Origin, and is useful for accessing the field via an interface.

func (*HasSBOMInputSpec) GetUri

func (v *HasSBOMInputSpec) GetUri() string

GetUri returns HasSBOMInputSpec.Uri, and is useful for accessing the field via an interface.

type HasSBOMPkgIngestHasSBOM

type HasSBOMPkgIngestHasSBOM struct {
	// contains filtered or unexported fields
}

HasSBOMPkgIngestHasSBOM includes the requested fields of the GraphQL type HasSBOM.

func (*HasSBOMPkgIngestHasSBOM) GetAlgorithm

func (v *HasSBOMPkgIngestHasSBOM) GetAlgorithm() string

GetAlgorithm returns HasSBOMPkgIngestHasSBOM.Algorithm, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestHasSBOM) GetAnnotations

func (v *HasSBOMPkgIngestHasSBOM) GetAnnotations() []allHasSBOMTreeAnnotationsAnnotation

GetAnnotations returns HasSBOMPkgIngestHasSBOM.Annotations, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestHasSBOM) GetCollector

func (v *HasSBOMPkgIngestHasSBOM) GetCollector() string

GetCollector returns HasSBOMPkgIngestHasSBOM.Collector, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestHasSBOM) GetDigest

func (v *HasSBOMPkgIngestHasSBOM) GetDigest() string

GetDigest returns HasSBOMPkgIngestHasSBOM.Digest, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestHasSBOM) GetDownloadLocation

func (v *HasSBOMPkgIngestHasSBOM) GetDownloadLocation() string

GetDownloadLocation returns HasSBOMPkgIngestHasSBOM.DownloadLocation, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestHasSBOM) GetId

func (v *HasSBOMPkgIngestHasSBOM) GetId() string

GetId returns HasSBOMPkgIngestHasSBOM.Id, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestHasSBOM) GetOrigin

func (v *HasSBOMPkgIngestHasSBOM) GetOrigin() string

GetOrigin returns HasSBOMPkgIngestHasSBOM.Origin, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestHasSBOM) GetSubject

func (v *HasSBOMPkgIngestHasSBOM) GetSubject() allHasSBOMTreeSubjectPackageOrArtifact

GetSubject returns HasSBOMPkgIngestHasSBOM.Subject, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestHasSBOM) GetUri

func (v *HasSBOMPkgIngestHasSBOM) GetUri() string

GetUri returns HasSBOMPkgIngestHasSBOM.Uri, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestHasSBOM) MarshalJSON

func (v *HasSBOMPkgIngestHasSBOM) MarshalJSON() ([]byte, error)

func (*HasSBOMPkgIngestHasSBOM) UnmarshalJSON

func (v *HasSBOMPkgIngestHasSBOM) UnmarshalJSON(b []byte) error

type HasSBOMPkgIngestPackage

type HasSBOMPkgIngestPackage struct {
	AllPkgTree `json:"-"`
}

HasSBOMPkgIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*HasSBOMPkgIngestPackage) GetId

func (v *HasSBOMPkgIngestPackage) GetId() string

GetId returns HasSBOMPkgIngestPackage.Id, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestPackage) GetNamespaces

GetNamespaces returns HasSBOMPkgIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestPackage) GetType

func (v *HasSBOMPkgIngestPackage) GetType() string

GetType returns HasSBOMPkgIngestPackage.Type, and is useful for accessing the field via an interface.

func (*HasSBOMPkgIngestPackage) MarshalJSON

func (v *HasSBOMPkgIngestPackage) MarshalJSON() ([]byte, error)

func (*HasSBOMPkgIngestPackage) UnmarshalJSON

func (v *HasSBOMPkgIngestPackage) UnmarshalJSON(b []byte) error

type HasSBOMPkgResponse

type HasSBOMPkgResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage HasSBOMPkgIngestPackage `json:"ingestPackage"`
	// Certifies that a package or artifact has an SBOM.
	IngestHasSBOM HasSBOMPkgIngestHasSBOM `json:"ingestHasSBOM"`
}

HasSBOMPkgResponse is returned by HasSBOMPkg on success.

func HasSBOMPkg

func HasSBOMPkg(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	hasSBOM HasSBOMInputSpec,
) (*HasSBOMPkgResponse, error)

func (*HasSBOMPkgResponse) GetIngestHasSBOM

func (v *HasSBOMPkgResponse) GetIngestHasSBOM() HasSBOMPkgIngestHasSBOM

GetIngestHasSBOM returns HasSBOMPkgResponse.IngestHasSBOM, and is useful for accessing the field via an interface.

func (*HasSBOMPkgResponse) GetIngestPackage

func (v *HasSBOMPkgResponse) GetIngestPackage() HasSBOMPkgIngestPackage

GetIngestPackage returns HasSBOMPkgResponse.IngestPackage, and is useful for accessing the field via an interface.

type HasSourceAtIngestHasSourceAt

type HasSourceAtIngestHasSourceAt struct {
	// contains filtered or unexported fields
}

HasSourceAtIngestHasSourceAt includes the requested fields of the GraphQL type HasSourceAt. The GraphQL type's documentation follows.

HasSourceAt records that a package's repository is a given source.

func (*HasSourceAtIngestHasSourceAt) GetCollector

func (v *HasSourceAtIngestHasSourceAt) GetCollector() string

GetCollector returns HasSourceAtIngestHasSourceAt.Collector, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestHasSourceAt) GetId

GetId returns HasSourceAtIngestHasSourceAt.Id, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestHasSourceAt) GetJustification

func (v *HasSourceAtIngestHasSourceAt) GetJustification() string

GetJustification returns HasSourceAtIngestHasSourceAt.Justification, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestHasSourceAt) GetKnownSince

func (v *HasSourceAtIngestHasSourceAt) GetKnownSince() time.Time

GetKnownSince returns HasSourceAtIngestHasSourceAt.KnownSince, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestHasSourceAt) GetOrigin

func (v *HasSourceAtIngestHasSourceAt) GetOrigin() string

GetOrigin returns HasSourceAtIngestHasSourceAt.Origin, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestHasSourceAt) GetPackage

func (v *HasSourceAtIngestHasSourceAt) GetPackage() allHasSourceAtPackage

GetPackage returns HasSourceAtIngestHasSourceAt.Package, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestHasSourceAt) GetSource

func (v *HasSourceAtIngestHasSourceAt) GetSource() allHasSourceAtSource

GetSource returns HasSourceAtIngestHasSourceAt.Source, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestHasSourceAt) MarshalJSON

func (v *HasSourceAtIngestHasSourceAt) MarshalJSON() ([]byte, error)

func (*HasSourceAtIngestHasSourceAt) UnmarshalJSON

func (v *HasSourceAtIngestHasSourceAt) UnmarshalJSON(b []byte) error

type HasSourceAtIngestPackage

type HasSourceAtIngestPackage struct {
	AllPkgTree `json:"-"`
}

HasSourceAtIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*HasSourceAtIngestPackage) GetId

func (v *HasSourceAtIngestPackage) GetId() string

GetId returns HasSourceAtIngestPackage.Id, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestPackage) GetNamespaces

GetNamespaces returns HasSourceAtIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestPackage) GetType

func (v *HasSourceAtIngestPackage) GetType() string

GetType returns HasSourceAtIngestPackage.Type, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestPackage) MarshalJSON

func (v *HasSourceAtIngestPackage) MarshalJSON() ([]byte, error)

func (*HasSourceAtIngestPackage) UnmarshalJSON

func (v *HasSourceAtIngestPackage) UnmarshalJSON(b []byte) error

type HasSourceAtIngestSource

type HasSourceAtIngestSource struct {
	AllSourceTree `json:"-"`
}

HasSourceAtIngestSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*HasSourceAtIngestSource) GetId

func (v *HasSourceAtIngestSource) GetId() string

GetId returns HasSourceAtIngestSource.Id, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestSource) GetNamespaces

GetNamespaces returns HasSourceAtIngestSource.Namespaces, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestSource) GetType

func (v *HasSourceAtIngestSource) GetType() string

GetType returns HasSourceAtIngestSource.Type, and is useful for accessing the field via an interface.

func (*HasSourceAtIngestSource) MarshalJSON

func (v *HasSourceAtIngestSource) MarshalJSON() ([]byte, error)

func (*HasSourceAtIngestSource) UnmarshalJSON

func (v *HasSourceAtIngestSource) UnmarshalJSON(b []byte) error

type HasSourceAtInputSpec

type HasSourceAtInputSpec struct {
	KnownSince    time.Time `json:"knownSince"`
	Justification string    `json:"justification"`
	Origin        string    `json:"origin"`
	Collector     string    `json:"collector"`
}

HasSourceAtInputSpec is the same as HasSourceAt but for mutation input.

func (*HasSourceAtInputSpec) GetCollector

func (v *HasSourceAtInputSpec) GetCollector() string

GetCollector returns HasSourceAtInputSpec.Collector, and is useful for accessing the field via an interface.

func (*HasSourceAtInputSpec) GetJustification

func (v *HasSourceAtInputSpec) GetJustification() string

GetJustification returns HasSourceAtInputSpec.Justification, and is useful for accessing the field via an interface.

func (*HasSourceAtInputSpec) GetKnownSince

func (v *HasSourceAtInputSpec) GetKnownSince() time.Time

GetKnownSince returns HasSourceAtInputSpec.KnownSince, and is useful for accessing the field via an interface.

func (*HasSourceAtInputSpec) GetOrigin

func (v *HasSourceAtInputSpec) GetOrigin() string

GetOrigin returns HasSourceAtInputSpec.Origin, and is useful for accessing the field via an interface.

type HasSourceAtResponse

type HasSourceAtResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage HasSourceAtIngestPackage `json:"ingestPackage"`
	// Ingests a new source and returns the corresponding source trie path.
	IngestSource HasSourceAtIngestSource `json:"ingestSource"`
	// Adds a certification that a package (PackageName or PackageVersion) is built from the source.
	IngestHasSourceAt HasSourceAtIngestHasSourceAt `json:"ingestHasSourceAt"`
}

HasSourceAtResponse is returned by HasSourceAt on success.

func HasSourceAt

func HasSourceAt(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	pkgMatchType MatchFlags,
	source SourceInputSpec,
	hasSourceAt HasSourceAtInputSpec,
) (*HasSourceAtResponse, error)

func (*HasSourceAtResponse) GetIngestHasSourceAt

func (v *HasSourceAtResponse) GetIngestHasSourceAt() HasSourceAtIngestHasSourceAt

GetIngestHasSourceAt returns HasSourceAtResponse.IngestHasSourceAt, and is useful for accessing the field via an interface.

func (*HasSourceAtResponse) GetIngestPackage

func (v *HasSourceAtResponse) GetIngestPackage() HasSourceAtIngestPackage

GetIngestPackage returns HasSourceAtResponse.IngestPackage, and is useful for accessing the field via an interface.

func (*HasSourceAtResponse) GetIngestSource

func (v *HasSourceAtResponse) GetIngestSource() HasSourceAtIngestSource

GetIngestSource returns HasSourceAtResponse.IngestSource, and is useful for accessing the field via an interface.

type HashEqualArtifact

type HashEqualArtifact struct {
	AllArtifactTree `json:"-"`
}

HashEqualArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*HashEqualArtifact) GetAlgorithm

func (v *HashEqualArtifact) GetAlgorithm() string

GetAlgorithm returns HashEqualArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*HashEqualArtifact) GetDigest

func (v *HashEqualArtifact) GetDigest() string

GetDigest returns HashEqualArtifact.Digest, and is useful for accessing the field via an interface.

func (*HashEqualArtifact) GetId

func (v *HashEqualArtifact) GetId() string

GetId returns HashEqualArtifact.Id, and is useful for accessing the field via an interface.

func (*HashEqualArtifact) MarshalJSON

func (v *HashEqualArtifact) MarshalJSON() ([]byte, error)

func (*HashEqualArtifact) UnmarshalJSON

func (v *HashEqualArtifact) UnmarshalJSON(b []byte) error

type HashEqualIngestHashEqual

type HashEqualIngestHashEqual struct {
	// contains filtered or unexported fields
}

HashEqualIngestHashEqual includes the requested fields of the GraphQL type HashEqual. The GraphQL type's documentation follows.

HashEqual is an attestation that a set of artifacts are identical.

func (*HashEqualIngestHashEqual) GetArtifacts

func (v *HashEqualIngestHashEqual) GetArtifacts() []allHashEqualTreeArtifactsArtifact

GetArtifacts returns HashEqualIngestHashEqual.Artifacts, and is useful for accessing the field via an interface.

func (*HashEqualIngestHashEqual) GetCollector

func (v *HashEqualIngestHashEqual) GetCollector() string

GetCollector returns HashEqualIngestHashEqual.Collector, and is useful for accessing the field via an interface.

func (*HashEqualIngestHashEqual) GetId

func (v *HashEqualIngestHashEqual) GetId() string

GetId returns HashEqualIngestHashEqual.Id, and is useful for accessing the field via an interface.

func (*HashEqualIngestHashEqual) GetJustification

func (v *HashEqualIngestHashEqual) GetJustification() string

GetJustification returns HashEqualIngestHashEqual.Justification, and is useful for accessing the field via an interface.

func (*HashEqualIngestHashEqual) GetOrigin

func (v *HashEqualIngestHashEqual) GetOrigin() string

GetOrigin returns HashEqualIngestHashEqual.Origin, and is useful for accessing the field via an interface.

func (*HashEqualIngestHashEqual) MarshalJSON

func (v *HashEqualIngestHashEqual) MarshalJSON() ([]byte, error)

func (*HashEqualIngestHashEqual) UnmarshalJSON

func (v *HashEqualIngestHashEqual) UnmarshalJSON(b []byte) error

type HashEqualInputSpec

type HashEqualInputSpec struct {
	Justification string `json:"justification"`
	Origin        string `json:"origin"`
	Collector     string `json:"collector"`
}

HashEqualInputSpec represents the input to certify that packages are similar.

func (*HashEqualInputSpec) GetCollector

func (v *HashEqualInputSpec) GetCollector() string

GetCollector returns HashEqualInputSpec.Collector, and is useful for accessing the field via an interface.

func (*HashEqualInputSpec) GetJustification

func (v *HashEqualInputSpec) GetJustification() string

GetJustification returns HashEqualInputSpec.Justification, and is useful for accessing the field via an interface.

func (*HashEqualInputSpec) GetOrigin

func (v *HashEqualInputSpec) GetOrigin() string

GetOrigin returns HashEqualInputSpec.Origin, and is useful for accessing the field via an interface.

type HashEqualOtherArtifact

type HashEqualOtherArtifact struct {
	AllArtifactTree `json:"-"`
}

HashEqualOtherArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*HashEqualOtherArtifact) GetAlgorithm

func (v *HashEqualOtherArtifact) GetAlgorithm() string

GetAlgorithm returns HashEqualOtherArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*HashEqualOtherArtifact) GetDigest

func (v *HashEqualOtherArtifact) GetDigest() string

GetDigest returns HashEqualOtherArtifact.Digest, and is useful for accessing the field via an interface.

func (*HashEqualOtherArtifact) GetId

func (v *HashEqualOtherArtifact) GetId() string

GetId returns HashEqualOtherArtifact.Id, and is useful for accessing the field via an interface.

func (*HashEqualOtherArtifact) MarshalJSON

func (v *HashEqualOtherArtifact) MarshalJSON() ([]byte, error)

func (*HashEqualOtherArtifact) UnmarshalJSON

func (v *HashEqualOtherArtifact) UnmarshalJSON(b []byte) error

type HashEqualResponse

type HashEqualResponse struct {
	// Ingests a new artifact and returns it.
	Artifact HashEqualArtifact `json:"artifact"`
	// Ingests a new artifact and returns it.
	OtherArtifact HashEqualOtherArtifact `json:"otherArtifact"`
	// Adds a certification that two artifacts are similar.
	IngestHashEqual HashEqualIngestHashEqual `json:"ingestHashEqual"`
}

HashEqualResponse is returned by HashEqual on success.

func HashEqual

func HashEqual(
	ctx context.Context,
	client graphql.Client,
	artifact ArtifactInputSpec,
	otherArtifact ArtifactInputSpec,
	hashEqual HashEqualInputSpec,
) (*HashEqualResponse, error)

func (*HashEqualResponse) GetArtifact

func (v *HashEqualResponse) GetArtifact() HashEqualArtifact

GetArtifact returns HashEqualResponse.Artifact, and is useful for accessing the field via an interface.

func (*HashEqualResponse) GetIngestHashEqual

func (v *HashEqualResponse) GetIngestHashEqual() HashEqualIngestHashEqual

GetIngestHashEqual returns HashEqualResponse.IngestHashEqual, and is useful for accessing the field via an interface.

func (*HashEqualResponse) GetOtherArtifact

func (v *HashEqualResponse) GetOtherArtifact() HashEqualOtherArtifact

GetOtherArtifact returns HashEqualResponse.OtherArtifact, and is useful for accessing the field via an interface.

type IsDependencyDependentPkgPackage

type IsDependencyDependentPkgPackage struct {
	AllPkgTree `json:"-"`
}

IsDependencyDependentPkgPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*IsDependencyDependentPkgPackage) GetId

GetId returns IsDependencyDependentPkgPackage.Id, and is useful for accessing the field via an interface.

func (*IsDependencyDependentPkgPackage) GetNamespaces

GetNamespaces returns IsDependencyDependentPkgPackage.Namespaces, and is useful for accessing the field via an interface.

func (*IsDependencyDependentPkgPackage) GetType

GetType returns IsDependencyDependentPkgPackage.Type, and is useful for accessing the field via an interface.

func (*IsDependencyDependentPkgPackage) MarshalJSON

func (v *IsDependencyDependentPkgPackage) MarshalJSON() ([]byte, error)

func (*IsDependencyDependentPkgPackage) UnmarshalJSON

func (v *IsDependencyDependentPkgPackage) UnmarshalJSON(b []byte) error

type IsDependencyIngestDependencyIsDependency

type IsDependencyIngestDependencyIsDependency struct {
	// contains filtered or unexported fields
}

IsDependencyIngestDependencyIsDependency includes the requested fields of the GraphQL type IsDependency. The GraphQL type's documentation follows.

IsDependency is an attestation to record that a package depends on another.

func (*IsDependencyIngestDependencyIsDependency) GetCollector

GetCollector returns IsDependencyIngestDependencyIsDependency.Collector, and is useful for accessing the field via an interface.

func (*IsDependencyIngestDependencyIsDependency) GetDependencyType

GetDependencyType returns IsDependencyIngestDependencyIsDependency.DependencyType, and is useful for accessing the field via an interface.

func (*IsDependencyIngestDependencyIsDependency) GetDependentPackage

func (v *IsDependencyIngestDependencyIsDependency) GetDependentPackage() allIsDependencyTreeDependentPackage

GetDependentPackage returns IsDependencyIngestDependencyIsDependency.DependentPackage, and is useful for accessing the field via an interface.

func (*IsDependencyIngestDependencyIsDependency) GetId

GetId returns IsDependencyIngestDependencyIsDependency.Id, and is useful for accessing the field via an interface.

func (*IsDependencyIngestDependencyIsDependency) GetJustification

func (v *IsDependencyIngestDependencyIsDependency) GetJustification() string

GetJustification returns IsDependencyIngestDependencyIsDependency.Justification, and is useful for accessing the field via an interface.

func (*IsDependencyIngestDependencyIsDependency) GetOrigin

GetOrigin returns IsDependencyIngestDependencyIsDependency.Origin, and is useful for accessing the field via an interface.

func (*IsDependencyIngestDependencyIsDependency) GetPackage

func (v *IsDependencyIngestDependencyIsDependency) GetPackage() allIsDependencyTreePackage

GetPackage returns IsDependencyIngestDependencyIsDependency.Package, and is useful for accessing the field via an interface.

func (*IsDependencyIngestDependencyIsDependency) GetVersionRange

func (v *IsDependencyIngestDependencyIsDependency) GetVersionRange() string

GetVersionRange returns IsDependencyIngestDependencyIsDependency.VersionRange, and is useful for accessing the field via an interface.

func (*IsDependencyIngestDependencyIsDependency) MarshalJSON

func (v *IsDependencyIngestDependencyIsDependency) MarshalJSON() ([]byte, error)

func (*IsDependencyIngestDependencyIsDependency) UnmarshalJSON

func (v *IsDependencyIngestDependencyIsDependency) UnmarshalJSON(b []byte) error

type IsDependencyInputSpec

type IsDependencyInputSpec struct {
	VersionRange   string         `json:"versionRange"`
	DependencyType DependencyType `json:"dependencyType"`
	Justification  string         `json:"justification"`
	Origin         string         `json:"origin"`
	Collector      string         `json:"collector"`
}

IsDependencyInputSpec is the input to record a new dependency.

func (*IsDependencyInputSpec) GetCollector

func (v *IsDependencyInputSpec) GetCollector() string

GetCollector returns IsDependencyInputSpec.Collector, and is useful for accessing the field via an interface.

func (*IsDependencyInputSpec) GetDependencyType

func (v *IsDependencyInputSpec) GetDependencyType() DependencyType

GetDependencyType returns IsDependencyInputSpec.DependencyType, and is useful for accessing the field via an interface.

func (*IsDependencyInputSpec) GetJustification

func (v *IsDependencyInputSpec) GetJustification() string

GetJustification returns IsDependencyInputSpec.Justification, and is useful for accessing the field via an interface.

func (*IsDependencyInputSpec) GetOrigin

func (v *IsDependencyInputSpec) GetOrigin() string

GetOrigin returns IsDependencyInputSpec.Origin, and is useful for accessing the field via an interface.

func (*IsDependencyInputSpec) GetVersionRange

func (v *IsDependencyInputSpec) GetVersionRange() string

GetVersionRange returns IsDependencyInputSpec.VersionRange, and is useful for accessing the field via an interface.

type IsDependencyPkgPackage

type IsDependencyPkgPackage struct {
	AllPkgTree `json:"-"`
}

IsDependencyPkgPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*IsDependencyPkgPackage) GetId

func (v *IsDependencyPkgPackage) GetId() string

GetId returns IsDependencyPkgPackage.Id, and is useful for accessing the field via an interface.

func (*IsDependencyPkgPackage) GetNamespaces

GetNamespaces returns IsDependencyPkgPackage.Namespaces, and is useful for accessing the field via an interface.

func (*IsDependencyPkgPackage) GetType

func (v *IsDependencyPkgPackage) GetType() string

GetType returns IsDependencyPkgPackage.Type, and is useful for accessing the field via an interface.

func (*IsDependencyPkgPackage) MarshalJSON

func (v *IsDependencyPkgPackage) MarshalJSON() ([]byte, error)

func (*IsDependencyPkgPackage) UnmarshalJSON

func (v *IsDependencyPkgPackage) UnmarshalJSON(b []byte) error

type IsDependencyResponse

type IsDependencyResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	Pkg IsDependencyPkgPackage `json:"pkg"`
	// Ingests a new package and returns the corresponding package trie path.
	DependentPkg IsDependencyDependentPkgPackage `json:"dependentPkg"`
	// Adds a dependency between two packages
	IngestDependency IsDependencyIngestDependencyIsDependency `json:"ingestDependency"`
}

IsDependencyResponse is returned by IsDependency on success.

func IsDependency

func IsDependency(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	depPkg PkgInputSpec,
	dependency IsDependencyInputSpec,
) (*IsDependencyResponse, error)

func (*IsDependencyResponse) GetDependentPkg

GetDependentPkg returns IsDependencyResponse.DependentPkg, and is useful for accessing the field via an interface.

func (*IsDependencyResponse) GetIngestDependency

GetIngestDependency returns IsDependencyResponse.IngestDependency, and is useful for accessing the field via an interface.

func (*IsDependencyResponse) GetPkg

GetPkg returns IsDependencyResponse.Pkg, and is useful for accessing the field via an interface.

type IsOccurrenceInputSpec

type IsOccurrenceInputSpec struct {
	Justification string `json:"justification"`
	Origin        string `json:"origin"`
	Collector     string `json:"collector"`
}

IsOccurrenceInputSpec represents the input to record an artifact's origin.

func (*IsOccurrenceInputSpec) GetCollector

func (v *IsOccurrenceInputSpec) GetCollector() string

GetCollector returns IsOccurrenceInputSpec.Collector, and is useful for accessing the field via an interface.

func (*IsOccurrenceInputSpec) GetJustification

func (v *IsOccurrenceInputSpec) GetJustification() string

GetJustification returns IsOccurrenceInputSpec.Justification, and is useful for accessing the field via an interface.

func (*IsOccurrenceInputSpec) GetOrigin

func (v *IsOccurrenceInputSpec) GetOrigin() string

GetOrigin returns IsOccurrenceInputSpec.Origin, and is useful for accessing the field via an interface.

type IsOccurrencePkgIngestArtifact

type IsOccurrencePkgIngestArtifact struct {
	AllArtifactTree `json:"-"`
}

IsOccurrencePkgIngestArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*IsOccurrencePkgIngestArtifact) GetAlgorithm

func (v *IsOccurrencePkgIngestArtifact) GetAlgorithm() string

GetAlgorithm returns IsOccurrencePkgIngestArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestArtifact) GetDigest

func (v *IsOccurrencePkgIngestArtifact) GetDigest() string

GetDigest returns IsOccurrencePkgIngestArtifact.Digest, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestArtifact) GetId

GetId returns IsOccurrencePkgIngestArtifact.Id, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestArtifact) MarshalJSON

func (v *IsOccurrencePkgIngestArtifact) MarshalJSON() ([]byte, error)

func (*IsOccurrencePkgIngestArtifact) UnmarshalJSON

func (v *IsOccurrencePkgIngestArtifact) UnmarshalJSON(b []byte) error

type IsOccurrencePkgIngestOccurrenceIsOccurrence

type IsOccurrencePkgIngestOccurrenceIsOccurrence struct {
	AllIsOccurrencesTree `json:"-"`
}

IsOccurrencePkgIngestOccurrenceIsOccurrence includes the requested fields of the GraphQL type IsOccurrence. The GraphQL type's documentation follows.

IsOccurrence is an attestation to link an artifact to a package or source.

Attestation must occur at the PackageVersion or at the SourceName.

func (*IsOccurrencePkgIngestOccurrenceIsOccurrence) GetArtifact

GetArtifact returns IsOccurrencePkgIngestOccurrenceIsOccurrence.Artifact, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestOccurrenceIsOccurrence) GetCollector

GetCollector returns IsOccurrencePkgIngestOccurrenceIsOccurrence.Collector, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestOccurrenceIsOccurrence) GetId

GetId returns IsOccurrencePkgIngestOccurrenceIsOccurrence.Id, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestOccurrenceIsOccurrence) GetJustification

GetJustification returns IsOccurrencePkgIngestOccurrenceIsOccurrence.Justification, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestOccurrenceIsOccurrence) GetOrigin

GetOrigin returns IsOccurrencePkgIngestOccurrenceIsOccurrence.Origin, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestOccurrenceIsOccurrence) GetSubject

GetSubject returns IsOccurrencePkgIngestOccurrenceIsOccurrence.Subject, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestOccurrenceIsOccurrence) MarshalJSON

func (*IsOccurrencePkgIngestOccurrenceIsOccurrence) UnmarshalJSON

type IsOccurrencePkgIngestPackage

type IsOccurrencePkgIngestPackage struct {
	AllPkgTree `json:"-"`
}

IsOccurrencePkgIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*IsOccurrencePkgIngestPackage) GetId

GetId returns IsOccurrencePkgIngestPackage.Id, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestPackage) GetNamespaces

GetNamespaces returns IsOccurrencePkgIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestPackage) GetType

func (v *IsOccurrencePkgIngestPackage) GetType() string

GetType returns IsOccurrencePkgIngestPackage.Type, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgIngestPackage) MarshalJSON

func (v *IsOccurrencePkgIngestPackage) MarshalJSON() ([]byte, error)

func (*IsOccurrencePkgIngestPackage) UnmarshalJSON

func (v *IsOccurrencePkgIngestPackage) UnmarshalJSON(b []byte) error

type IsOccurrencePkgResponse

type IsOccurrencePkgResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage IsOccurrencePkgIngestPackage `json:"ingestPackage"`
	// Ingests a new artifact and returns it.
	IngestArtifact IsOccurrencePkgIngestArtifact `json:"ingestArtifact"`
	// Ingest that an artifact is produced from a package or source.
	IngestOccurrence IsOccurrencePkgIngestOccurrenceIsOccurrence `json:"ingestOccurrence"`
}

IsOccurrencePkgResponse is returned by IsOccurrencePkg on success.

func IsOccurrencePkg

func IsOccurrencePkg(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	artifact ArtifactInputSpec,
	occurrence IsOccurrenceInputSpec,
) (*IsOccurrencePkgResponse, error)

func (*IsOccurrencePkgResponse) GetIngestArtifact

GetIngestArtifact returns IsOccurrencePkgResponse.IngestArtifact, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgResponse) GetIngestOccurrence

GetIngestOccurrence returns IsOccurrencePkgResponse.IngestOccurrence, and is useful for accessing the field via an interface.

func (*IsOccurrencePkgResponse) GetIngestPackage

GetIngestPackage returns IsOccurrencePkgResponse.IngestPackage, and is useful for accessing the field via an interface.

type IsOccurrenceSrcIngestArtifact

type IsOccurrenceSrcIngestArtifact struct {
	AllArtifactTree `json:"-"`
}

IsOccurrenceSrcIngestArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*IsOccurrenceSrcIngestArtifact) GetAlgorithm

func (v *IsOccurrenceSrcIngestArtifact) GetAlgorithm() string

GetAlgorithm returns IsOccurrenceSrcIngestArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestArtifact) GetDigest

func (v *IsOccurrenceSrcIngestArtifact) GetDigest() string

GetDigest returns IsOccurrenceSrcIngestArtifact.Digest, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestArtifact) GetId

GetId returns IsOccurrenceSrcIngestArtifact.Id, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestArtifact) MarshalJSON

func (v *IsOccurrenceSrcIngestArtifact) MarshalJSON() ([]byte, error)

func (*IsOccurrenceSrcIngestArtifact) UnmarshalJSON

func (v *IsOccurrenceSrcIngestArtifact) UnmarshalJSON(b []byte) error

type IsOccurrenceSrcIngestOccurrenceIsOccurrence

type IsOccurrenceSrcIngestOccurrenceIsOccurrence struct {
	AllIsOccurrencesTree `json:"-"`
}

IsOccurrenceSrcIngestOccurrenceIsOccurrence includes the requested fields of the GraphQL type IsOccurrence. The GraphQL type's documentation follows.

IsOccurrence is an attestation to link an artifact to a package or source.

Attestation must occur at the PackageVersion or at the SourceName.

func (*IsOccurrenceSrcIngestOccurrenceIsOccurrence) GetArtifact

GetArtifact returns IsOccurrenceSrcIngestOccurrenceIsOccurrence.Artifact, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestOccurrenceIsOccurrence) GetCollector

GetCollector returns IsOccurrenceSrcIngestOccurrenceIsOccurrence.Collector, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestOccurrenceIsOccurrence) GetId

GetId returns IsOccurrenceSrcIngestOccurrenceIsOccurrence.Id, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestOccurrenceIsOccurrence) GetJustification

GetJustification returns IsOccurrenceSrcIngestOccurrenceIsOccurrence.Justification, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestOccurrenceIsOccurrence) GetOrigin

GetOrigin returns IsOccurrenceSrcIngestOccurrenceIsOccurrence.Origin, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestOccurrenceIsOccurrence) GetSubject

GetSubject returns IsOccurrenceSrcIngestOccurrenceIsOccurrence.Subject, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestOccurrenceIsOccurrence) MarshalJSON

func (*IsOccurrenceSrcIngestOccurrenceIsOccurrence) UnmarshalJSON

type IsOccurrenceSrcIngestSource

type IsOccurrenceSrcIngestSource struct {
	AllSourceTree `json:"-"`
}

IsOccurrenceSrcIngestSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*IsOccurrenceSrcIngestSource) GetId

GetId returns IsOccurrenceSrcIngestSource.Id, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestSource) GetNamespaces

GetNamespaces returns IsOccurrenceSrcIngestSource.Namespaces, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestSource) GetType

func (v *IsOccurrenceSrcIngestSource) GetType() string

GetType returns IsOccurrenceSrcIngestSource.Type, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcIngestSource) MarshalJSON

func (v *IsOccurrenceSrcIngestSource) MarshalJSON() ([]byte, error)

func (*IsOccurrenceSrcIngestSource) UnmarshalJSON

func (v *IsOccurrenceSrcIngestSource) UnmarshalJSON(b []byte) error

type IsOccurrenceSrcResponse

type IsOccurrenceSrcResponse struct {
	// Ingests a new source and returns the corresponding source trie path.
	IngestSource IsOccurrenceSrcIngestSource `json:"ingestSource"`
	// Ingests a new artifact and returns it.
	IngestArtifact IsOccurrenceSrcIngestArtifact `json:"ingestArtifact"`
	// Ingest that an artifact is produced from a package or source.
	IngestOccurrence IsOccurrenceSrcIngestOccurrenceIsOccurrence `json:"ingestOccurrence"`
}

IsOccurrenceSrcResponse is returned by IsOccurrenceSrc on success.

func IsOccurrenceSrc

func IsOccurrenceSrc(
	ctx context.Context,
	client graphql.Client,
	source SourceInputSpec,
	artifact ArtifactInputSpec,
	occurrence IsOccurrenceInputSpec,
) (*IsOccurrenceSrcResponse, error)

func (*IsOccurrenceSrcResponse) GetIngestArtifact

GetIngestArtifact returns IsOccurrenceSrcResponse.IngestArtifact, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcResponse) GetIngestOccurrence

GetIngestOccurrence returns IsOccurrenceSrcResponse.IngestOccurrence, and is useful for accessing the field via an interface.

func (*IsOccurrenceSrcResponse) GetIngestSource

GetIngestSource returns IsOccurrenceSrcResponse.IngestSource, and is useful for accessing the field via an interface.

type IsVulnerabilityCVEIngestCVE

type IsVulnerabilityCVEIngestCVE struct {
	AllCveTree `json:"-"`
}

IsVulnerabilityCVEIngestCVE includes the requested fields of the GraphQL type CVE. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*IsVulnerabilityCVEIngestCVE) GetCveId

func (v *IsVulnerabilityCVEIngestCVE) GetCveId() string

GetCveId returns IsVulnerabilityCVEIngestCVE.CveId, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestCVE) GetId

GetId returns IsVulnerabilityCVEIngestCVE.Id, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestCVE) GetYear

func (v *IsVulnerabilityCVEIngestCVE) GetYear() int

GetYear returns IsVulnerabilityCVEIngestCVE.Year, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestCVE) MarshalJSON

func (v *IsVulnerabilityCVEIngestCVE) MarshalJSON() ([]byte, error)

func (*IsVulnerabilityCVEIngestCVE) UnmarshalJSON

func (v *IsVulnerabilityCVEIngestCVE) UnmarshalJSON(b []byte) error

type IsVulnerabilityCVEIngestIsVulnerability

type IsVulnerabilityCVEIngestIsVulnerability struct {
	// contains filtered or unexported fields
}

IsVulnerabilityCVEIngestIsVulnerability includes the requested fields of the GraphQL type IsVulnerability. The GraphQL type's documentation follows.

IsVulnerability is an attestation to link CVE/GHSA with data in OSV.

func (*IsVulnerabilityCVEIngestIsVulnerability) GetCollector

GetCollector returns IsVulnerabilityCVEIngestIsVulnerability.Collector, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestIsVulnerability) GetId

GetId returns IsVulnerabilityCVEIngestIsVulnerability.Id, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestIsVulnerability) GetJustification

func (v *IsVulnerabilityCVEIngestIsVulnerability) GetJustification() string

GetJustification returns IsVulnerabilityCVEIngestIsVulnerability.Justification, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestIsVulnerability) GetOrigin

GetOrigin returns IsVulnerabilityCVEIngestIsVulnerability.Origin, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestIsVulnerability) GetOsv

func (v *IsVulnerabilityCVEIngestIsVulnerability) GetOsv() allIsVulnerabilityOsvOSV

GetOsv returns IsVulnerabilityCVEIngestIsVulnerability.Osv, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestIsVulnerability) GetVulnerability

func (v *IsVulnerabilityCVEIngestIsVulnerability) GetVulnerability() allIsVulnerabilityVulnerabilityCveOrGhsa

GetVulnerability returns IsVulnerabilityCVEIngestIsVulnerability.Vulnerability, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestIsVulnerability) MarshalJSON

func (v *IsVulnerabilityCVEIngestIsVulnerability) MarshalJSON() ([]byte, error)

func (*IsVulnerabilityCVEIngestIsVulnerability) UnmarshalJSON

func (v *IsVulnerabilityCVEIngestIsVulnerability) UnmarshalJSON(b []byte) error

type IsVulnerabilityCVEIngestOSV

type IsVulnerabilityCVEIngestOSV struct {
	AllOSVTree `json:"-"`
}

IsVulnerabilityCVEIngestOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*IsVulnerabilityCVEIngestOSV) GetId

GetId returns IsVulnerabilityCVEIngestOSV.Id, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestOSV) GetOsvId

func (v *IsVulnerabilityCVEIngestOSV) GetOsvId() string

GetOsvId returns IsVulnerabilityCVEIngestOSV.OsvId, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEIngestOSV) MarshalJSON

func (v *IsVulnerabilityCVEIngestOSV) MarshalJSON() ([]byte, error)

func (*IsVulnerabilityCVEIngestOSV) UnmarshalJSON

func (v *IsVulnerabilityCVEIngestOSV) UnmarshalJSON(b []byte) error

type IsVulnerabilityCVEResponse

type IsVulnerabilityCVEResponse struct {
	// Ingests a new OSV vulnerability and returns it.
	IngestOSV IsVulnerabilityCVEIngestOSV `json:"ingestOSV"`
	// Ingests new CVE and returns it.
	IngestCVE IsVulnerabilityCVEIngestCVE `json:"ingestCVE"`
	// Ingest a mapping between an OSV entry and a CVE/GHSA vulnerability.
	IngestIsVulnerability IsVulnerabilityCVEIngestIsVulnerability `json:"ingestIsVulnerability"`
}

IsVulnerabilityCVEResponse is returned by IsVulnerabilityCVE on success.

func IsVulnerabilityCVE

func IsVulnerabilityCVE(
	ctx context.Context,
	client graphql.Client,
	osv OSVInputSpec,
	cve CVEInputSpec,
	isVulnerability IsVulnerabilityInputSpec,
) (*IsVulnerabilityCVEResponse, error)

func (*IsVulnerabilityCVEResponse) GetIngestCVE

GetIngestCVE returns IsVulnerabilityCVEResponse.IngestCVE, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEResponse) GetIngestIsVulnerability

GetIngestIsVulnerability returns IsVulnerabilityCVEResponse.IngestIsVulnerability, and is useful for accessing the field via an interface.

func (*IsVulnerabilityCVEResponse) GetIngestOSV

GetIngestOSV returns IsVulnerabilityCVEResponse.IngestOSV, and is useful for accessing the field via an interface.

type IsVulnerabilityGHSAIngestGHSA

type IsVulnerabilityGHSAIngestGHSA struct {
	AllGHSATree `json:"-"`
}

IsVulnerabilityGHSAIngestGHSA includes the requested fields of the GraphQL type GHSA. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*IsVulnerabilityGHSAIngestGHSA) GetGhsaId

func (v *IsVulnerabilityGHSAIngestGHSA) GetGhsaId() string

GetGhsaId returns IsVulnerabilityGHSAIngestGHSA.GhsaId, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAIngestGHSA) GetId

GetId returns IsVulnerabilityGHSAIngestGHSA.Id, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAIngestGHSA) MarshalJSON

func (v *IsVulnerabilityGHSAIngestGHSA) MarshalJSON() ([]byte, error)

func (*IsVulnerabilityGHSAIngestGHSA) UnmarshalJSON

func (v *IsVulnerabilityGHSAIngestGHSA) UnmarshalJSON(b []byte) error

type IsVulnerabilityGHSAIngestIsVulnerability

type IsVulnerabilityGHSAIngestIsVulnerability struct {
	// contains filtered or unexported fields
}

IsVulnerabilityGHSAIngestIsVulnerability includes the requested fields of the GraphQL type IsVulnerability. The GraphQL type's documentation follows.

IsVulnerability is an attestation to link CVE/GHSA with data in OSV.

func (*IsVulnerabilityGHSAIngestIsVulnerability) GetCollector

GetCollector returns IsVulnerabilityGHSAIngestIsVulnerability.Collector, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAIngestIsVulnerability) GetId

GetId returns IsVulnerabilityGHSAIngestIsVulnerability.Id, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAIngestIsVulnerability) GetJustification

func (v *IsVulnerabilityGHSAIngestIsVulnerability) GetJustification() string

GetJustification returns IsVulnerabilityGHSAIngestIsVulnerability.Justification, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAIngestIsVulnerability) GetOrigin

GetOrigin returns IsVulnerabilityGHSAIngestIsVulnerability.Origin, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAIngestIsVulnerability) GetOsv

func (v *IsVulnerabilityGHSAIngestIsVulnerability) GetOsv() allIsVulnerabilityOsvOSV

GetOsv returns IsVulnerabilityGHSAIngestIsVulnerability.Osv, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAIngestIsVulnerability) GetVulnerability

func (v *IsVulnerabilityGHSAIngestIsVulnerability) GetVulnerability() allIsVulnerabilityVulnerabilityCveOrGhsa

GetVulnerability returns IsVulnerabilityGHSAIngestIsVulnerability.Vulnerability, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAIngestIsVulnerability) MarshalJSON

func (v *IsVulnerabilityGHSAIngestIsVulnerability) MarshalJSON() ([]byte, error)

func (*IsVulnerabilityGHSAIngestIsVulnerability) UnmarshalJSON

func (v *IsVulnerabilityGHSAIngestIsVulnerability) UnmarshalJSON(b []byte) error

type IsVulnerabilityGHSAIngestOSV

type IsVulnerabilityGHSAIngestOSV struct {
	AllOSVTree `json:"-"`
}

IsVulnerabilityGHSAIngestOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*IsVulnerabilityGHSAIngestOSV) GetId

GetId returns IsVulnerabilityGHSAIngestOSV.Id, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAIngestOSV) GetOsvId

func (v *IsVulnerabilityGHSAIngestOSV) GetOsvId() string

GetOsvId returns IsVulnerabilityGHSAIngestOSV.OsvId, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAIngestOSV) MarshalJSON

func (v *IsVulnerabilityGHSAIngestOSV) MarshalJSON() ([]byte, error)

func (*IsVulnerabilityGHSAIngestOSV) UnmarshalJSON

func (v *IsVulnerabilityGHSAIngestOSV) UnmarshalJSON(b []byte) error

type IsVulnerabilityGHSAResponse

type IsVulnerabilityGHSAResponse struct {
	// Ingests a new OSV vulnerability and returns it.
	IngestOSV IsVulnerabilityGHSAIngestOSV `json:"ingestOSV"`
	// Ingests a new GitHub Security Advisory and returns it.
	IngestGHSA IsVulnerabilityGHSAIngestGHSA `json:"ingestGHSA"`
	// Ingest a mapping between an OSV entry and a CVE/GHSA vulnerability.
	IngestIsVulnerability IsVulnerabilityGHSAIngestIsVulnerability `json:"ingestIsVulnerability"`
}

IsVulnerabilityGHSAResponse is returned by IsVulnerabilityGHSA on success.

func IsVulnerabilityGHSA

func IsVulnerabilityGHSA(
	ctx context.Context,
	client graphql.Client,
	osv OSVInputSpec,
	ghsa GHSAInputSpec,
	isVulnerability IsVulnerabilityInputSpec,
) (*IsVulnerabilityGHSAResponse, error)

func (*IsVulnerabilityGHSAResponse) GetIngestGHSA

GetIngestGHSA returns IsVulnerabilityGHSAResponse.IngestGHSA, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAResponse) GetIngestIsVulnerability

GetIngestIsVulnerability returns IsVulnerabilityGHSAResponse.IngestIsVulnerability, and is useful for accessing the field via an interface.

func (*IsVulnerabilityGHSAResponse) GetIngestOSV

GetIngestOSV returns IsVulnerabilityGHSAResponse.IngestOSV, and is useful for accessing the field via an interface.

type IsVulnerabilityInputSpec

type IsVulnerabilityInputSpec struct {
	Justification string `json:"justification"`
	Origin        string `json:"origin"`
	Collector     string `json:"collector"`
}

IsVulnerabilityInputSpec represents the input to link CVE/GHSA with OSV data.

func (*IsVulnerabilityInputSpec) GetCollector

func (v *IsVulnerabilityInputSpec) GetCollector() string

GetCollector returns IsVulnerabilityInputSpec.Collector, and is useful for accessing the field via an interface.

func (*IsVulnerabilityInputSpec) GetJustification

func (v *IsVulnerabilityInputSpec) GetJustification() string

GetJustification returns IsVulnerabilityInputSpec.Justification, and is useful for accessing the field via an interface.

func (*IsVulnerabilityInputSpec) GetOrigin

func (v *IsVulnerabilityInputSpec) GetOrigin() string

GetOrigin returns IsVulnerabilityInputSpec.Origin, and is useful for accessing the field via an interface.

type MatchFlags

type MatchFlags struct {
	Pkg PkgMatchType `json:"pkg"`
}

MatchFlags is used to input the PkgMatchType enum.

func (*MatchFlags) GetPkg

func (v *MatchFlags) GetPkg() PkgMatchType

GetPkg returns MatchFlags.Pkg, and is useful for accessing the field via an interface.

type NeighborsNeighborsArtifact

type NeighborsNeighborsArtifact struct {
	Typename        *string `json:"__typename"`
	AllArtifactTree `json:"-"`
}

NeighborsNeighborsArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*NeighborsNeighborsArtifact) GetAlgorithm

func (v *NeighborsNeighborsArtifact) GetAlgorithm() string

GetAlgorithm returns NeighborsNeighborsArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsArtifact) GetDigest

func (v *NeighborsNeighborsArtifact) GetDigest() string

GetDigest returns NeighborsNeighborsArtifact.Digest, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsArtifact) GetId

GetId returns NeighborsNeighborsArtifact.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsArtifact) GetTypename

func (v *NeighborsNeighborsArtifact) GetTypename() *string

GetTypename returns NeighborsNeighborsArtifact.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsArtifact) MarshalJSON

func (v *NeighborsNeighborsArtifact) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsArtifact) UnmarshalJSON

func (v *NeighborsNeighborsArtifact) UnmarshalJSON(b []byte) error

type NeighborsNeighborsBuilder

type NeighborsNeighborsBuilder struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NeighborsNeighborsBuilder includes the requested fields of the GraphQL type Builder. The GraphQL type's documentation follows.

Builder represents the builder (e.g., FRSCA or GitHub Actions).

Currently builders are identified by the uri field.

func (*NeighborsNeighborsBuilder) GetId

func (v *NeighborsNeighborsBuilder) GetId() string

GetId returns NeighborsNeighborsBuilder.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsBuilder) GetTypename

func (v *NeighborsNeighborsBuilder) GetTypename() *string

GetTypename returns NeighborsNeighborsBuilder.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsBuilder) GetUri

func (v *NeighborsNeighborsBuilder) GetUri() string

GetUri returns NeighborsNeighborsBuilder.Uri, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsBuilder) MarshalJSON

func (v *NeighborsNeighborsBuilder) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsBuilder) UnmarshalJSON

func (v *NeighborsNeighborsBuilder) UnmarshalJSON(b []byte) error

type NeighborsNeighborsCVE

type NeighborsNeighborsCVE struct {
	Typename   *string `json:"__typename"`
	AllCveTree `json:"-"`
}

NeighborsNeighborsCVE includes the requested fields of the GraphQL type CVE. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*NeighborsNeighborsCVE) GetCveId

func (v *NeighborsNeighborsCVE) GetCveId() string

GetCveId returns NeighborsNeighborsCVE.CveId, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCVE) GetId

func (v *NeighborsNeighborsCVE) GetId() string

GetId returns NeighborsNeighborsCVE.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCVE) GetTypename

func (v *NeighborsNeighborsCVE) GetTypename() *string

GetTypename returns NeighborsNeighborsCVE.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCVE) GetYear

func (v *NeighborsNeighborsCVE) GetYear() int

GetYear returns NeighborsNeighborsCVE.Year, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCVE) MarshalJSON

func (v *NeighborsNeighborsCVE) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsCVE) UnmarshalJSON

func (v *NeighborsNeighborsCVE) UnmarshalJSON(b []byte) error

type NeighborsNeighborsCertifyBad

type NeighborsNeighborsCertifyBad struct {
	Typename      *string `json:"__typename"`
	AllCertifyBad `json:"-"`
}

NeighborsNeighborsCertifyBad includes the requested fields of the GraphQL type CertifyBad. The GraphQL type's documentation follows.

CertifyBad is an attestation that a package, source, or artifact is considered bad.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*NeighborsNeighborsCertifyBad) GetCollector

func (v *NeighborsNeighborsCertifyBad) GetCollector() string

GetCollector returns NeighborsNeighborsCertifyBad.Collector, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyBad) GetId

GetId returns NeighborsNeighborsCertifyBad.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyBad) GetJustification

func (v *NeighborsNeighborsCertifyBad) GetJustification() string

GetJustification returns NeighborsNeighborsCertifyBad.Justification, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyBad) GetOrigin

func (v *NeighborsNeighborsCertifyBad) GetOrigin() string

GetOrigin returns NeighborsNeighborsCertifyBad.Origin, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyBad) GetSubject

GetSubject returns NeighborsNeighborsCertifyBad.Subject, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyBad) GetTypename

func (v *NeighborsNeighborsCertifyBad) GetTypename() *string

GetTypename returns NeighborsNeighborsCertifyBad.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyBad) MarshalJSON

func (v *NeighborsNeighborsCertifyBad) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsCertifyBad) UnmarshalJSON

func (v *NeighborsNeighborsCertifyBad) UnmarshalJSON(b []byte) error

type NeighborsNeighborsCertifyGood

type NeighborsNeighborsCertifyGood struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NeighborsNeighborsCertifyGood includes the requested fields of the GraphQL type CertifyGood. The GraphQL type's documentation follows.

CertifyGood is an attestation that a package, source, or artifact is considered good.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*NeighborsNeighborsCertifyGood) GetCollector

func (v *NeighborsNeighborsCertifyGood) GetCollector() string

GetCollector returns NeighborsNeighborsCertifyGood.Collector, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyGood) GetId

GetId returns NeighborsNeighborsCertifyGood.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyGood) GetJustification

func (v *NeighborsNeighborsCertifyGood) GetJustification() string

GetJustification returns NeighborsNeighborsCertifyGood.Justification, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyGood) GetOrigin

func (v *NeighborsNeighborsCertifyGood) GetOrigin() string

GetOrigin returns NeighborsNeighborsCertifyGood.Origin, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyGood) GetSubject

func (v *NeighborsNeighborsCertifyGood) GetSubject() allCertifyGoodSubjectPackageSourceOrArtifact

GetSubject returns NeighborsNeighborsCertifyGood.Subject, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyGood) GetTypename

func (v *NeighborsNeighborsCertifyGood) GetTypename() *string

GetTypename returns NeighborsNeighborsCertifyGood.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyGood) MarshalJSON

func (v *NeighborsNeighborsCertifyGood) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsCertifyGood) UnmarshalJSON

func (v *NeighborsNeighborsCertifyGood) UnmarshalJSON(b []byte) error

type NeighborsNeighborsCertifyScorecard

type NeighborsNeighborsCertifyScorecard struct {
	Typename            *string `json:"__typename"`
	AllCertifyScorecard `json:"-"`
}

NeighborsNeighborsCertifyScorecard includes the requested fields of the GraphQL type CertifyScorecard. The GraphQL type's documentation follows.

CertifyScorecard is an attestation to attach a Scorecard analysis to a particular source repository.

func (*NeighborsNeighborsCertifyScorecard) GetId

GetId returns NeighborsNeighborsCertifyScorecard.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyScorecard) GetScorecard

GetScorecard returns NeighborsNeighborsCertifyScorecard.Scorecard, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyScorecard) GetSource

GetSource returns NeighborsNeighborsCertifyScorecard.Source, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyScorecard) GetTypename

func (v *NeighborsNeighborsCertifyScorecard) GetTypename() *string

GetTypename returns NeighborsNeighborsCertifyScorecard.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyScorecard) MarshalJSON

func (v *NeighborsNeighborsCertifyScorecard) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsCertifyScorecard) UnmarshalJSON

func (v *NeighborsNeighborsCertifyScorecard) UnmarshalJSON(b []byte) error

type NeighborsNeighborsCertifyVEXStatement

type NeighborsNeighborsCertifyVEXStatement struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NeighborsNeighborsCertifyVEXStatement includes the requested fields of the GraphQL type CertifyVEXStatement. The GraphQL type's documentation follows.

CertifyVEXStatement is an attestation to attach VEX statements to a package or artifact to clarify the impact of a specific vulnerability (CVE, GHSA or OSV).

func (*NeighborsNeighborsCertifyVEXStatement) GetCollector

GetCollector returns NeighborsNeighborsCertifyVEXStatement.Collector, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) GetId

GetId returns NeighborsNeighborsCertifyVEXStatement.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) GetKnownSince

func (v *NeighborsNeighborsCertifyVEXStatement) GetKnownSince() time.Time

GetKnownSince returns NeighborsNeighborsCertifyVEXStatement.KnownSince, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) GetOrigin

GetOrigin returns NeighborsNeighborsCertifyVEXStatement.Origin, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) GetStatement

GetStatement returns NeighborsNeighborsCertifyVEXStatement.Statement, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) GetStatus

GetStatus returns NeighborsNeighborsCertifyVEXStatement.Status, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) GetStatusNotes

func (v *NeighborsNeighborsCertifyVEXStatement) GetStatusNotes() string

GetStatusNotes returns NeighborsNeighborsCertifyVEXStatement.StatusNotes, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) GetSubject

func (v *NeighborsNeighborsCertifyVEXStatement) GetSubject() allCertifyVEXStatementSubjectPackageOrArtifact

GetSubject returns NeighborsNeighborsCertifyVEXStatement.Subject, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) GetTypename

GetTypename returns NeighborsNeighborsCertifyVEXStatement.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) GetVexJustification

GetVexJustification returns NeighborsNeighborsCertifyVEXStatement.VexJustification, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) GetVulnerability

func (v *NeighborsNeighborsCertifyVEXStatement) GetVulnerability() allCertifyVEXStatementVulnerability

GetVulnerability returns NeighborsNeighborsCertifyVEXStatement.Vulnerability, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVEXStatement) MarshalJSON

func (v *NeighborsNeighborsCertifyVEXStatement) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsCertifyVEXStatement) UnmarshalJSON

func (v *NeighborsNeighborsCertifyVEXStatement) UnmarshalJSON(b []byte) error

type NeighborsNeighborsCertifyVuln

type NeighborsNeighborsCertifyVuln struct {
	Typename       *string `json:"__typename"`
	AllCertifyVuln `json:"-"`
}

NeighborsNeighborsCertifyVuln includes the requested fields of the GraphQL type CertifyVuln. The GraphQL type's documentation follows.

CertifyVuln is an attestation to attach vulnerability information to a package.

This information is obtained via a scanner. If there is no vulnerability detected (no OSV, CVE, or GHSA), we attach the special NoVuln node.

func (*NeighborsNeighborsCertifyVuln) GetId

GetId returns NeighborsNeighborsCertifyVuln.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVuln) GetMetadata

GetMetadata returns NeighborsNeighborsCertifyVuln.Metadata, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVuln) GetPackage

GetPackage returns NeighborsNeighborsCertifyVuln.Package, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVuln) GetTypename

func (v *NeighborsNeighborsCertifyVuln) GetTypename() *string

GetTypename returns NeighborsNeighborsCertifyVuln.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVuln) GetVulnerability

GetVulnerability returns NeighborsNeighborsCertifyVuln.Vulnerability, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsCertifyVuln) MarshalJSON

func (v *NeighborsNeighborsCertifyVuln) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsCertifyVuln) UnmarshalJSON

func (v *NeighborsNeighborsCertifyVuln) UnmarshalJSON(b []byte) error

type NeighborsNeighborsGHSA

type NeighborsNeighborsGHSA struct {
	Typename    *string `json:"__typename"`
	AllGHSATree `json:"-"`
}

NeighborsNeighborsGHSA includes the requested fields of the GraphQL type GHSA. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*NeighborsNeighborsGHSA) GetGhsaId

func (v *NeighborsNeighborsGHSA) GetGhsaId() string

GetGhsaId returns NeighborsNeighborsGHSA.GhsaId, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsGHSA) GetId

func (v *NeighborsNeighborsGHSA) GetId() string

GetId returns NeighborsNeighborsGHSA.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsGHSA) GetTypename

func (v *NeighborsNeighborsGHSA) GetTypename() *string

GetTypename returns NeighborsNeighborsGHSA.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsGHSA) MarshalJSON

func (v *NeighborsNeighborsGHSA) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsGHSA) UnmarshalJSON

func (v *NeighborsNeighborsGHSA) UnmarshalJSON(b []byte) error

type NeighborsNeighborsHasSBOM

type NeighborsNeighborsHasSBOM struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NeighborsNeighborsHasSBOM includes the requested fields of the GraphQL type HasSBOM.

func (*NeighborsNeighborsHasSBOM) GetAlgorithm

func (v *NeighborsNeighborsHasSBOM) GetAlgorithm() string

GetAlgorithm returns NeighborsNeighborsHasSBOM.Algorithm, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSBOM) GetAnnotations

func (v *NeighborsNeighborsHasSBOM) GetAnnotations() []allHasSBOMTreeAnnotationsAnnotation

GetAnnotations returns NeighborsNeighborsHasSBOM.Annotations, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSBOM) GetCollector

func (v *NeighborsNeighborsHasSBOM) GetCollector() string

GetCollector returns NeighborsNeighborsHasSBOM.Collector, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSBOM) GetDigest

func (v *NeighborsNeighborsHasSBOM) GetDigest() string

GetDigest returns NeighborsNeighborsHasSBOM.Digest, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSBOM) GetDownloadLocation

func (v *NeighborsNeighborsHasSBOM) GetDownloadLocation() string

GetDownloadLocation returns NeighborsNeighborsHasSBOM.DownloadLocation, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSBOM) GetId

func (v *NeighborsNeighborsHasSBOM) GetId() string

GetId returns NeighborsNeighborsHasSBOM.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSBOM) GetOrigin

func (v *NeighborsNeighborsHasSBOM) GetOrigin() string

GetOrigin returns NeighborsNeighborsHasSBOM.Origin, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSBOM) GetSubject

func (v *NeighborsNeighborsHasSBOM) GetSubject() allHasSBOMTreeSubjectPackageOrArtifact

GetSubject returns NeighborsNeighborsHasSBOM.Subject, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSBOM) GetTypename

func (v *NeighborsNeighborsHasSBOM) GetTypename() *string

GetTypename returns NeighborsNeighborsHasSBOM.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSBOM) GetUri

func (v *NeighborsNeighborsHasSBOM) GetUri() string

GetUri returns NeighborsNeighborsHasSBOM.Uri, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSBOM) MarshalJSON

func (v *NeighborsNeighborsHasSBOM) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsHasSBOM) UnmarshalJSON

func (v *NeighborsNeighborsHasSBOM) UnmarshalJSON(b []byte) error

type NeighborsNeighborsHasSLSA

type NeighborsNeighborsHasSLSA struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NeighborsNeighborsHasSLSA includes the requested fields of the GraphQL type HasSLSA. The GraphQL type's documentation follows.

HasSLSA records that a subject node has a SLSA attestation.

func (*NeighborsNeighborsHasSLSA) GetId

func (v *NeighborsNeighborsHasSLSA) GetId() string

GetId returns NeighborsNeighborsHasSLSA.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSLSA) GetSlsa

func (v *NeighborsNeighborsHasSLSA) GetSlsa() allSLSATreeSlsaSLSA

GetSlsa returns NeighborsNeighborsHasSLSA.Slsa, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSLSA) GetSubject

func (v *NeighborsNeighborsHasSLSA) GetSubject() allSLSATreeSubjectArtifact

GetSubject returns NeighborsNeighborsHasSLSA.Subject, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSLSA) GetTypename

func (v *NeighborsNeighborsHasSLSA) GetTypename() *string

GetTypename returns NeighborsNeighborsHasSLSA.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSLSA) MarshalJSON

func (v *NeighborsNeighborsHasSLSA) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsHasSLSA) UnmarshalJSON

func (v *NeighborsNeighborsHasSLSA) UnmarshalJSON(b []byte) error

type NeighborsNeighborsHasSourceAt

type NeighborsNeighborsHasSourceAt struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NeighborsNeighborsHasSourceAt includes the requested fields of the GraphQL type HasSourceAt. The GraphQL type's documentation follows.

HasSourceAt records that a package's repository is a given source.

func (*NeighborsNeighborsHasSourceAt) GetCollector

func (v *NeighborsNeighborsHasSourceAt) GetCollector() string

GetCollector returns NeighborsNeighborsHasSourceAt.Collector, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSourceAt) GetId

GetId returns NeighborsNeighborsHasSourceAt.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSourceAt) GetJustification

func (v *NeighborsNeighborsHasSourceAt) GetJustification() string

GetJustification returns NeighborsNeighborsHasSourceAt.Justification, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSourceAt) GetKnownSince

func (v *NeighborsNeighborsHasSourceAt) GetKnownSince() time.Time

GetKnownSince returns NeighborsNeighborsHasSourceAt.KnownSince, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSourceAt) GetOrigin

func (v *NeighborsNeighborsHasSourceAt) GetOrigin() string

GetOrigin returns NeighborsNeighborsHasSourceAt.Origin, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSourceAt) GetPackage

func (v *NeighborsNeighborsHasSourceAt) GetPackage() allHasSourceAtPackage

GetPackage returns NeighborsNeighborsHasSourceAt.Package, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSourceAt) GetSource

func (v *NeighborsNeighborsHasSourceAt) GetSource() allHasSourceAtSource

GetSource returns NeighborsNeighborsHasSourceAt.Source, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSourceAt) GetTypename

func (v *NeighborsNeighborsHasSourceAt) GetTypename() *string

GetTypename returns NeighborsNeighborsHasSourceAt.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHasSourceAt) MarshalJSON

func (v *NeighborsNeighborsHasSourceAt) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsHasSourceAt) UnmarshalJSON

func (v *NeighborsNeighborsHasSourceAt) UnmarshalJSON(b []byte) error

type NeighborsNeighborsHashEqual

type NeighborsNeighborsHashEqual struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NeighborsNeighborsHashEqual includes the requested fields of the GraphQL type HashEqual. The GraphQL type's documentation follows.

HashEqual is an attestation that a set of artifacts are identical.

func (*NeighborsNeighborsHashEqual) GetArtifacts

func (v *NeighborsNeighborsHashEqual) GetArtifacts() []allHashEqualTreeArtifactsArtifact

GetArtifacts returns NeighborsNeighborsHashEqual.Artifacts, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHashEqual) GetCollector

func (v *NeighborsNeighborsHashEqual) GetCollector() string

GetCollector returns NeighborsNeighborsHashEqual.Collector, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHashEqual) GetId

GetId returns NeighborsNeighborsHashEqual.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHashEqual) GetJustification

func (v *NeighborsNeighborsHashEqual) GetJustification() string

GetJustification returns NeighborsNeighborsHashEqual.Justification, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHashEqual) GetOrigin

func (v *NeighborsNeighborsHashEqual) GetOrigin() string

GetOrigin returns NeighborsNeighborsHashEqual.Origin, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHashEqual) GetTypename

func (v *NeighborsNeighborsHashEqual) GetTypename() *string

GetTypename returns NeighborsNeighborsHashEqual.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsHashEqual) MarshalJSON

func (v *NeighborsNeighborsHashEqual) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsHashEqual) UnmarshalJSON

func (v *NeighborsNeighborsHashEqual) UnmarshalJSON(b []byte) error

type NeighborsNeighborsIsDependency

type NeighborsNeighborsIsDependency struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NeighborsNeighborsIsDependency includes the requested fields of the GraphQL type IsDependency. The GraphQL type's documentation follows.

IsDependency is an attestation to record that a package depends on another.

func (*NeighborsNeighborsIsDependency) GetCollector

func (v *NeighborsNeighborsIsDependency) GetCollector() string

GetCollector returns NeighborsNeighborsIsDependency.Collector, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsDependency) GetDependencyType

func (v *NeighborsNeighborsIsDependency) GetDependencyType() DependencyType

GetDependencyType returns NeighborsNeighborsIsDependency.DependencyType, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsDependency) GetDependentPackage

func (v *NeighborsNeighborsIsDependency) GetDependentPackage() allIsDependencyTreeDependentPackage

GetDependentPackage returns NeighborsNeighborsIsDependency.DependentPackage, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsDependency) GetId

GetId returns NeighborsNeighborsIsDependency.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsDependency) GetJustification

func (v *NeighborsNeighborsIsDependency) GetJustification() string

GetJustification returns NeighborsNeighborsIsDependency.Justification, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsDependency) GetOrigin

func (v *NeighborsNeighborsIsDependency) GetOrigin() string

GetOrigin returns NeighborsNeighborsIsDependency.Origin, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsDependency) GetPackage

func (v *NeighborsNeighborsIsDependency) GetPackage() allIsDependencyTreePackage

GetPackage returns NeighborsNeighborsIsDependency.Package, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsDependency) GetTypename

func (v *NeighborsNeighborsIsDependency) GetTypename() *string

GetTypename returns NeighborsNeighborsIsDependency.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsDependency) GetVersionRange

func (v *NeighborsNeighborsIsDependency) GetVersionRange() string

GetVersionRange returns NeighborsNeighborsIsDependency.VersionRange, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsDependency) MarshalJSON

func (v *NeighborsNeighborsIsDependency) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsIsDependency) UnmarshalJSON

func (v *NeighborsNeighborsIsDependency) UnmarshalJSON(b []byte) error

type NeighborsNeighborsIsOccurrence

type NeighborsNeighborsIsOccurrence struct {
	Typename             *string `json:"__typename"`
	AllIsOccurrencesTree `json:"-"`
}

NeighborsNeighborsIsOccurrence includes the requested fields of the GraphQL type IsOccurrence. The GraphQL type's documentation follows.

IsOccurrence is an attestation to link an artifact to a package or source.

Attestation must occur at the PackageVersion or at the SourceName.

func (*NeighborsNeighborsIsOccurrence) GetArtifact

GetArtifact returns NeighborsNeighborsIsOccurrence.Artifact, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsOccurrence) GetCollector

func (v *NeighborsNeighborsIsOccurrence) GetCollector() string

GetCollector returns NeighborsNeighborsIsOccurrence.Collector, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsOccurrence) GetId

GetId returns NeighborsNeighborsIsOccurrence.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsOccurrence) GetJustification

func (v *NeighborsNeighborsIsOccurrence) GetJustification() string

GetJustification returns NeighborsNeighborsIsOccurrence.Justification, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsOccurrence) GetOrigin

func (v *NeighborsNeighborsIsOccurrence) GetOrigin() string

GetOrigin returns NeighborsNeighborsIsOccurrence.Origin, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsOccurrence) GetSubject

GetSubject returns NeighborsNeighborsIsOccurrence.Subject, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsOccurrence) GetTypename

func (v *NeighborsNeighborsIsOccurrence) GetTypename() *string

GetTypename returns NeighborsNeighborsIsOccurrence.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsOccurrence) MarshalJSON

func (v *NeighborsNeighborsIsOccurrence) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsIsOccurrence) UnmarshalJSON

func (v *NeighborsNeighborsIsOccurrence) UnmarshalJSON(b []byte) error

type NeighborsNeighborsIsVulnerability

type NeighborsNeighborsIsVulnerability struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NeighborsNeighborsIsVulnerability includes the requested fields of the GraphQL type IsVulnerability. The GraphQL type's documentation follows.

IsVulnerability is an attestation to link CVE/GHSA with data in OSV.

func (*NeighborsNeighborsIsVulnerability) GetCollector

func (v *NeighborsNeighborsIsVulnerability) GetCollector() string

GetCollector returns NeighborsNeighborsIsVulnerability.Collector, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsVulnerability) GetId

GetId returns NeighborsNeighborsIsVulnerability.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsVulnerability) GetJustification

func (v *NeighborsNeighborsIsVulnerability) GetJustification() string

GetJustification returns NeighborsNeighborsIsVulnerability.Justification, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsVulnerability) GetOrigin

GetOrigin returns NeighborsNeighborsIsVulnerability.Origin, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsVulnerability) GetOsv

func (v *NeighborsNeighborsIsVulnerability) GetOsv() allIsVulnerabilityOsvOSV

GetOsv returns NeighborsNeighborsIsVulnerability.Osv, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsVulnerability) GetTypename

func (v *NeighborsNeighborsIsVulnerability) GetTypename() *string

GetTypename returns NeighborsNeighborsIsVulnerability.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsVulnerability) GetVulnerability

func (v *NeighborsNeighborsIsVulnerability) GetVulnerability() allIsVulnerabilityVulnerabilityCveOrGhsa

GetVulnerability returns NeighborsNeighborsIsVulnerability.Vulnerability, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsIsVulnerability) MarshalJSON

func (v *NeighborsNeighborsIsVulnerability) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsIsVulnerability) UnmarshalJSON

func (v *NeighborsNeighborsIsVulnerability) UnmarshalJSON(b []byte) error

type NeighborsNeighborsNoVuln

type NeighborsNeighborsNoVuln struct {
	Typename *string `json:"__typename"`
	Id       string  `json:"id"`
}

NeighborsNeighborsNoVuln includes the requested fields of the GraphQL type NoVuln. The GraphQL type's documentation follows.

NoVuln is a special vulnerability node to attest that no vulnerability has been found during a vulnerability scan.

Backends guarantee that this is a singleton node.

func (*NeighborsNeighborsNoVuln) GetId

func (v *NeighborsNeighborsNoVuln) GetId() string

GetId returns NeighborsNeighborsNoVuln.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsNoVuln) GetTypename

func (v *NeighborsNeighborsNoVuln) GetTypename() *string

GetTypename returns NeighborsNeighborsNoVuln.Typename, and is useful for accessing the field via an interface.

type NeighborsNeighborsNode

type NeighborsNeighborsNode interface {

	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() *string
	// contains filtered or unexported methods
}

NeighborsNeighborsNode includes the requested fields of the GraphQL interface Node.

NeighborsNeighborsNode is implemented by the following types: NeighborsNeighborsArtifact NeighborsNeighborsBuilder NeighborsNeighborsCVE NeighborsNeighborsCertifyBad NeighborsNeighborsCertifyGood NeighborsNeighborsCertifyScorecard NeighborsNeighborsCertifyVEXStatement NeighborsNeighborsCertifyVuln NeighborsNeighborsGHSA NeighborsNeighborsHasSBOM NeighborsNeighborsHasSLSA NeighborsNeighborsHasSourceAt NeighborsNeighborsHashEqual NeighborsNeighborsIsDependency NeighborsNeighborsIsOccurrence NeighborsNeighborsIsVulnerability NeighborsNeighborsNoVuln NeighborsNeighborsOSV NeighborsNeighborsPackage NeighborsNeighborsPkgEqual NeighborsNeighborsSource The GraphQL type's documentation follows.

Node is a union type of all the possible nodes.

It encapsulates the software tree nodes along with the evidence nodes. In a path query, all connecting evidence nodes along with their intermediate subject nodes need to be returned in order to create a complete graph.

type NeighborsNeighborsOSV

type NeighborsNeighborsOSV struct {
	Typename   *string `json:"__typename"`
	AllOSVTree `json:"-"`
}

NeighborsNeighborsOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*NeighborsNeighborsOSV) GetId

func (v *NeighborsNeighborsOSV) GetId() string

GetId returns NeighborsNeighborsOSV.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsOSV) GetOsvId

func (v *NeighborsNeighborsOSV) GetOsvId() string

GetOsvId returns NeighborsNeighborsOSV.OsvId, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsOSV) GetTypename

func (v *NeighborsNeighborsOSV) GetTypename() *string

GetTypename returns NeighborsNeighborsOSV.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsOSV) MarshalJSON

func (v *NeighborsNeighborsOSV) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsOSV) UnmarshalJSON

func (v *NeighborsNeighborsOSV) UnmarshalJSON(b []byte) error

type NeighborsNeighborsPackage

type NeighborsNeighborsPackage struct {
	Typename   *string `json:"__typename"`
	AllPkgTree `json:"-"`
}

NeighborsNeighborsPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*NeighborsNeighborsPackage) GetId

func (v *NeighborsNeighborsPackage) GetId() string

GetId returns NeighborsNeighborsPackage.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsPackage) GetNamespaces

GetNamespaces returns NeighborsNeighborsPackage.Namespaces, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsPackage) GetType

func (v *NeighborsNeighborsPackage) GetType() string

GetType returns NeighborsNeighborsPackage.Type, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsPackage) GetTypename

func (v *NeighborsNeighborsPackage) GetTypename() *string

GetTypename returns NeighborsNeighborsPackage.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsPackage) MarshalJSON

func (v *NeighborsNeighborsPackage) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsPackage) UnmarshalJSON

func (v *NeighborsNeighborsPackage) UnmarshalJSON(b []byte) error

type NeighborsNeighborsPkgEqual

type NeighborsNeighborsPkgEqual struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NeighborsNeighborsPkgEqual includes the requested fields of the GraphQL type PkgEqual. The GraphQL type's documentation follows.

PkgEqual is an attestation that a set of packages are similar.

func (*NeighborsNeighborsPkgEqual) GetCollector

func (v *NeighborsNeighborsPkgEqual) GetCollector() string

GetCollector returns NeighborsNeighborsPkgEqual.Collector, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsPkgEqual) GetId

GetId returns NeighborsNeighborsPkgEqual.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsPkgEqual) GetJustification

func (v *NeighborsNeighborsPkgEqual) GetJustification() string

GetJustification returns NeighborsNeighborsPkgEqual.Justification, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsPkgEqual) GetOrigin

func (v *NeighborsNeighborsPkgEqual) GetOrigin() string

GetOrigin returns NeighborsNeighborsPkgEqual.Origin, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsPkgEqual) GetPackages

func (v *NeighborsNeighborsPkgEqual) GetPackages() []allPkgEqualPackagesPackage

GetPackages returns NeighborsNeighborsPkgEqual.Packages, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsPkgEqual) GetTypename

func (v *NeighborsNeighborsPkgEqual) GetTypename() *string

GetTypename returns NeighborsNeighborsPkgEqual.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsPkgEqual) MarshalJSON

func (v *NeighborsNeighborsPkgEqual) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsPkgEqual) UnmarshalJSON

func (v *NeighborsNeighborsPkgEqual) UnmarshalJSON(b []byte) error

type NeighborsNeighborsSource

type NeighborsNeighborsSource struct {
	Typename      *string `json:"__typename"`
	AllSourceTree `json:"-"`
}

NeighborsNeighborsSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*NeighborsNeighborsSource) GetId

func (v *NeighborsNeighborsSource) GetId() string

GetId returns NeighborsNeighborsSource.Id, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsSource) GetNamespaces

GetNamespaces returns NeighborsNeighborsSource.Namespaces, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsSource) GetType

func (v *NeighborsNeighborsSource) GetType() string

GetType returns NeighborsNeighborsSource.Type, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsSource) GetTypename

func (v *NeighborsNeighborsSource) GetTypename() *string

GetTypename returns NeighborsNeighborsSource.Typename, and is useful for accessing the field via an interface.

func (*NeighborsNeighborsSource) MarshalJSON

func (v *NeighborsNeighborsSource) MarshalJSON() ([]byte, error)

func (*NeighborsNeighborsSource) UnmarshalJSON

func (v *NeighborsNeighborsSource) UnmarshalJSON(b []byte) error

type NeighborsResponse

type NeighborsResponse struct {
	// neighbors returns all the direct neighbors of a node.
	//
	// Similarly, the input is only specified by its ID.
	//
	// Specifying any Edge value in `usingOnly` will make the neighbors list only
	// contain the corresponding GUAC evidence trees (GUAC verbs).
	Neighbors []NeighborsNeighborsNode `json:"-"`
}

NeighborsResponse is returned by Neighbors on success.

func Neighbors

func Neighbors(
	ctx context.Context,
	client graphql.Client,
	node string,
	usingOnly []Edge,
) (*NeighborsResponse, error)

func (*NeighborsResponse) GetNeighbors

func (v *NeighborsResponse) GetNeighbors() []NeighborsNeighborsNode

GetNeighbors returns NeighborsResponse.Neighbors, and is useful for accessing the field via an interface.

func (*NeighborsResponse) MarshalJSON

func (v *NeighborsResponse) MarshalJSON() ([]byte, error)

func (*NeighborsResponse) UnmarshalJSON

func (v *NeighborsResponse) UnmarshalJSON(b []byte) error

type NodeNode

type NodeNode interface {

	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() *string
	// contains filtered or unexported methods
}

NodeNode includes the requested fields of the GraphQL interface Node.

NodeNode is implemented by the following types: NodeNodeArtifact NodeNodeBuilder NodeNodeCVE NodeNodeCertifyBad NodeNodeCertifyGood NodeNodeCertifyScorecard NodeNodeCertifyVEXStatement NodeNodeCertifyVuln NodeNodeGHSA NodeNodeHasSBOM NodeNodeHasSLSA NodeNodeHasSourceAt NodeNodeHashEqual NodeNodeIsDependency NodeNodeIsOccurrence NodeNodeIsVulnerability NodeNodeNoVuln NodeNodeOSV NodeNodePackage NodeNodePkgEqual NodeNodeSource The GraphQL type's documentation follows.

Node is a union type of all the possible nodes.

It encapsulates the software tree nodes along with the evidence nodes. In a path query, all connecting evidence nodes along with their intermediate subject nodes need to be returned in order to create a complete graph.

type NodeNodeArtifact

type NodeNodeArtifact struct {
	Typename        *string `json:"__typename"`
	AllArtifactTree `json:"-"`
}

NodeNodeArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*NodeNodeArtifact) GetAlgorithm

func (v *NodeNodeArtifact) GetAlgorithm() string

GetAlgorithm returns NodeNodeArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*NodeNodeArtifact) GetDigest

func (v *NodeNodeArtifact) GetDigest() string

GetDigest returns NodeNodeArtifact.Digest, and is useful for accessing the field via an interface.

func (*NodeNodeArtifact) GetId

func (v *NodeNodeArtifact) GetId() string

GetId returns NodeNodeArtifact.Id, and is useful for accessing the field via an interface.

func (*NodeNodeArtifact) GetTypename

func (v *NodeNodeArtifact) GetTypename() *string

GetTypename returns NodeNodeArtifact.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeArtifact) MarshalJSON

func (v *NodeNodeArtifact) MarshalJSON() ([]byte, error)

func (*NodeNodeArtifact) UnmarshalJSON

func (v *NodeNodeArtifact) UnmarshalJSON(b []byte) error

type NodeNodeBuilder

type NodeNodeBuilder struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodeNodeBuilder includes the requested fields of the GraphQL type Builder. The GraphQL type's documentation follows.

Builder represents the builder (e.g., FRSCA or GitHub Actions).

Currently builders are identified by the uri field.

func (*NodeNodeBuilder) GetId

func (v *NodeNodeBuilder) GetId() string

GetId returns NodeNodeBuilder.Id, and is useful for accessing the field via an interface.

func (*NodeNodeBuilder) GetTypename

func (v *NodeNodeBuilder) GetTypename() *string

GetTypename returns NodeNodeBuilder.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeBuilder) GetUri

func (v *NodeNodeBuilder) GetUri() string

GetUri returns NodeNodeBuilder.Uri, and is useful for accessing the field via an interface.

func (*NodeNodeBuilder) MarshalJSON

func (v *NodeNodeBuilder) MarshalJSON() ([]byte, error)

func (*NodeNodeBuilder) UnmarshalJSON

func (v *NodeNodeBuilder) UnmarshalJSON(b []byte) error

type NodeNodeCVE

type NodeNodeCVE struct {
	Typename   *string `json:"__typename"`
	AllCveTree `json:"-"`
}

NodeNodeCVE includes the requested fields of the GraphQL type CVE. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*NodeNodeCVE) GetCveId

func (v *NodeNodeCVE) GetCveId() string

GetCveId returns NodeNodeCVE.CveId, and is useful for accessing the field via an interface.

func (*NodeNodeCVE) GetId

func (v *NodeNodeCVE) GetId() string

GetId returns NodeNodeCVE.Id, and is useful for accessing the field via an interface.

func (*NodeNodeCVE) GetTypename

func (v *NodeNodeCVE) GetTypename() *string

GetTypename returns NodeNodeCVE.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeCVE) GetYear

func (v *NodeNodeCVE) GetYear() int

GetYear returns NodeNodeCVE.Year, and is useful for accessing the field via an interface.

func (*NodeNodeCVE) MarshalJSON

func (v *NodeNodeCVE) MarshalJSON() ([]byte, error)

func (*NodeNodeCVE) UnmarshalJSON

func (v *NodeNodeCVE) UnmarshalJSON(b []byte) error

type NodeNodeCertifyBad

type NodeNodeCertifyBad struct {
	Typename      *string `json:"__typename"`
	AllCertifyBad `json:"-"`
}

NodeNodeCertifyBad includes the requested fields of the GraphQL type CertifyBad. The GraphQL type's documentation follows.

CertifyBad is an attestation that a package, source, or artifact is considered bad.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*NodeNodeCertifyBad) GetCollector

func (v *NodeNodeCertifyBad) GetCollector() string

GetCollector returns NodeNodeCertifyBad.Collector, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyBad) GetId

func (v *NodeNodeCertifyBad) GetId() string

GetId returns NodeNodeCertifyBad.Id, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyBad) GetJustification

func (v *NodeNodeCertifyBad) GetJustification() string

GetJustification returns NodeNodeCertifyBad.Justification, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyBad) GetOrigin

func (v *NodeNodeCertifyBad) GetOrigin() string

GetOrigin returns NodeNodeCertifyBad.Origin, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyBad) GetSubject

GetSubject returns NodeNodeCertifyBad.Subject, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyBad) GetTypename

func (v *NodeNodeCertifyBad) GetTypename() *string

GetTypename returns NodeNodeCertifyBad.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyBad) MarshalJSON

func (v *NodeNodeCertifyBad) MarshalJSON() ([]byte, error)

func (*NodeNodeCertifyBad) UnmarshalJSON

func (v *NodeNodeCertifyBad) UnmarshalJSON(b []byte) error

type NodeNodeCertifyGood

type NodeNodeCertifyGood struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodeNodeCertifyGood includes the requested fields of the GraphQL type CertifyGood. The GraphQL type's documentation follows.

CertifyGood is an attestation that a package, source, or artifact is considered good.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*NodeNodeCertifyGood) GetCollector

func (v *NodeNodeCertifyGood) GetCollector() string

GetCollector returns NodeNodeCertifyGood.Collector, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyGood) GetId

func (v *NodeNodeCertifyGood) GetId() string

GetId returns NodeNodeCertifyGood.Id, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyGood) GetJustification

func (v *NodeNodeCertifyGood) GetJustification() string

GetJustification returns NodeNodeCertifyGood.Justification, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyGood) GetOrigin

func (v *NodeNodeCertifyGood) GetOrigin() string

GetOrigin returns NodeNodeCertifyGood.Origin, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyGood) GetSubject

func (v *NodeNodeCertifyGood) GetSubject() allCertifyGoodSubjectPackageSourceOrArtifact

GetSubject returns NodeNodeCertifyGood.Subject, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyGood) GetTypename

func (v *NodeNodeCertifyGood) GetTypename() *string

GetTypename returns NodeNodeCertifyGood.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyGood) MarshalJSON

func (v *NodeNodeCertifyGood) MarshalJSON() ([]byte, error)

func (*NodeNodeCertifyGood) UnmarshalJSON

func (v *NodeNodeCertifyGood) UnmarshalJSON(b []byte) error

type NodeNodeCertifyScorecard

type NodeNodeCertifyScorecard struct {
	Typename            *string `json:"__typename"`
	AllCertifyScorecard `json:"-"`
}

NodeNodeCertifyScorecard includes the requested fields of the GraphQL type CertifyScorecard. The GraphQL type's documentation follows.

CertifyScorecard is an attestation to attach a Scorecard analysis to a particular source repository.

func (*NodeNodeCertifyScorecard) GetId

func (v *NodeNodeCertifyScorecard) GetId() string

GetId returns NodeNodeCertifyScorecard.Id, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyScorecard) GetScorecard

GetScorecard returns NodeNodeCertifyScorecard.Scorecard, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyScorecard) GetSource

GetSource returns NodeNodeCertifyScorecard.Source, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyScorecard) GetTypename

func (v *NodeNodeCertifyScorecard) GetTypename() *string

GetTypename returns NodeNodeCertifyScorecard.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyScorecard) MarshalJSON

func (v *NodeNodeCertifyScorecard) MarshalJSON() ([]byte, error)

func (*NodeNodeCertifyScorecard) UnmarshalJSON

func (v *NodeNodeCertifyScorecard) UnmarshalJSON(b []byte) error

type NodeNodeCertifyVEXStatement

type NodeNodeCertifyVEXStatement struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodeNodeCertifyVEXStatement includes the requested fields of the GraphQL type CertifyVEXStatement. The GraphQL type's documentation follows.

CertifyVEXStatement is an attestation to attach VEX statements to a package or artifact to clarify the impact of a specific vulnerability (CVE, GHSA or OSV).

func (*NodeNodeCertifyVEXStatement) GetCollector

func (v *NodeNodeCertifyVEXStatement) GetCollector() string

GetCollector returns NodeNodeCertifyVEXStatement.Collector, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) GetId

GetId returns NodeNodeCertifyVEXStatement.Id, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) GetKnownSince

func (v *NodeNodeCertifyVEXStatement) GetKnownSince() time.Time

GetKnownSince returns NodeNodeCertifyVEXStatement.KnownSince, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) GetOrigin

func (v *NodeNodeCertifyVEXStatement) GetOrigin() string

GetOrigin returns NodeNodeCertifyVEXStatement.Origin, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) GetStatement

func (v *NodeNodeCertifyVEXStatement) GetStatement() string

GetStatement returns NodeNodeCertifyVEXStatement.Statement, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) GetStatus

func (v *NodeNodeCertifyVEXStatement) GetStatus() VexStatus

GetStatus returns NodeNodeCertifyVEXStatement.Status, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) GetStatusNotes

func (v *NodeNodeCertifyVEXStatement) GetStatusNotes() string

GetStatusNotes returns NodeNodeCertifyVEXStatement.StatusNotes, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) GetSubject

func (v *NodeNodeCertifyVEXStatement) GetSubject() allCertifyVEXStatementSubjectPackageOrArtifact

GetSubject returns NodeNodeCertifyVEXStatement.Subject, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) GetTypename

func (v *NodeNodeCertifyVEXStatement) GetTypename() *string

GetTypename returns NodeNodeCertifyVEXStatement.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) GetVexJustification

func (v *NodeNodeCertifyVEXStatement) GetVexJustification() VexJustification

GetVexJustification returns NodeNodeCertifyVEXStatement.VexJustification, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) GetVulnerability

func (v *NodeNodeCertifyVEXStatement) GetVulnerability() allCertifyVEXStatementVulnerability

GetVulnerability returns NodeNodeCertifyVEXStatement.Vulnerability, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVEXStatement) MarshalJSON

func (v *NodeNodeCertifyVEXStatement) MarshalJSON() ([]byte, error)

func (*NodeNodeCertifyVEXStatement) UnmarshalJSON

func (v *NodeNodeCertifyVEXStatement) UnmarshalJSON(b []byte) error

type NodeNodeCertifyVuln

type NodeNodeCertifyVuln struct {
	Typename       *string `json:"__typename"`
	AllCertifyVuln `json:"-"`
}

NodeNodeCertifyVuln includes the requested fields of the GraphQL type CertifyVuln. The GraphQL type's documentation follows.

CertifyVuln is an attestation to attach vulnerability information to a package.

This information is obtained via a scanner. If there is no vulnerability detected (no OSV, CVE, or GHSA), we attach the special NoVuln node.

func (*NodeNodeCertifyVuln) GetId

func (v *NodeNodeCertifyVuln) GetId() string

GetId returns NodeNodeCertifyVuln.Id, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVuln) GetMetadata

GetMetadata returns NodeNodeCertifyVuln.Metadata, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVuln) GetPackage

GetPackage returns NodeNodeCertifyVuln.Package, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVuln) GetTypename

func (v *NodeNodeCertifyVuln) GetTypename() *string

GetTypename returns NodeNodeCertifyVuln.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVuln) GetVulnerability

func (v *NodeNodeCertifyVuln) GetVulnerability() AllCertifyVulnVulnerability

GetVulnerability returns NodeNodeCertifyVuln.Vulnerability, and is useful for accessing the field via an interface.

func (*NodeNodeCertifyVuln) MarshalJSON

func (v *NodeNodeCertifyVuln) MarshalJSON() ([]byte, error)

func (*NodeNodeCertifyVuln) UnmarshalJSON

func (v *NodeNodeCertifyVuln) UnmarshalJSON(b []byte) error

type NodeNodeGHSA

type NodeNodeGHSA struct {
	Typename    *string `json:"__typename"`
	AllGHSATree `json:"-"`
}

NodeNodeGHSA includes the requested fields of the GraphQL type GHSA. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*NodeNodeGHSA) GetGhsaId

func (v *NodeNodeGHSA) GetGhsaId() string

GetGhsaId returns NodeNodeGHSA.GhsaId, and is useful for accessing the field via an interface.

func (*NodeNodeGHSA) GetId

func (v *NodeNodeGHSA) GetId() string

GetId returns NodeNodeGHSA.Id, and is useful for accessing the field via an interface.

func (*NodeNodeGHSA) GetTypename

func (v *NodeNodeGHSA) GetTypename() *string

GetTypename returns NodeNodeGHSA.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeGHSA) MarshalJSON

func (v *NodeNodeGHSA) MarshalJSON() ([]byte, error)

func (*NodeNodeGHSA) UnmarshalJSON

func (v *NodeNodeGHSA) UnmarshalJSON(b []byte) error

type NodeNodeHasSBOM

type NodeNodeHasSBOM struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodeNodeHasSBOM includes the requested fields of the GraphQL type HasSBOM.

func (*NodeNodeHasSBOM) GetAlgorithm

func (v *NodeNodeHasSBOM) GetAlgorithm() string

GetAlgorithm returns NodeNodeHasSBOM.Algorithm, and is useful for accessing the field via an interface.

func (*NodeNodeHasSBOM) GetAnnotations

func (v *NodeNodeHasSBOM) GetAnnotations() []allHasSBOMTreeAnnotationsAnnotation

GetAnnotations returns NodeNodeHasSBOM.Annotations, and is useful for accessing the field via an interface.

func (*NodeNodeHasSBOM) GetCollector

func (v *NodeNodeHasSBOM) GetCollector() string

GetCollector returns NodeNodeHasSBOM.Collector, and is useful for accessing the field via an interface.

func (*NodeNodeHasSBOM) GetDigest

func (v *NodeNodeHasSBOM) GetDigest() string

GetDigest returns NodeNodeHasSBOM.Digest, and is useful for accessing the field via an interface.

func (*NodeNodeHasSBOM) GetDownloadLocation

func (v *NodeNodeHasSBOM) GetDownloadLocation() string

GetDownloadLocation returns NodeNodeHasSBOM.DownloadLocation, and is useful for accessing the field via an interface.

func (*NodeNodeHasSBOM) GetId

func (v *NodeNodeHasSBOM) GetId() string

GetId returns NodeNodeHasSBOM.Id, and is useful for accessing the field via an interface.

func (*NodeNodeHasSBOM) GetOrigin

func (v *NodeNodeHasSBOM) GetOrigin() string

GetOrigin returns NodeNodeHasSBOM.Origin, and is useful for accessing the field via an interface.

func (*NodeNodeHasSBOM) GetSubject

func (v *NodeNodeHasSBOM) GetSubject() allHasSBOMTreeSubjectPackageOrArtifact

GetSubject returns NodeNodeHasSBOM.Subject, and is useful for accessing the field via an interface.

func (*NodeNodeHasSBOM) GetTypename

func (v *NodeNodeHasSBOM) GetTypename() *string

GetTypename returns NodeNodeHasSBOM.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeHasSBOM) GetUri

func (v *NodeNodeHasSBOM) GetUri() string

GetUri returns NodeNodeHasSBOM.Uri, and is useful for accessing the field via an interface.

func (*NodeNodeHasSBOM) MarshalJSON

func (v *NodeNodeHasSBOM) MarshalJSON() ([]byte, error)

func (*NodeNodeHasSBOM) UnmarshalJSON

func (v *NodeNodeHasSBOM) UnmarshalJSON(b []byte) error

type NodeNodeHasSLSA

type NodeNodeHasSLSA struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodeNodeHasSLSA includes the requested fields of the GraphQL type HasSLSA. The GraphQL type's documentation follows.

HasSLSA records that a subject node has a SLSA attestation.

func (*NodeNodeHasSLSA) GetId

func (v *NodeNodeHasSLSA) GetId() string

GetId returns NodeNodeHasSLSA.Id, and is useful for accessing the field via an interface.

func (*NodeNodeHasSLSA) GetSlsa

func (v *NodeNodeHasSLSA) GetSlsa() allSLSATreeSlsaSLSA

GetSlsa returns NodeNodeHasSLSA.Slsa, and is useful for accessing the field via an interface.

func (*NodeNodeHasSLSA) GetSubject

func (v *NodeNodeHasSLSA) GetSubject() allSLSATreeSubjectArtifact

GetSubject returns NodeNodeHasSLSA.Subject, and is useful for accessing the field via an interface.

func (*NodeNodeHasSLSA) GetTypename

func (v *NodeNodeHasSLSA) GetTypename() *string

GetTypename returns NodeNodeHasSLSA.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeHasSLSA) MarshalJSON

func (v *NodeNodeHasSLSA) MarshalJSON() ([]byte, error)

func (*NodeNodeHasSLSA) UnmarshalJSON

func (v *NodeNodeHasSLSA) UnmarshalJSON(b []byte) error

type NodeNodeHasSourceAt

type NodeNodeHasSourceAt struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodeNodeHasSourceAt includes the requested fields of the GraphQL type HasSourceAt. The GraphQL type's documentation follows.

HasSourceAt records that a package's repository is a given source.

func (*NodeNodeHasSourceAt) GetCollector

func (v *NodeNodeHasSourceAt) GetCollector() string

GetCollector returns NodeNodeHasSourceAt.Collector, and is useful for accessing the field via an interface.

func (*NodeNodeHasSourceAt) GetId

func (v *NodeNodeHasSourceAt) GetId() string

GetId returns NodeNodeHasSourceAt.Id, and is useful for accessing the field via an interface.

func (*NodeNodeHasSourceAt) GetJustification

func (v *NodeNodeHasSourceAt) GetJustification() string

GetJustification returns NodeNodeHasSourceAt.Justification, and is useful for accessing the field via an interface.

func (*NodeNodeHasSourceAt) GetKnownSince

func (v *NodeNodeHasSourceAt) GetKnownSince() time.Time

GetKnownSince returns NodeNodeHasSourceAt.KnownSince, and is useful for accessing the field via an interface.

func (*NodeNodeHasSourceAt) GetOrigin

func (v *NodeNodeHasSourceAt) GetOrigin() string

GetOrigin returns NodeNodeHasSourceAt.Origin, and is useful for accessing the field via an interface.

func (*NodeNodeHasSourceAt) GetPackage

func (v *NodeNodeHasSourceAt) GetPackage() allHasSourceAtPackage

GetPackage returns NodeNodeHasSourceAt.Package, and is useful for accessing the field via an interface.

func (*NodeNodeHasSourceAt) GetSource

func (v *NodeNodeHasSourceAt) GetSource() allHasSourceAtSource

GetSource returns NodeNodeHasSourceAt.Source, and is useful for accessing the field via an interface.

func (*NodeNodeHasSourceAt) GetTypename

func (v *NodeNodeHasSourceAt) GetTypename() *string

GetTypename returns NodeNodeHasSourceAt.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeHasSourceAt) MarshalJSON

func (v *NodeNodeHasSourceAt) MarshalJSON() ([]byte, error)

func (*NodeNodeHasSourceAt) UnmarshalJSON

func (v *NodeNodeHasSourceAt) UnmarshalJSON(b []byte) error

type NodeNodeHashEqual

type NodeNodeHashEqual struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodeNodeHashEqual includes the requested fields of the GraphQL type HashEqual. The GraphQL type's documentation follows.

HashEqual is an attestation that a set of artifacts are identical.

func (*NodeNodeHashEqual) GetArtifacts

func (v *NodeNodeHashEqual) GetArtifacts() []allHashEqualTreeArtifactsArtifact

GetArtifacts returns NodeNodeHashEqual.Artifacts, and is useful for accessing the field via an interface.

func (*NodeNodeHashEqual) GetCollector

func (v *NodeNodeHashEqual) GetCollector() string

GetCollector returns NodeNodeHashEqual.Collector, and is useful for accessing the field via an interface.

func (*NodeNodeHashEqual) GetId

func (v *NodeNodeHashEqual) GetId() string

GetId returns NodeNodeHashEqual.Id, and is useful for accessing the field via an interface.

func (*NodeNodeHashEqual) GetJustification

func (v *NodeNodeHashEqual) GetJustification() string

GetJustification returns NodeNodeHashEqual.Justification, and is useful for accessing the field via an interface.

func (*NodeNodeHashEqual) GetOrigin

func (v *NodeNodeHashEqual) GetOrigin() string

GetOrigin returns NodeNodeHashEqual.Origin, and is useful for accessing the field via an interface.

func (*NodeNodeHashEqual) GetTypename

func (v *NodeNodeHashEqual) GetTypename() *string

GetTypename returns NodeNodeHashEqual.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeHashEqual) MarshalJSON

func (v *NodeNodeHashEqual) MarshalJSON() ([]byte, error)

func (*NodeNodeHashEqual) UnmarshalJSON

func (v *NodeNodeHashEqual) UnmarshalJSON(b []byte) error

type NodeNodeIsDependency

type NodeNodeIsDependency struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodeNodeIsDependency includes the requested fields of the GraphQL type IsDependency. The GraphQL type's documentation follows.

IsDependency is an attestation to record that a package depends on another.

func (*NodeNodeIsDependency) GetCollector

func (v *NodeNodeIsDependency) GetCollector() string

GetCollector returns NodeNodeIsDependency.Collector, and is useful for accessing the field via an interface.

func (*NodeNodeIsDependency) GetDependencyType

func (v *NodeNodeIsDependency) GetDependencyType() DependencyType

GetDependencyType returns NodeNodeIsDependency.DependencyType, and is useful for accessing the field via an interface.

func (*NodeNodeIsDependency) GetDependentPackage

func (v *NodeNodeIsDependency) GetDependentPackage() allIsDependencyTreeDependentPackage

GetDependentPackage returns NodeNodeIsDependency.DependentPackage, and is useful for accessing the field via an interface.

func (*NodeNodeIsDependency) GetId

func (v *NodeNodeIsDependency) GetId() string

GetId returns NodeNodeIsDependency.Id, and is useful for accessing the field via an interface.

func (*NodeNodeIsDependency) GetJustification

func (v *NodeNodeIsDependency) GetJustification() string

GetJustification returns NodeNodeIsDependency.Justification, and is useful for accessing the field via an interface.

func (*NodeNodeIsDependency) GetOrigin

func (v *NodeNodeIsDependency) GetOrigin() string

GetOrigin returns NodeNodeIsDependency.Origin, and is useful for accessing the field via an interface.

func (*NodeNodeIsDependency) GetPackage

func (v *NodeNodeIsDependency) GetPackage() allIsDependencyTreePackage

GetPackage returns NodeNodeIsDependency.Package, and is useful for accessing the field via an interface.

func (*NodeNodeIsDependency) GetTypename

func (v *NodeNodeIsDependency) GetTypename() *string

GetTypename returns NodeNodeIsDependency.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeIsDependency) GetVersionRange

func (v *NodeNodeIsDependency) GetVersionRange() string

GetVersionRange returns NodeNodeIsDependency.VersionRange, and is useful for accessing the field via an interface.

func (*NodeNodeIsDependency) MarshalJSON

func (v *NodeNodeIsDependency) MarshalJSON() ([]byte, error)

func (*NodeNodeIsDependency) UnmarshalJSON

func (v *NodeNodeIsDependency) UnmarshalJSON(b []byte) error

type NodeNodeIsOccurrence

type NodeNodeIsOccurrence struct {
	Typename             *string `json:"__typename"`
	AllIsOccurrencesTree `json:"-"`
}

NodeNodeIsOccurrence includes the requested fields of the GraphQL type IsOccurrence. The GraphQL type's documentation follows.

IsOccurrence is an attestation to link an artifact to a package or source.

Attestation must occur at the PackageVersion or at the SourceName.

func (*NodeNodeIsOccurrence) GetArtifact

GetArtifact returns NodeNodeIsOccurrence.Artifact, and is useful for accessing the field via an interface.

func (*NodeNodeIsOccurrence) GetCollector

func (v *NodeNodeIsOccurrence) GetCollector() string

GetCollector returns NodeNodeIsOccurrence.Collector, and is useful for accessing the field via an interface.

func (*NodeNodeIsOccurrence) GetId

func (v *NodeNodeIsOccurrence) GetId() string

GetId returns NodeNodeIsOccurrence.Id, and is useful for accessing the field via an interface.

func (*NodeNodeIsOccurrence) GetJustification

func (v *NodeNodeIsOccurrence) GetJustification() string

GetJustification returns NodeNodeIsOccurrence.Justification, and is useful for accessing the field via an interface.

func (*NodeNodeIsOccurrence) GetOrigin

func (v *NodeNodeIsOccurrence) GetOrigin() string

GetOrigin returns NodeNodeIsOccurrence.Origin, and is useful for accessing the field via an interface.

func (*NodeNodeIsOccurrence) GetSubject

GetSubject returns NodeNodeIsOccurrence.Subject, and is useful for accessing the field via an interface.

func (*NodeNodeIsOccurrence) GetTypename

func (v *NodeNodeIsOccurrence) GetTypename() *string

GetTypename returns NodeNodeIsOccurrence.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeIsOccurrence) MarshalJSON

func (v *NodeNodeIsOccurrence) MarshalJSON() ([]byte, error)

func (*NodeNodeIsOccurrence) UnmarshalJSON

func (v *NodeNodeIsOccurrence) UnmarshalJSON(b []byte) error

type NodeNodeIsVulnerability

type NodeNodeIsVulnerability struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodeNodeIsVulnerability includes the requested fields of the GraphQL type IsVulnerability. The GraphQL type's documentation follows.

IsVulnerability is an attestation to link CVE/GHSA with data in OSV.

func (*NodeNodeIsVulnerability) GetCollector

func (v *NodeNodeIsVulnerability) GetCollector() string

GetCollector returns NodeNodeIsVulnerability.Collector, and is useful for accessing the field via an interface.

func (*NodeNodeIsVulnerability) GetId

func (v *NodeNodeIsVulnerability) GetId() string

GetId returns NodeNodeIsVulnerability.Id, and is useful for accessing the field via an interface.

func (*NodeNodeIsVulnerability) GetJustification

func (v *NodeNodeIsVulnerability) GetJustification() string

GetJustification returns NodeNodeIsVulnerability.Justification, and is useful for accessing the field via an interface.

func (*NodeNodeIsVulnerability) GetOrigin

func (v *NodeNodeIsVulnerability) GetOrigin() string

GetOrigin returns NodeNodeIsVulnerability.Origin, and is useful for accessing the field via an interface.

func (*NodeNodeIsVulnerability) GetOsv

func (v *NodeNodeIsVulnerability) GetOsv() allIsVulnerabilityOsvOSV

GetOsv returns NodeNodeIsVulnerability.Osv, and is useful for accessing the field via an interface.

func (*NodeNodeIsVulnerability) GetTypename

func (v *NodeNodeIsVulnerability) GetTypename() *string

GetTypename returns NodeNodeIsVulnerability.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeIsVulnerability) GetVulnerability

func (v *NodeNodeIsVulnerability) GetVulnerability() allIsVulnerabilityVulnerabilityCveOrGhsa

GetVulnerability returns NodeNodeIsVulnerability.Vulnerability, and is useful for accessing the field via an interface.

func (*NodeNodeIsVulnerability) MarshalJSON

func (v *NodeNodeIsVulnerability) MarshalJSON() ([]byte, error)

func (*NodeNodeIsVulnerability) UnmarshalJSON

func (v *NodeNodeIsVulnerability) UnmarshalJSON(b []byte) error

type NodeNodeNoVuln

type NodeNodeNoVuln struct {
	Typename *string `json:"__typename"`
	Id       string  `json:"id"`
}

NodeNodeNoVuln includes the requested fields of the GraphQL type NoVuln. The GraphQL type's documentation follows.

NoVuln is a special vulnerability node to attest that no vulnerability has been found during a vulnerability scan.

Backends guarantee that this is a singleton node.

func (*NodeNodeNoVuln) GetId

func (v *NodeNodeNoVuln) GetId() string

GetId returns NodeNodeNoVuln.Id, and is useful for accessing the field via an interface.

func (*NodeNodeNoVuln) GetTypename

func (v *NodeNodeNoVuln) GetTypename() *string

GetTypename returns NodeNodeNoVuln.Typename, and is useful for accessing the field via an interface.

type NodeNodeOSV

type NodeNodeOSV struct {
	Typename   *string `json:"__typename"`
	AllOSVTree `json:"-"`
}

NodeNodeOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*NodeNodeOSV) GetId

func (v *NodeNodeOSV) GetId() string

GetId returns NodeNodeOSV.Id, and is useful for accessing the field via an interface.

func (*NodeNodeOSV) GetOsvId

func (v *NodeNodeOSV) GetOsvId() string

GetOsvId returns NodeNodeOSV.OsvId, and is useful for accessing the field via an interface.

func (*NodeNodeOSV) GetTypename

func (v *NodeNodeOSV) GetTypename() *string

GetTypename returns NodeNodeOSV.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeOSV) MarshalJSON

func (v *NodeNodeOSV) MarshalJSON() ([]byte, error)

func (*NodeNodeOSV) UnmarshalJSON

func (v *NodeNodeOSV) UnmarshalJSON(b []byte) error

type NodeNodePackage

type NodeNodePackage struct {
	Typename   *string `json:"__typename"`
	AllPkgTree `json:"-"`
}

NodeNodePackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*NodeNodePackage) GetId

func (v *NodeNodePackage) GetId() string

GetId returns NodeNodePackage.Id, and is useful for accessing the field via an interface.

func (*NodeNodePackage) GetNamespaces

GetNamespaces returns NodeNodePackage.Namespaces, and is useful for accessing the field via an interface.

func (*NodeNodePackage) GetType

func (v *NodeNodePackage) GetType() string

GetType returns NodeNodePackage.Type, and is useful for accessing the field via an interface.

func (*NodeNodePackage) GetTypename

func (v *NodeNodePackage) GetTypename() *string

GetTypename returns NodeNodePackage.Typename, and is useful for accessing the field via an interface.

func (*NodeNodePackage) MarshalJSON

func (v *NodeNodePackage) MarshalJSON() ([]byte, error)

func (*NodeNodePackage) UnmarshalJSON

func (v *NodeNodePackage) UnmarshalJSON(b []byte) error

type NodeNodePkgEqual

type NodeNodePkgEqual struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodeNodePkgEqual includes the requested fields of the GraphQL type PkgEqual. The GraphQL type's documentation follows.

PkgEqual is an attestation that a set of packages are similar.

func (*NodeNodePkgEqual) GetCollector

func (v *NodeNodePkgEqual) GetCollector() string

GetCollector returns NodeNodePkgEqual.Collector, and is useful for accessing the field via an interface.

func (*NodeNodePkgEqual) GetId

func (v *NodeNodePkgEqual) GetId() string

GetId returns NodeNodePkgEqual.Id, and is useful for accessing the field via an interface.

func (*NodeNodePkgEqual) GetJustification

func (v *NodeNodePkgEqual) GetJustification() string

GetJustification returns NodeNodePkgEqual.Justification, and is useful for accessing the field via an interface.

func (*NodeNodePkgEqual) GetOrigin

func (v *NodeNodePkgEqual) GetOrigin() string

GetOrigin returns NodeNodePkgEqual.Origin, and is useful for accessing the field via an interface.

func (*NodeNodePkgEqual) GetPackages

func (v *NodeNodePkgEqual) GetPackages() []allPkgEqualPackagesPackage

GetPackages returns NodeNodePkgEqual.Packages, and is useful for accessing the field via an interface.

func (*NodeNodePkgEqual) GetTypename

func (v *NodeNodePkgEqual) GetTypename() *string

GetTypename returns NodeNodePkgEqual.Typename, and is useful for accessing the field via an interface.

func (*NodeNodePkgEqual) MarshalJSON

func (v *NodeNodePkgEqual) MarshalJSON() ([]byte, error)

func (*NodeNodePkgEqual) UnmarshalJSON

func (v *NodeNodePkgEqual) UnmarshalJSON(b []byte) error

type NodeNodeSource

type NodeNodeSource struct {
	Typename      *string `json:"__typename"`
	AllSourceTree `json:"-"`
}

NodeNodeSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*NodeNodeSource) GetId

func (v *NodeNodeSource) GetId() string

GetId returns NodeNodeSource.Id, and is useful for accessing the field via an interface.

func (*NodeNodeSource) GetNamespaces

GetNamespaces returns NodeNodeSource.Namespaces, and is useful for accessing the field via an interface.

func (*NodeNodeSource) GetType

func (v *NodeNodeSource) GetType() string

GetType returns NodeNodeSource.Type, and is useful for accessing the field via an interface.

func (*NodeNodeSource) GetTypename

func (v *NodeNodeSource) GetTypename() *string

GetTypename returns NodeNodeSource.Typename, and is useful for accessing the field via an interface.

func (*NodeNodeSource) MarshalJSON

func (v *NodeNodeSource) MarshalJSON() ([]byte, error)

func (*NodeNodeSource) UnmarshalJSON

func (v *NodeNodeSource) UnmarshalJSON(b []byte) error

type NodeResponse

type NodeResponse struct {
	// node returns a single node, regardless of type.
	//
	// The input is only specified by its ID.
	Node NodeNode `json:"-"`
}

NodeResponse is returned by Node on success.

func Node

func Node(
	ctx context.Context,
	client graphql.Client,
	node string,
) (*NodeResponse, error)

func (*NodeResponse) GetNode

func (v *NodeResponse) GetNode() NodeNode

GetNode returns NodeResponse.Node, and is useful for accessing the field via an interface.

func (*NodeResponse) MarshalJSON

func (v *NodeResponse) MarshalJSON() ([]byte, error)

func (*NodeResponse) UnmarshalJSON

func (v *NodeResponse) UnmarshalJSON(b []byte) error

type NodesNodesArtifact

type NodesNodesArtifact struct {
	Typename        *string `json:"__typename"`
	AllArtifactTree `json:"-"`
}

NodesNodesArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*NodesNodesArtifact) GetAlgorithm

func (v *NodesNodesArtifact) GetAlgorithm() string

GetAlgorithm returns NodesNodesArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*NodesNodesArtifact) GetDigest

func (v *NodesNodesArtifact) GetDigest() string

GetDigest returns NodesNodesArtifact.Digest, and is useful for accessing the field via an interface.

func (*NodesNodesArtifact) GetId

func (v *NodesNodesArtifact) GetId() string

GetId returns NodesNodesArtifact.Id, and is useful for accessing the field via an interface.

func (*NodesNodesArtifact) GetTypename

func (v *NodesNodesArtifact) GetTypename() *string

GetTypename returns NodesNodesArtifact.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesArtifact) MarshalJSON

func (v *NodesNodesArtifact) MarshalJSON() ([]byte, error)

func (*NodesNodesArtifact) UnmarshalJSON

func (v *NodesNodesArtifact) UnmarshalJSON(b []byte) error

type NodesNodesBuilder

type NodesNodesBuilder struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodesNodesBuilder includes the requested fields of the GraphQL type Builder. The GraphQL type's documentation follows.

Builder represents the builder (e.g., FRSCA or GitHub Actions).

Currently builders are identified by the uri field.

func (*NodesNodesBuilder) GetId

func (v *NodesNodesBuilder) GetId() string

GetId returns NodesNodesBuilder.Id, and is useful for accessing the field via an interface.

func (*NodesNodesBuilder) GetTypename

func (v *NodesNodesBuilder) GetTypename() *string

GetTypename returns NodesNodesBuilder.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesBuilder) GetUri

func (v *NodesNodesBuilder) GetUri() string

GetUri returns NodesNodesBuilder.Uri, and is useful for accessing the field via an interface.

func (*NodesNodesBuilder) MarshalJSON

func (v *NodesNodesBuilder) MarshalJSON() ([]byte, error)

func (*NodesNodesBuilder) UnmarshalJSON

func (v *NodesNodesBuilder) UnmarshalJSON(b []byte) error

type NodesNodesCVE

type NodesNodesCVE struct {
	Typename   *string `json:"__typename"`
	AllCveTree `json:"-"`
}

NodesNodesCVE includes the requested fields of the GraphQL type CVE. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*NodesNodesCVE) GetCveId

func (v *NodesNodesCVE) GetCveId() string

GetCveId returns NodesNodesCVE.CveId, and is useful for accessing the field via an interface.

func (*NodesNodesCVE) GetId

func (v *NodesNodesCVE) GetId() string

GetId returns NodesNodesCVE.Id, and is useful for accessing the field via an interface.

func (*NodesNodesCVE) GetTypename

func (v *NodesNodesCVE) GetTypename() *string

GetTypename returns NodesNodesCVE.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesCVE) GetYear

func (v *NodesNodesCVE) GetYear() int

GetYear returns NodesNodesCVE.Year, and is useful for accessing the field via an interface.

func (*NodesNodesCVE) MarshalJSON

func (v *NodesNodesCVE) MarshalJSON() ([]byte, error)

func (*NodesNodesCVE) UnmarshalJSON

func (v *NodesNodesCVE) UnmarshalJSON(b []byte) error

type NodesNodesCertifyBad

type NodesNodesCertifyBad struct {
	Typename      *string `json:"__typename"`
	AllCertifyBad `json:"-"`
}

NodesNodesCertifyBad includes the requested fields of the GraphQL type CertifyBad. The GraphQL type's documentation follows.

CertifyBad is an attestation that a package, source, or artifact is considered bad.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*NodesNodesCertifyBad) GetCollector

func (v *NodesNodesCertifyBad) GetCollector() string

GetCollector returns NodesNodesCertifyBad.Collector, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyBad) GetId

func (v *NodesNodesCertifyBad) GetId() string

GetId returns NodesNodesCertifyBad.Id, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyBad) GetJustification

func (v *NodesNodesCertifyBad) GetJustification() string

GetJustification returns NodesNodesCertifyBad.Justification, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyBad) GetOrigin

func (v *NodesNodesCertifyBad) GetOrigin() string

GetOrigin returns NodesNodesCertifyBad.Origin, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyBad) GetSubject

GetSubject returns NodesNodesCertifyBad.Subject, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyBad) GetTypename

func (v *NodesNodesCertifyBad) GetTypename() *string

GetTypename returns NodesNodesCertifyBad.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyBad) MarshalJSON

func (v *NodesNodesCertifyBad) MarshalJSON() ([]byte, error)

func (*NodesNodesCertifyBad) UnmarshalJSON

func (v *NodesNodesCertifyBad) UnmarshalJSON(b []byte) error

type NodesNodesCertifyGood

type NodesNodesCertifyGood struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodesNodesCertifyGood includes the requested fields of the GraphQL type CertifyGood. The GraphQL type's documentation follows.

CertifyGood is an attestation that a package, source, or artifact is considered good.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*NodesNodesCertifyGood) GetCollector

func (v *NodesNodesCertifyGood) GetCollector() string

GetCollector returns NodesNodesCertifyGood.Collector, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyGood) GetId

func (v *NodesNodesCertifyGood) GetId() string

GetId returns NodesNodesCertifyGood.Id, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyGood) GetJustification

func (v *NodesNodesCertifyGood) GetJustification() string

GetJustification returns NodesNodesCertifyGood.Justification, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyGood) GetOrigin

func (v *NodesNodesCertifyGood) GetOrigin() string

GetOrigin returns NodesNodesCertifyGood.Origin, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyGood) GetSubject

func (v *NodesNodesCertifyGood) GetSubject() allCertifyGoodSubjectPackageSourceOrArtifact

GetSubject returns NodesNodesCertifyGood.Subject, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyGood) GetTypename

func (v *NodesNodesCertifyGood) GetTypename() *string

GetTypename returns NodesNodesCertifyGood.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyGood) MarshalJSON

func (v *NodesNodesCertifyGood) MarshalJSON() ([]byte, error)

func (*NodesNodesCertifyGood) UnmarshalJSON

func (v *NodesNodesCertifyGood) UnmarshalJSON(b []byte) error

type NodesNodesCertifyScorecard

type NodesNodesCertifyScorecard struct {
	Typename            *string `json:"__typename"`
	AllCertifyScorecard `json:"-"`
}

NodesNodesCertifyScorecard includes the requested fields of the GraphQL type CertifyScorecard. The GraphQL type's documentation follows.

CertifyScorecard is an attestation to attach a Scorecard analysis to a particular source repository.

func (*NodesNodesCertifyScorecard) GetId

GetId returns NodesNodesCertifyScorecard.Id, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyScorecard) GetScorecard

GetScorecard returns NodesNodesCertifyScorecard.Scorecard, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyScorecard) GetSource

GetSource returns NodesNodesCertifyScorecard.Source, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyScorecard) GetTypename

func (v *NodesNodesCertifyScorecard) GetTypename() *string

GetTypename returns NodesNodesCertifyScorecard.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyScorecard) MarshalJSON

func (v *NodesNodesCertifyScorecard) MarshalJSON() ([]byte, error)

func (*NodesNodesCertifyScorecard) UnmarshalJSON

func (v *NodesNodesCertifyScorecard) UnmarshalJSON(b []byte) error

type NodesNodesCertifyVEXStatement

type NodesNodesCertifyVEXStatement struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodesNodesCertifyVEXStatement includes the requested fields of the GraphQL type CertifyVEXStatement. The GraphQL type's documentation follows.

CertifyVEXStatement is an attestation to attach VEX statements to a package or artifact to clarify the impact of a specific vulnerability (CVE, GHSA or OSV).

func (*NodesNodesCertifyVEXStatement) GetCollector

func (v *NodesNodesCertifyVEXStatement) GetCollector() string

GetCollector returns NodesNodesCertifyVEXStatement.Collector, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) GetId

GetId returns NodesNodesCertifyVEXStatement.Id, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) GetKnownSince

func (v *NodesNodesCertifyVEXStatement) GetKnownSince() time.Time

GetKnownSince returns NodesNodesCertifyVEXStatement.KnownSince, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) GetOrigin

func (v *NodesNodesCertifyVEXStatement) GetOrigin() string

GetOrigin returns NodesNodesCertifyVEXStatement.Origin, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) GetStatement

func (v *NodesNodesCertifyVEXStatement) GetStatement() string

GetStatement returns NodesNodesCertifyVEXStatement.Statement, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) GetStatus

GetStatus returns NodesNodesCertifyVEXStatement.Status, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) GetStatusNotes

func (v *NodesNodesCertifyVEXStatement) GetStatusNotes() string

GetStatusNotes returns NodesNodesCertifyVEXStatement.StatusNotes, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) GetSubject

func (v *NodesNodesCertifyVEXStatement) GetSubject() allCertifyVEXStatementSubjectPackageOrArtifact

GetSubject returns NodesNodesCertifyVEXStatement.Subject, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) GetTypename

func (v *NodesNodesCertifyVEXStatement) GetTypename() *string

GetTypename returns NodesNodesCertifyVEXStatement.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) GetVexJustification

func (v *NodesNodesCertifyVEXStatement) GetVexJustification() VexJustification

GetVexJustification returns NodesNodesCertifyVEXStatement.VexJustification, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) GetVulnerability

func (v *NodesNodesCertifyVEXStatement) GetVulnerability() allCertifyVEXStatementVulnerability

GetVulnerability returns NodesNodesCertifyVEXStatement.Vulnerability, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVEXStatement) MarshalJSON

func (v *NodesNodesCertifyVEXStatement) MarshalJSON() ([]byte, error)

func (*NodesNodesCertifyVEXStatement) UnmarshalJSON

func (v *NodesNodesCertifyVEXStatement) UnmarshalJSON(b []byte) error

type NodesNodesCertifyVuln

type NodesNodesCertifyVuln struct {
	Typename       *string `json:"__typename"`
	AllCertifyVuln `json:"-"`
}

NodesNodesCertifyVuln includes the requested fields of the GraphQL type CertifyVuln. The GraphQL type's documentation follows.

CertifyVuln is an attestation to attach vulnerability information to a package.

This information is obtained via a scanner. If there is no vulnerability detected (no OSV, CVE, or GHSA), we attach the special NoVuln node.

func (*NodesNodesCertifyVuln) GetId

func (v *NodesNodesCertifyVuln) GetId() string

GetId returns NodesNodesCertifyVuln.Id, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVuln) GetMetadata

GetMetadata returns NodesNodesCertifyVuln.Metadata, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVuln) GetPackage

GetPackage returns NodesNodesCertifyVuln.Package, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVuln) GetTypename

func (v *NodesNodesCertifyVuln) GetTypename() *string

GetTypename returns NodesNodesCertifyVuln.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVuln) GetVulnerability

func (v *NodesNodesCertifyVuln) GetVulnerability() AllCertifyVulnVulnerability

GetVulnerability returns NodesNodesCertifyVuln.Vulnerability, and is useful for accessing the field via an interface.

func (*NodesNodesCertifyVuln) MarshalJSON

func (v *NodesNodesCertifyVuln) MarshalJSON() ([]byte, error)

func (*NodesNodesCertifyVuln) UnmarshalJSON

func (v *NodesNodesCertifyVuln) UnmarshalJSON(b []byte) error

type NodesNodesGHSA

type NodesNodesGHSA struct {
	Typename    *string `json:"__typename"`
	AllGHSATree `json:"-"`
}

NodesNodesGHSA includes the requested fields of the GraphQL type GHSA. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*NodesNodesGHSA) GetGhsaId

func (v *NodesNodesGHSA) GetGhsaId() string

GetGhsaId returns NodesNodesGHSA.GhsaId, and is useful for accessing the field via an interface.

func (*NodesNodesGHSA) GetId

func (v *NodesNodesGHSA) GetId() string

GetId returns NodesNodesGHSA.Id, and is useful for accessing the field via an interface.

func (*NodesNodesGHSA) GetTypename

func (v *NodesNodesGHSA) GetTypename() *string

GetTypename returns NodesNodesGHSA.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesGHSA) MarshalJSON

func (v *NodesNodesGHSA) MarshalJSON() ([]byte, error)

func (*NodesNodesGHSA) UnmarshalJSON

func (v *NodesNodesGHSA) UnmarshalJSON(b []byte) error

type NodesNodesHasSBOM

type NodesNodesHasSBOM struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodesNodesHasSBOM includes the requested fields of the GraphQL type HasSBOM.

func (*NodesNodesHasSBOM) GetAlgorithm

func (v *NodesNodesHasSBOM) GetAlgorithm() string

GetAlgorithm returns NodesNodesHasSBOM.Algorithm, and is useful for accessing the field via an interface.

func (*NodesNodesHasSBOM) GetAnnotations

func (v *NodesNodesHasSBOM) GetAnnotations() []allHasSBOMTreeAnnotationsAnnotation

GetAnnotations returns NodesNodesHasSBOM.Annotations, and is useful for accessing the field via an interface.

func (*NodesNodesHasSBOM) GetCollector

func (v *NodesNodesHasSBOM) GetCollector() string

GetCollector returns NodesNodesHasSBOM.Collector, and is useful for accessing the field via an interface.

func (*NodesNodesHasSBOM) GetDigest

func (v *NodesNodesHasSBOM) GetDigest() string

GetDigest returns NodesNodesHasSBOM.Digest, and is useful for accessing the field via an interface.

func (*NodesNodesHasSBOM) GetDownloadLocation

func (v *NodesNodesHasSBOM) GetDownloadLocation() string

GetDownloadLocation returns NodesNodesHasSBOM.DownloadLocation, and is useful for accessing the field via an interface.

func (*NodesNodesHasSBOM) GetId

func (v *NodesNodesHasSBOM) GetId() string

GetId returns NodesNodesHasSBOM.Id, and is useful for accessing the field via an interface.

func (*NodesNodesHasSBOM) GetOrigin

func (v *NodesNodesHasSBOM) GetOrigin() string

GetOrigin returns NodesNodesHasSBOM.Origin, and is useful for accessing the field via an interface.

func (*NodesNodesHasSBOM) GetSubject

func (v *NodesNodesHasSBOM) GetSubject() allHasSBOMTreeSubjectPackageOrArtifact

GetSubject returns NodesNodesHasSBOM.Subject, and is useful for accessing the field via an interface.

func (*NodesNodesHasSBOM) GetTypename

func (v *NodesNodesHasSBOM) GetTypename() *string

GetTypename returns NodesNodesHasSBOM.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesHasSBOM) GetUri

func (v *NodesNodesHasSBOM) GetUri() string

GetUri returns NodesNodesHasSBOM.Uri, and is useful for accessing the field via an interface.

func (*NodesNodesHasSBOM) MarshalJSON

func (v *NodesNodesHasSBOM) MarshalJSON() ([]byte, error)

func (*NodesNodesHasSBOM) UnmarshalJSON

func (v *NodesNodesHasSBOM) UnmarshalJSON(b []byte) error

type NodesNodesHasSLSA

type NodesNodesHasSLSA struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodesNodesHasSLSA includes the requested fields of the GraphQL type HasSLSA. The GraphQL type's documentation follows.

HasSLSA records that a subject node has a SLSA attestation.

func (*NodesNodesHasSLSA) GetId

func (v *NodesNodesHasSLSA) GetId() string

GetId returns NodesNodesHasSLSA.Id, and is useful for accessing the field via an interface.

func (*NodesNodesHasSLSA) GetSlsa

func (v *NodesNodesHasSLSA) GetSlsa() allSLSATreeSlsaSLSA

GetSlsa returns NodesNodesHasSLSA.Slsa, and is useful for accessing the field via an interface.

func (*NodesNodesHasSLSA) GetSubject

func (v *NodesNodesHasSLSA) GetSubject() allSLSATreeSubjectArtifact

GetSubject returns NodesNodesHasSLSA.Subject, and is useful for accessing the field via an interface.

func (*NodesNodesHasSLSA) GetTypename

func (v *NodesNodesHasSLSA) GetTypename() *string

GetTypename returns NodesNodesHasSLSA.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesHasSLSA) MarshalJSON

func (v *NodesNodesHasSLSA) MarshalJSON() ([]byte, error)

func (*NodesNodesHasSLSA) UnmarshalJSON

func (v *NodesNodesHasSLSA) UnmarshalJSON(b []byte) error

type NodesNodesHasSourceAt

type NodesNodesHasSourceAt struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodesNodesHasSourceAt includes the requested fields of the GraphQL type HasSourceAt. The GraphQL type's documentation follows.

HasSourceAt records that a package's repository is a given source.

func (*NodesNodesHasSourceAt) GetCollector

func (v *NodesNodesHasSourceAt) GetCollector() string

GetCollector returns NodesNodesHasSourceAt.Collector, and is useful for accessing the field via an interface.

func (*NodesNodesHasSourceAt) GetId

func (v *NodesNodesHasSourceAt) GetId() string

GetId returns NodesNodesHasSourceAt.Id, and is useful for accessing the field via an interface.

func (*NodesNodesHasSourceAt) GetJustification

func (v *NodesNodesHasSourceAt) GetJustification() string

GetJustification returns NodesNodesHasSourceAt.Justification, and is useful for accessing the field via an interface.

func (*NodesNodesHasSourceAt) GetKnownSince

func (v *NodesNodesHasSourceAt) GetKnownSince() time.Time

GetKnownSince returns NodesNodesHasSourceAt.KnownSince, and is useful for accessing the field via an interface.

func (*NodesNodesHasSourceAt) GetOrigin

func (v *NodesNodesHasSourceAt) GetOrigin() string

GetOrigin returns NodesNodesHasSourceAt.Origin, and is useful for accessing the field via an interface.

func (*NodesNodesHasSourceAt) GetPackage

func (v *NodesNodesHasSourceAt) GetPackage() allHasSourceAtPackage

GetPackage returns NodesNodesHasSourceAt.Package, and is useful for accessing the field via an interface.

func (*NodesNodesHasSourceAt) GetSource

func (v *NodesNodesHasSourceAt) GetSource() allHasSourceAtSource

GetSource returns NodesNodesHasSourceAt.Source, and is useful for accessing the field via an interface.

func (*NodesNodesHasSourceAt) GetTypename

func (v *NodesNodesHasSourceAt) GetTypename() *string

GetTypename returns NodesNodesHasSourceAt.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesHasSourceAt) MarshalJSON

func (v *NodesNodesHasSourceAt) MarshalJSON() ([]byte, error)

func (*NodesNodesHasSourceAt) UnmarshalJSON

func (v *NodesNodesHasSourceAt) UnmarshalJSON(b []byte) error

type NodesNodesHashEqual

type NodesNodesHashEqual struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodesNodesHashEqual includes the requested fields of the GraphQL type HashEqual. The GraphQL type's documentation follows.

HashEqual is an attestation that a set of artifacts are identical.

func (*NodesNodesHashEqual) GetArtifacts

func (v *NodesNodesHashEqual) GetArtifacts() []allHashEqualTreeArtifactsArtifact

GetArtifacts returns NodesNodesHashEqual.Artifacts, and is useful for accessing the field via an interface.

func (*NodesNodesHashEqual) GetCollector

func (v *NodesNodesHashEqual) GetCollector() string

GetCollector returns NodesNodesHashEqual.Collector, and is useful for accessing the field via an interface.

func (*NodesNodesHashEqual) GetId

func (v *NodesNodesHashEqual) GetId() string

GetId returns NodesNodesHashEqual.Id, and is useful for accessing the field via an interface.

func (*NodesNodesHashEqual) GetJustification

func (v *NodesNodesHashEqual) GetJustification() string

GetJustification returns NodesNodesHashEqual.Justification, and is useful for accessing the field via an interface.

func (*NodesNodesHashEqual) GetOrigin

func (v *NodesNodesHashEqual) GetOrigin() string

GetOrigin returns NodesNodesHashEqual.Origin, and is useful for accessing the field via an interface.

func (*NodesNodesHashEqual) GetTypename

func (v *NodesNodesHashEqual) GetTypename() *string

GetTypename returns NodesNodesHashEqual.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesHashEqual) MarshalJSON

func (v *NodesNodesHashEqual) MarshalJSON() ([]byte, error)

func (*NodesNodesHashEqual) UnmarshalJSON

func (v *NodesNodesHashEqual) UnmarshalJSON(b []byte) error

type NodesNodesIsDependency

type NodesNodesIsDependency struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodesNodesIsDependency includes the requested fields of the GraphQL type IsDependency. The GraphQL type's documentation follows.

IsDependency is an attestation to record that a package depends on another.

func (*NodesNodesIsDependency) GetCollector

func (v *NodesNodesIsDependency) GetCollector() string

GetCollector returns NodesNodesIsDependency.Collector, and is useful for accessing the field via an interface.

func (*NodesNodesIsDependency) GetDependencyType

func (v *NodesNodesIsDependency) GetDependencyType() DependencyType

GetDependencyType returns NodesNodesIsDependency.DependencyType, and is useful for accessing the field via an interface.

func (*NodesNodesIsDependency) GetDependentPackage

func (v *NodesNodesIsDependency) GetDependentPackage() allIsDependencyTreeDependentPackage

GetDependentPackage returns NodesNodesIsDependency.DependentPackage, and is useful for accessing the field via an interface.

func (*NodesNodesIsDependency) GetId

func (v *NodesNodesIsDependency) GetId() string

GetId returns NodesNodesIsDependency.Id, and is useful for accessing the field via an interface.

func (*NodesNodesIsDependency) GetJustification

func (v *NodesNodesIsDependency) GetJustification() string

GetJustification returns NodesNodesIsDependency.Justification, and is useful for accessing the field via an interface.

func (*NodesNodesIsDependency) GetOrigin

func (v *NodesNodesIsDependency) GetOrigin() string

GetOrigin returns NodesNodesIsDependency.Origin, and is useful for accessing the field via an interface.

func (*NodesNodesIsDependency) GetPackage

func (v *NodesNodesIsDependency) GetPackage() allIsDependencyTreePackage

GetPackage returns NodesNodesIsDependency.Package, and is useful for accessing the field via an interface.

func (*NodesNodesIsDependency) GetTypename

func (v *NodesNodesIsDependency) GetTypename() *string

GetTypename returns NodesNodesIsDependency.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesIsDependency) GetVersionRange

func (v *NodesNodesIsDependency) GetVersionRange() string

GetVersionRange returns NodesNodesIsDependency.VersionRange, and is useful for accessing the field via an interface.

func (*NodesNodesIsDependency) MarshalJSON

func (v *NodesNodesIsDependency) MarshalJSON() ([]byte, error)

func (*NodesNodesIsDependency) UnmarshalJSON

func (v *NodesNodesIsDependency) UnmarshalJSON(b []byte) error

type NodesNodesIsOccurrence

type NodesNodesIsOccurrence struct {
	Typename             *string `json:"__typename"`
	AllIsOccurrencesTree `json:"-"`
}

NodesNodesIsOccurrence includes the requested fields of the GraphQL type IsOccurrence. The GraphQL type's documentation follows.

IsOccurrence is an attestation to link an artifact to a package or source.

Attestation must occur at the PackageVersion or at the SourceName.

func (*NodesNodesIsOccurrence) GetArtifact

GetArtifact returns NodesNodesIsOccurrence.Artifact, and is useful for accessing the field via an interface.

func (*NodesNodesIsOccurrence) GetCollector

func (v *NodesNodesIsOccurrence) GetCollector() string

GetCollector returns NodesNodesIsOccurrence.Collector, and is useful for accessing the field via an interface.

func (*NodesNodesIsOccurrence) GetId

func (v *NodesNodesIsOccurrence) GetId() string

GetId returns NodesNodesIsOccurrence.Id, and is useful for accessing the field via an interface.

func (*NodesNodesIsOccurrence) GetJustification

func (v *NodesNodesIsOccurrence) GetJustification() string

GetJustification returns NodesNodesIsOccurrence.Justification, and is useful for accessing the field via an interface.

func (*NodesNodesIsOccurrence) GetOrigin

func (v *NodesNodesIsOccurrence) GetOrigin() string

GetOrigin returns NodesNodesIsOccurrence.Origin, and is useful for accessing the field via an interface.

func (*NodesNodesIsOccurrence) GetSubject

GetSubject returns NodesNodesIsOccurrence.Subject, and is useful for accessing the field via an interface.

func (*NodesNodesIsOccurrence) GetTypename

func (v *NodesNodesIsOccurrence) GetTypename() *string

GetTypename returns NodesNodesIsOccurrence.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesIsOccurrence) MarshalJSON

func (v *NodesNodesIsOccurrence) MarshalJSON() ([]byte, error)

func (*NodesNodesIsOccurrence) UnmarshalJSON

func (v *NodesNodesIsOccurrence) UnmarshalJSON(b []byte) error

type NodesNodesIsVulnerability

type NodesNodesIsVulnerability struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodesNodesIsVulnerability includes the requested fields of the GraphQL type IsVulnerability. The GraphQL type's documentation follows.

IsVulnerability is an attestation to link CVE/GHSA with data in OSV.

func (*NodesNodesIsVulnerability) GetCollector

func (v *NodesNodesIsVulnerability) GetCollector() string

GetCollector returns NodesNodesIsVulnerability.Collector, and is useful for accessing the field via an interface.

func (*NodesNodesIsVulnerability) GetId

func (v *NodesNodesIsVulnerability) GetId() string

GetId returns NodesNodesIsVulnerability.Id, and is useful for accessing the field via an interface.

func (*NodesNodesIsVulnerability) GetJustification

func (v *NodesNodesIsVulnerability) GetJustification() string

GetJustification returns NodesNodesIsVulnerability.Justification, and is useful for accessing the field via an interface.

func (*NodesNodesIsVulnerability) GetOrigin

func (v *NodesNodesIsVulnerability) GetOrigin() string

GetOrigin returns NodesNodesIsVulnerability.Origin, and is useful for accessing the field via an interface.

func (*NodesNodesIsVulnerability) GetOsv

func (v *NodesNodesIsVulnerability) GetOsv() allIsVulnerabilityOsvOSV

GetOsv returns NodesNodesIsVulnerability.Osv, and is useful for accessing the field via an interface.

func (*NodesNodesIsVulnerability) GetTypename

func (v *NodesNodesIsVulnerability) GetTypename() *string

GetTypename returns NodesNodesIsVulnerability.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesIsVulnerability) GetVulnerability

func (v *NodesNodesIsVulnerability) GetVulnerability() allIsVulnerabilityVulnerabilityCveOrGhsa

GetVulnerability returns NodesNodesIsVulnerability.Vulnerability, and is useful for accessing the field via an interface.

func (*NodesNodesIsVulnerability) MarshalJSON

func (v *NodesNodesIsVulnerability) MarshalJSON() ([]byte, error)

func (*NodesNodesIsVulnerability) UnmarshalJSON

func (v *NodesNodesIsVulnerability) UnmarshalJSON(b []byte) error

type NodesNodesNoVuln

type NodesNodesNoVuln struct {
	Typename *string `json:"__typename"`
	Id       string  `json:"id"`
}

NodesNodesNoVuln includes the requested fields of the GraphQL type NoVuln. The GraphQL type's documentation follows.

NoVuln is a special vulnerability node to attest that no vulnerability has been found during a vulnerability scan.

Backends guarantee that this is a singleton node.

func (*NodesNodesNoVuln) GetId

func (v *NodesNodesNoVuln) GetId() string

GetId returns NodesNodesNoVuln.Id, and is useful for accessing the field via an interface.

func (*NodesNodesNoVuln) GetTypename

func (v *NodesNodesNoVuln) GetTypename() *string

GetTypename returns NodesNodesNoVuln.Typename, and is useful for accessing the field via an interface.

type NodesNodesNode

type NodesNodesNode interface {

	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() *string
	// contains filtered or unexported methods
}

NodesNodesNode includes the requested fields of the GraphQL interface Node.

NodesNodesNode is implemented by the following types: NodesNodesArtifact NodesNodesBuilder NodesNodesCVE NodesNodesCertifyBad NodesNodesCertifyGood NodesNodesCertifyScorecard NodesNodesCertifyVEXStatement NodesNodesCertifyVuln NodesNodesGHSA NodesNodesHasSBOM NodesNodesHasSLSA NodesNodesHasSourceAt NodesNodesHashEqual NodesNodesIsDependency NodesNodesIsOccurrence NodesNodesIsVulnerability NodesNodesNoVuln NodesNodesOSV NodesNodesPackage NodesNodesPkgEqual NodesNodesSource The GraphQL type's documentation follows.

Node is a union type of all the possible nodes.

It encapsulates the software tree nodes along with the evidence nodes. In a path query, all connecting evidence nodes along with their intermediate subject nodes need to be returned in order to create a complete graph.

type NodesNodesOSV

type NodesNodesOSV struct {
	Typename   *string `json:"__typename"`
	AllOSVTree `json:"-"`
}

NodesNodesOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*NodesNodesOSV) GetId

func (v *NodesNodesOSV) GetId() string

GetId returns NodesNodesOSV.Id, and is useful for accessing the field via an interface.

func (*NodesNodesOSV) GetOsvId

func (v *NodesNodesOSV) GetOsvId() string

GetOsvId returns NodesNodesOSV.OsvId, and is useful for accessing the field via an interface.

func (*NodesNodesOSV) GetTypename

func (v *NodesNodesOSV) GetTypename() *string

GetTypename returns NodesNodesOSV.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesOSV) MarshalJSON

func (v *NodesNodesOSV) MarshalJSON() ([]byte, error)

func (*NodesNodesOSV) UnmarshalJSON

func (v *NodesNodesOSV) UnmarshalJSON(b []byte) error

type NodesNodesPackage

type NodesNodesPackage struct {
	Typename   *string `json:"__typename"`
	AllPkgTree `json:"-"`
}

NodesNodesPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*NodesNodesPackage) GetId

func (v *NodesNodesPackage) GetId() string

GetId returns NodesNodesPackage.Id, and is useful for accessing the field via an interface.

func (*NodesNodesPackage) GetNamespaces

GetNamespaces returns NodesNodesPackage.Namespaces, and is useful for accessing the field via an interface.

func (*NodesNodesPackage) GetType

func (v *NodesNodesPackage) GetType() string

GetType returns NodesNodesPackage.Type, and is useful for accessing the field via an interface.

func (*NodesNodesPackage) GetTypename

func (v *NodesNodesPackage) GetTypename() *string

GetTypename returns NodesNodesPackage.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesPackage) MarshalJSON

func (v *NodesNodesPackage) MarshalJSON() ([]byte, error)

func (*NodesNodesPackage) UnmarshalJSON

func (v *NodesNodesPackage) UnmarshalJSON(b []byte) error

type NodesNodesPkgEqual

type NodesNodesPkgEqual struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

NodesNodesPkgEqual includes the requested fields of the GraphQL type PkgEqual. The GraphQL type's documentation follows.

PkgEqual is an attestation that a set of packages are similar.

func (*NodesNodesPkgEqual) GetCollector

func (v *NodesNodesPkgEqual) GetCollector() string

GetCollector returns NodesNodesPkgEqual.Collector, and is useful for accessing the field via an interface.

func (*NodesNodesPkgEqual) GetId

func (v *NodesNodesPkgEqual) GetId() string

GetId returns NodesNodesPkgEqual.Id, and is useful for accessing the field via an interface.

func (*NodesNodesPkgEqual) GetJustification

func (v *NodesNodesPkgEqual) GetJustification() string

GetJustification returns NodesNodesPkgEqual.Justification, and is useful for accessing the field via an interface.

func (*NodesNodesPkgEqual) GetOrigin

func (v *NodesNodesPkgEqual) GetOrigin() string

GetOrigin returns NodesNodesPkgEqual.Origin, and is useful for accessing the field via an interface.

func (*NodesNodesPkgEqual) GetPackages

func (v *NodesNodesPkgEqual) GetPackages() []allPkgEqualPackagesPackage

GetPackages returns NodesNodesPkgEqual.Packages, and is useful for accessing the field via an interface.

func (*NodesNodesPkgEqual) GetTypename

func (v *NodesNodesPkgEqual) GetTypename() *string

GetTypename returns NodesNodesPkgEqual.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesPkgEqual) MarshalJSON

func (v *NodesNodesPkgEqual) MarshalJSON() ([]byte, error)

func (*NodesNodesPkgEqual) UnmarshalJSON

func (v *NodesNodesPkgEqual) UnmarshalJSON(b []byte) error

type NodesNodesSource

type NodesNodesSource struct {
	Typename      *string `json:"__typename"`
	AllSourceTree `json:"-"`
}

NodesNodesSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*NodesNodesSource) GetId

func (v *NodesNodesSource) GetId() string

GetId returns NodesNodesSource.Id, and is useful for accessing the field via an interface.

func (*NodesNodesSource) GetNamespaces

GetNamespaces returns NodesNodesSource.Namespaces, and is useful for accessing the field via an interface.

func (*NodesNodesSource) GetType

func (v *NodesNodesSource) GetType() string

GetType returns NodesNodesSource.Type, and is useful for accessing the field via an interface.

func (*NodesNodesSource) GetTypename

func (v *NodesNodesSource) GetTypename() *string

GetTypename returns NodesNodesSource.Typename, and is useful for accessing the field via an interface.

func (*NodesNodesSource) MarshalJSON

func (v *NodesNodesSource) MarshalJSON() ([]byte, error)

func (*NodesNodesSource) UnmarshalJSON

func (v *NodesNodesSource) UnmarshalJSON(b []byte) error

type NodesResponse

type NodesResponse struct {
	// nodes returns an array of nodes, regardless of type.
	//
	// The input is an array of IDs to retrieve.
	Nodes []NodesNodesNode `json:"-"`
}

NodesResponse is returned by Nodes on success.

func Nodes

func Nodes(
	ctx context.Context,
	client graphql.Client,
	nodes []string,
) (*NodesResponse, error)

func (*NodesResponse) GetNodes

func (v *NodesResponse) GetNodes() []NodesNodesNode

GetNodes returns NodesResponse.Nodes, and is useful for accessing the field via an interface.

func (*NodesResponse) MarshalJSON

func (v *NodesResponse) MarshalJSON() ([]byte, error)

func (*NodesResponse) UnmarshalJSON

func (v *NodesResponse) UnmarshalJSON(b []byte) error

type OSVInputSpec

type OSVInputSpec struct {
	OsvId string `json:"osvId"`
}

OSVInputSpec specifies a OSV vulnerability for mutations.

func (*OSVInputSpec) GetOsvId

func (v *OSVInputSpec) GetOsvId() string

GetOsvId returns OSVInputSpec.OsvId, and is useful for accessing the field via an interface.

type OSVSpec

type OSVSpec struct {
	Id    *string `json:"id"`
	OsvId *string `json:"osvId"`
}

OSVSpec allows filtering the list of advisories to return in a query.

func (*OSVSpec) GetId

func (v *OSVSpec) GetId() *string

GetId returns OSVSpec.Id, and is useful for accessing the field via an interface.

func (*OSVSpec) GetOsvId

func (v *OSVSpec) GetOsvId() *string

GetOsvId returns OSVSpec.OsvId, and is useful for accessing the field via an interface.

type OSVsOsvOSV

type OSVsOsvOSV struct {
	AllOSVTree `json:"-"`
}

OSVsOsvOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*OSVsOsvOSV) GetId

func (v *OSVsOsvOSV) GetId() string

GetId returns OSVsOsvOSV.Id, and is useful for accessing the field via an interface.

func (*OSVsOsvOSV) GetOsvId

func (v *OSVsOsvOSV) GetOsvId() string

GetOsvId returns OSVsOsvOSV.OsvId, and is useful for accessing the field via an interface.

func (*OSVsOsvOSV) MarshalJSON

func (v *OSVsOsvOSV) MarshalJSON() ([]byte, error)

func (*OSVsOsvOSV) UnmarshalJSON

func (v *OSVsOsvOSV) UnmarshalJSON(b []byte) error

type OSVsResponse

type OSVsResponse struct {
	// Returns all OSV vulnerabilities matching a filter.
	Osv []OSVsOsvOSV `json:"osv"`
}

OSVsResponse is returned by OSVs on success.

func OSVs

func OSVs(
	ctx context.Context,
	client graphql.Client,
	filter *OSVSpec,
) (*OSVsResponse, error)

func (*OSVsResponse) GetOsv

func (v *OSVsResponse) GetOsv() []OSVsOsvOSV

GetOsv returns OSVsResponse.Osv, and is useful for accessing the field via an interface.

type PackageQualifierInputSpec

type PackageQualifierInputSpec struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

PackageQualifierInputSpec allows specifying package qualifiers in mutations.

func (*PackageQualifierInputSpec) GetKey

func (v *PackageQualifierInputSpec) GetKey() string

GetKey returns PackageQualifierInputSpec.Key, and is useful for accessing the field via an interface.

func (*PackageQualifierInputSpec) GetValue

func (v *PackageQualifierInputSpec) GetValue() string

GetValue returns PackageQualifierInputSpec.Value, and is useful for accessing the field via an interface.

type PackageQualifierSpec

type PackageQualifierSpec struct {
	Key   string  `json:"key"`
	Value *string `json:"value"`
}

PackageQualifierSpec allows filtering package qualifiers in a query.

Keys are mandatory, but values could also be null if we want to match all values for a specific key.

NOTE: Before the schema becomes stable, we might change the nulability requirements of these fields.

func (*PackageQualifierSpec) GetKey

func (v *PackageQualifierSpec) GetKey() string

GetKey returns PackageQualifierSpec.Key, and is useful for accessing the field via an interface.

func (*PackageQualifierSpec) GetValue

func (v *PackageQualifierSpec) GetValue() *string

GetValue returns PackageQualifierSpec.Value, and is useful for accessing the field via an interface.

type PackageSourceOrArtifactSpec

type PackageSourceOrArtifactSpec struct {
	Package  *PkgSpec      `json:"package"`
	Source   *SourceSpec   `json:"source"`
	Artifact *ArtifactSpec `json:"artifact"`
}

PackageSourceOrArtifactSpec allows using PackageSourceOrArtifact union as input type to be used in read queries.

Exactly one of the value must be set to non-nil.

func (*PackageSourceOrArtifactSpec) GetArtifact

func (v *PackageSourceOrArtifactSpec) GetArtifact() *ArtifactSpec

GetArtifact returns PackageSourceOrArtifactSpec.Artifact, and is useful for accessing the field via an interface.

func (*PackageSourceOrArtifactSpec) GetPackage

func (v *PackageSourceOrArtifactSpec) GetPackage() *PkgSpec

GetPackage returns PackageSourceOrArtifactSpec.Package, and is useful for accessing the field via an interface.

func (*PackageSourceOrArtifactSpec) GetSource

func (v *PackageSourceOrArtifactSpec) GetSource() *SourceSpec

GetSource returns PackageSourceOrArtifactSpec.Source, and is useful for accessing the field via an interface.

type PackagesPackagesPackage

type PackagesPackagesPackage struct {
	AllPkgTree `json:"-"`
}

PackagesPackagesPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*PackagesPackagesPackage) GetId

func (v *PackagesPackagesPackage) GetId() string

GetId returns PackagesPackagesPackage.Id, and is useful for accessing the field via an interface.

func (*PackagesPackagesPackage) GetNamespaces

GetNamespaces returns PackagesPackagesPackage.Namespaces, and is useful for accessing the field via an interface.

func (*PackagesPackagesPackage) GetType

func (v *PackagesPackagesPackage) GetType() string

GetType returns PackagesPackagesPackage.Type, and is useful for accessing the field via an interface.

func (*PackagesPackagesPackage) MarshalJSON

func (v *PackagesPackagesPackage) MarshalJSON() ([]byte, error)

func (*PackagesPackagesPackage) UnmarshalJSON

func (v *PackagesPackagesPackage) UnmarshalJSON(b []byte) error

type PackagesResponse

type PackagesResponse struct {
	// Returns all packages matching a filter.
	Packages []PackagesPackagesPackage `json:"packages"`
}

PackagesResponse is returned by Packages on success.

func Packages

func Packages(
	ctx context.Context,
	client graphql.Client,
	filter *PkgSpec,
) (*PackagesResponse, error)

func (*PackagesResponse) GetPackages

func (v *PackagesResponse) GetPackages() []PackagesPackagesPackage

GetPackages returns PackagesResponse.Packages, and is useful for accessing the field via an interface.

type PathPathArtifact

type PathPathArtifact struct {
	Typename        *string `json:"__typename"`
	AllArtifactTree `json:"-"`
}

PathPathArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*PathPathArtifact) GetAlgorithm

func (v *PathPathArtifact) GetAlgorithm() string

GetAlgorithm returns PathPathArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*PathPathArtifact) GetDigest

func (v *PathPathArtifact) GetDigest() string

GetDigest returns PathPathArtifact.Digest, and is useful for accessing the field via an interface.

func (*PathPathArtifact) GetId

func (v *PathPathArtifact) GetId() string

GetId returns PathPathArtifact.Id, and is useful for accessing the field via an interface.

func (*PathPathArtifact) GetTypename

func (v *PathPathArtifact) GetTypename() *string

GetTypename returns PathPathArtifact.Typename, and is useful for accessing the field via an interface.

func (*PathPathArtifact) MarshalJSON

func (v *PathPathArtifact) MarshalJSON() ([]byte, error)

func (*PathPathArtifact) UnmarshalJSON

func (v *PathPathArtifact) UnmarshalJSON(b []byte) error

type PathPathBuilder

type PathPathBuilder struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

PathPathBuilder includes the requested fields of the GraphQL type Builder. The GraphQL type's documentation follows.

Builder represents the builder (e.g., FRSCA or GitHub Actions).

Currently builders are identified by the uri field.

func (*PathPathBuilder) GetId

func (v *PathPathBuilder) GetId() string

GetId returns PathPathBuilder.Id, and is useful for accessing the field via an interface.

func (*PathPathBuilder) GetTypename

func (v *PathPathBuilder) GetTypename() *string

GetTypename returns PathPathBuilder.Typename, and is useful for accessing the field via an interface.

func (*PathPathBuilder) GetUri

func (v *PathPathBuilder) GetUri() string

GetUri returns PathPathBuilder.Uri, and is useful for accessing the field via an interface.

func (*PathPathBuilder) MarshalJSON

func (v *PathPathBuilder) MarshalJSON() ([]byte, error)

func (*PathPathBuilder) UnmarshalJSON

func (v *PathPathBuilder) UnmarshalJSON(b []byte) error

type PathPathCVE

type PathPathCVE struct {
	Typename   *string `json:"__typename"`
	AllCveTree `json:"-"`
}

PathPathCVE includes the requested fields of the GraphQL type CVE. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*PathPathCVE) GetCveId

func (v *PathPathCVE) GetCveId() string

GetCveId returns PathPathCVE.CveId, and is useful for accessing the field via an interface.

func (*PathPathCVE) GetId

func (v *PathPathCVE) GetId() string

GetId returns PathPathCVE.Id, and is useful for accessing the field via an interface.

func (*PathPathCVE) GetTypename

func (v *PathPathCVE) GetTypename() *string

GetTypename returns PathPathCVE.Typename, and is useful for accessing the field via an interface.

func (*PathPathCVE) GetYear

func (v *PathPathCVE) GetYear() int

GetYear returns PathPathCVE.Year, and is useful for accessing the field via an interface.

func (*PathPathCVE) MarshalJSON

func (v *PathPathCVE) MarshalJSON() ([]byte, error)

func (*PathPathCVE) UnmarshalJSON

func (v *PathPathCVE) UnmarshalJSON(b []byte) error

type PathPathCertifyBad

type PathPathCertifyBad struct {
	Typename      *string `json:"__typename"`
	AllCertifyBad `json:"-"`
}

PathPathCertifyBad includes the requested fields of the GraphQL type CertifyBad. The GraphQL type's documentation follows.

CertifyBad is an attestation that a package, source, or artifact is considered bad.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*PathPathCertifyBad) GetCollector

func (v *PathPathCertifyBad) GetCollector() string

GetCollector returns PathPathCertifyBad.Collector, and is useful for accessing the field via an interface.

func (*PathPathCertifyBad) GetId

func (v *PathPathCertifyBad) GetId() string

GetId returns PathPathCertifyBad.Id, and is useful for accessing the field via an interface.

func (*PathPathCertifyBad) GetJustification

func (v *PathPathCertifyBad) GetJustification() string

GetJustification returns PathPathCertifyBad.Justification, and is useful for accessing the field via an interface.

func (*PathPathCertifyBad) GetOrigin

func (v *PathPathCertifyBad) GetOrigin() string

GetOrigin returns PathPathCertifyBad.Origin, and is useful for accessing the field via an interface.

func (*PathPathCertifyBad) GetSubject

GetSubject returns PathPathCertifyBad.Subject, and is useful for accessing the field via an interface.

func (*PathPathCertifyBad) GetTypename

func (v *PathPathCertifyBad) GetTypename() *string

GetTypename returns PathPathCertifyBad.Typename, and is useful for accessing the field via an interface.

func (*PathPathCertifyBad) MarshalJSON

func (v *PathPathCertifyBad) MarshalJSON() ([]byte, error)

func (*PathPathCertifyBad) UnmarshalJSON

func (v *PathPathCertifyBad) UnmarshalJSON(b []byte) error

type PathPathCertifyGood

type PathPathCertifyGood struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

PathPathCertifyGood includes the requested fields of the GraphQL type CertifyGood. The GraphQL type's documentation follows.

CertifyGood is an attestation that a package, source, or artifact is considered good.

All evidence trees record a justification for the property they represent as well as the document that contains the attestation (origin) and the collector that collected the document (collector).

The certification applies to a subject which is a package, source, or artifact. If the attestation targets a package, it must target a PackageName or a PackageVersion. If the attestation targets a source, it must target a SourceName.

func (*PathPathCertifyGood) GetCollector

func (v *PathPathCertifyGood) GetCollector() string

GetCollector returns PathPathCertifyGood.Collector, and is useful for accessing the field via an interface.

func (*PathPathCertifyGood) GetId

func (v *PathPathCertifyGood) GetId() string

GetId returns PathPathCertifyGood.Id, and is useful for accessing the field via an interface.

func (*PathPathCertifyGood) GetJustification

func (v *PathPathCertifyGood) GetJustification() string

GetJustification returns PathPathCertifyGood.Justification, and is useful for accessing the field via an interface.

func (*PathPathCertifyGood) GetOrigin

func (v *PathPathCertifyGood) GetOrigin() string

GetOrigin returns PathPathCertifyGood.Origin, and is useful for accessing the field via an interface.

func (*PathPathCertifyGood) GetSubject

func (v *PathPathCertifyGood) GetSubject() allCertifyGoodSubjectPackageSourceOrArtifact

GetSubject returns PathPathCertifyGood.Subject, and is useful for accessing the field via an interface.

func (*PathPathCertifyGood) GetTypename

func (v *PathPathCertifyGood) GetTypename() *string

GetTypename returns PathPathCertifyGood.Typename, and is useful for accessing the field via an interface.

func (*PathPathCertifyGood) MarshalJSON

func (v *PathPathCertifyGood) MarshalJSON() ([]byte, error)

func (*PathPathCertifyGood) UnmarshalJSON

func (v *PathPathCertifyGood) UnmarshalJSON(b []byte) error

type PathPathCertifyScorecard

type PathPathCertifyScorecard struct {
	Typename            *string `json:"__typename"`
	AllCertifyScorecard `json:"-"`
}

PathPathCertifyScorecard includes the requested fields of the GraphQL type CertifyScorecard. The GraphQL type's documentation follows.

CertifyScorecard is an attestation to attach a Scorecard analysis to a particular source repository.

func (*PathPathCertifyScorecard) GetId

func (v *PathPathCertifyScorecard) GetId() string

GetId returns PathPathCertifyScorecard.Id, and is useful for accessing the field via an interface.

func (*PathPathCertifyScorecard) GetScorecard

GetScorecard returns PathPathCertifyScorecard.Scorecard, and is useful for accessing the field via an interface.

func (*PathPathCertifyScorecard) GetSource

GetSource returns PathPathCertifyScorecard.Source, and is useful for accessing the field via an interface.

func (*PathPathCertifyScorecard) GetTypename

func (v *PathPathCertifyScorecard) GetTypename() *string

GetTypename returns PathPathCertifyScorecard.Typename, and is useful for accessing the field via an interface.

func (*PathPathCertifyScorecard) MarshalJSON

func (v *PathPathCertifyScorecard) MarshalJSON() ([]byte, error)

func (*PathPathCertifyScorecard) UnmarshalJSON

func (v *PathPathCertifyScorecard) UnmarshalJSON(b []byte) error

type PathPathCertifyVEXStatement

type PathPathCertifyVEXStatement struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

PathPathCertifyVEXStatement includes the requested fields of the GraphQL type CertifyVEXStatement. The GraphQL type's documentation follows.

CertifyVEXStatement is an attestation to attach VEX statements to a package or artifact to clarify the impact of a specific vulnerability (CVE, GHSA or OSV).

func (*PathPathCertifyVEXStatement) GetCollector

func (v *PathPathCertifyVEXStatement) GetCollector() string

GetCollector returns PathPathCertifyVEXStatement.Collector, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) GetId

GetId returns PathPathCertifyVEXStatement.Id, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) GetKnownSince

func (v *PathPathCertifyVEXStatement) GetKnownSince() time.Time

GetKnownSince returns PathPathCertifyVEXStatement.KnownSince, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) GetOrigin

func (v *PathPathCertifyVEXStatement) GetOrigin() string

GetOrigin returns PathPathCertifyVEXStatement.Origin, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) GetStatement

func (v *PathPathCertifyVEXStatement) GetStatement() string

GetStatement returns PathPathCertifyVEXStatement.Statement, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) GetStatus

func (v *PathPathCertifyVEXStatement) GetStatus() VexStatus

GetStatus returns PathPathCertifyVEXStatement.Status, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) GetStatusNotes

func (v *PathPathCertifyVEXStatement) GetStatusNotes() string

GetStatusNotes returns PathPathCertifyVEXStatement.StatusNotes, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) GetSubject

func (v *PathPathCertifyVEXStatement) GetSubject() allCertifyVEXStatementSubjectPackageOrArtifact

GetSubject returns PathPathCertifyVEXStatement.Subject, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) GetTypename

func (v *PathPathCertifyVEXStatement) GetTypename() *string

GetTypename returns PathPathCertifyVEXStatement.Typename, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) GetVexJustification

func (v *PathPathCertifyVEXStatement) GetVexJustification() VexJustification

GetVexJustification returns PathPathCertifyVEXStatement.VexJustification, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) GetVulnerability

func (v *PathPathCertifyVEXStatement) GetVulnerability() allCertifyVEXStatementVulnerability

GetVulnerability returns PathPathCertifyVEXStatement.Vulnerability, and is useful for accessing the field via an interface.

func (*PathPathCertifyVEXStatement) MarshalJSON

func (v *PathPathCertifyVEXStatement) MarshalJSON() ([]byte, error)

func (*PathPathCertifyVEXStatement) UnmarshalJSON

func (v *PathPathCertifyVEXStatement) UnmarshalJSON(b []byte) error

type PathPathCertifyVuln

type PathPathCertifyVuln struct {
	Typename       *string `json:"__typename"`
	AllCertifyVuln `json:"-"`
}

PathPathCertifyVuln includes the requested fields of the GraphQL type CertifyVuln. The GraphQL type's documentation follows.

CertifyVuln is an attestation to attach vulnerability information to a package.

This information is obtained via a scanner. If there is no vulnerability detected (no OSV, CVE, or GHSA), we attach the special NoVuln node.

func (*PathPathCertifyVuln) GetId

func (v *PathPathCertifyVuln) GetId() string

GetId returns PathPathCertifyVuln.Id, and is useful for accessing the field via an interface.

func (*PathPathCertifyVuln) GetMetadata

GetMetadata returns PathPathCertifyVuln.Metadata, and is useful for accessing the field via an interface.

func (*PathPathCertifyVuln) GetPackage

GetPackage returns PathPathCertifyVuln.Package, and is useful for accessing the field via an interface.

func (*PathPathCertifyVuln) GetTypename

func (v *PathPathCertifyVuln) GetTypename() *string

GetTypename returns PathPathCertifyVuln.Typename, and is useful for accessing the field via an interface.

func (*PathPathCertifyVuln) GetVulnerability

func (v *PathPathCertifyVuln) GetVulnerability() AllCertifyVulnVulnerability

GetVulnerability returns PathPathCertifyVuln.Vulnerability, and is useful for accessing the field via an interface.

func (*PathPathCertifyVuln) MarshalJSON

func (v *PathPathCertifyVuln) MarshalJSON() ([]byte, error)

func (*PathPathCertifyVuln) UnmarshalJSON

func (v *PathPathCertifyVuln) UnmarshalJSON(b []byte) error

type PathPathGHSA

type PathPathGHSA struct {
	Typename    *string `json:"__typename"`
	AllGHSATree `json:"-"`
}

PathPathGHSA includes the requested fields of the GraphQL type GHSA. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*PathPathGHSA) GetGhsaId

func (v *PathPathGHSA) GetGhsaId() string

GetGhsaId returns PathPathGHSA.GhsaId, and is useful for accessing the field via an interface.

func (*PathPathGHSA) GetId

func (v *PathPathGHSA) GetId() string

GetId returns PathPathGHSA.Id, and is useful for accessing the field via an interface.

func (*PathPathGHSA) GetTypename

func (v *PathPathGHSA) GetTypename() *string

GetTypename returns PathPathGHSA.Typename, and is useful for accessing the field via an interface.

func (*PathPathGHSA) MarshalJSON

func (v *PathPathGHSA) MarshalJSON() ([]byte, error)

func (*PathPathGHSA) UnmarshalJSON

func (v *PathPathGHSA) UnmarshalJSON(b []byte) error

type PathPathHasSBOM

type PathPathHasSBOM struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

PathPathHasSBOM includes the requested fields of the GraphQL type HasSBOM.

func (*PathPathHasSBOM) GetAlgorithm

func (v *PathPathHasSBOM) GetAlgorithm() string

GetAlgorithm returns PathPathHasSBOM.Algorithm, and is useful for accessing the field via an interface.

func (*PathPathHasSBOM) GetAnnotations

func (v *PathPathHasSBOM) GetAnnotations() []allHasSBOMTreeAnnotationsAnnotation

GetAnnotations returns PathPathHasSBOM.Annotations, and is useful for accessing the field via an interface.

func (*PathPathHasSBOM) GetCollector

func (v *PathPathHasSBOM) GetCollector() string

GetCollector returns PathPathHasSBOM.Collector, and is useful for accessing the field via an interface.

func (*PathPathHasSBOM) GetDigest

func (v *PathPathHasSBOM) GetDigest() string

GetDigest returns PathPathHasSBOM.Digest, and is useful for accessing the field via an interface.

func (*PathPathHasSBOM) GetDownloadLocation

func (v *PathPathHasSBOM) GetDownloadLocation() string

GetDownloadLocation returns PathPathHasSBOM.DownloadLocation, and is useful for accessing the field via an interface.

func (*PathPathHasSBOM) GetId

func (v *PathPathHasSBOM) GetId() string

GetId returns PathPathHasSBOM.Id, and is useful for accessing the field via an interface.

func (*PathPathHasSBOM) GetOrigin

func (v *PathPathHasSBOM) GetOrigin() string

GetOrigin returns PathPathHasSBOM.Origin, and is useful for accessing the field via an interface.

func (*PathPathHasSBOM) GetSubject

func (v *PathPathHasSBOM) GetSubject() allHasSBOMTreeSubjectPackageOrArtifact

GetSubject returns PathPathHasSBOM.Subject, and is useful for accessing the field via an interface.

func (*PathPathHasSBOM) GetTypename

func (v *PathPathHasSBOM) GetTypename() *string

GetTypename returns PathPathHasSBOM.Typename, and is useful for accessing the field via an interface.

func (*PathPathHasSBOM) GetUri

func (v *PathPathHasSBOM) GetUri() string

GetUri returns PathPathHasSBOM.Uri, and is useful for accessing the field via an interface.

func (*PathPathHasSBOM) MarshalJSON

func (v *PathPathHasSBOM) MarshalJSON() ([]byte, error)

func (*PathPathHasSBOM) UnmarshalJSON

func (v *PathPathHasSBOM) UnmarshalJSON(b []byte) error

type PathPathHasSLSA

type PathPathHasSLSA struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

PathPathHasSLSA includes the requested fields of the GraphQL type HasSLSA. The GraphQL type's documentation follows.

HasSLSA records that a subject node has a SLSA attestation.

func (*PathPathHasSLSA) GetId

func (v *PathPathHasSLSA) GetId() string

GetId returns PathPathHasSLSA.Id, and is useful for accessing the field via an interface.

func (*PathPathHasSLSA) GetSlsa

func (v *PathPathHasSLSA) GetSlsa() allSLSATreeSlsaSLSA

GetSlsa returns PathPathHasSLSA.Slsa, and is useful for accessing the field via an interface.

func (*PathPathHasSLSA) GetSubject

func (v *PathPathHasSLSA) GetSubject() allSLSATreeSubjectArtifact

GetSubject returns PathPathHasSLSA.Subject, and is useful for accessing the field via an interface.

func (*PathPathHasSLSA) GetTypename

func (v *PathPathHasSLSA) GetTypename() *string

GetTypename returns PathPathHasSLSA.Typename, and is useful for accessing the field via an interface.

func (*PathPathHasSLSA) MarshalJSON

func (v *PathPathHasSLSA) MarshalJSON() ([]byte, error)

func (*PathPathHasSLSA) UnmarshalJSON

func (v *PathPathHasSLSA) UnmarshalJSON(b []byte) error

type PathPathHasSourceAt

type PathPathHasSourceAt struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

PathPathHasSourceAt includes the requested fields of the GraphQL type HasSourceAt. The GraphQL type's documentation follows.

HasSourceAt records that a package's repository is a given source.

func (*PathPathHasSourceAt) GetCollector

func (v *PathPathHasSourceAt) GetCollector() string

GetCollector returns PathPathHasSourceAt.Collector, and is useful for accessing the field via an interface.

func (*PathPathHasSourceAt) GetId

func (v *PathPathHasSourceAt) GetId() string

GetId returns PathPathHasSourceAt.Id, and is useful for accessing the field via an interface.

func (*PathPathHasSourceAt) GetJustification

func (v *PathPathHasSourceAt) GetJustification() string

GetJustification returns PathPathHasSourceAt.Justification, and is useful for accessing the field via an interface.

func (*PathPathHasSourceAt) GetKnownSince

func (v *PathPathHasSourceAt) GetKnownSince() time.Time

GetKnownSince returns PathPathHasSourceAt.KnownSince, and is useful for accessing the field via an interface.

func (*PathPathHasSourceAt) GetOrigin

func (v *PathPathHasSourceAt) GetOrigin() string

GetOrigin returns PathPathHasSourceAt.Origin, and is useful for accessing the field via an interface.

func (*PathPathHasSourceAt) GetPackage

func (v *PathPathHasSourceAt) GetPackage() allHasSourceAtPackage

GetPackage returns PathPathHasSourceAt.Package, and is useful for accessing the field via an interface.

func (*PathPathHasSourceAt) GetSource

func (v *PathPathHasSourceAt) GetSource() allHasSourceAtSource

GetSource returns PathPathHasSourceAt.Source, and is useful for accessing the field via an interface.

func (*PathPathHasSourceAt) GetTypename

func (v *PathPathHasSourceAt) GetTypename() *string

GetTypename returns PathPathHasSourceAt.Typename, and is useful for accessing the field via an interface.

func (*PathPathHasSourceAt) MarshalJSON

func (v *PathPathHasSourceAt) MarshalJSON() ([]byte, error)

func (*PathPathHasSourceAt) UnmarshalJSON

func (v *PathPathHasSourceAt) UnmarshalJSON(b []byte) error

type PathPathHashEqual

type PathPathHashEqual struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

PathPathHashEqual includes the requested fields of the GraphQL type HashEqual. The GraphQL type's documentation follows.

HashEqual is an attestation that a set of artifacts are identical.

func (*PathPathHashEqual) GetArtifacts

func (v *PathPathHashEqual) GetArtifacts() []allHashEqualTreeArtifactsArtifact

GetArtifacts returns PathPathHashEqual.Artifacts, and is useful for accessing the field via an interface.

func (*PathPathHashEqual) GetCollector

func (v *PathPathHashEqual) GetCollector() string

GetCollector returns PathPathHashEqual.Collector, and is useful for accessing the field via an interface.

func (*PathPathHashEqual) GetId

func (v *PathPathHashEqual) GetId() string

GetId returns PathPathHashEqual.Id, and is useful for accessing the field via an interface.

func (*PathPathHashEqual) GetJustification

func (v *PathPathHashEqual) GetJustification() string

GetJustification returns PathPathHashEqual.Justification, and is useful for accessing the field via an interface.

func (*PathPathHashEqual) GetOrigin

func (v *PathPathHashEqual) GetOrigin() string

GetOrigin returns PathPathHashEqual.Origin, and is useful for accessing the field via an interface.

func (*PathPathHashEqual) GetTypename

func (v *PathPathHashEqual) GetTypename() *string

GetTypename returns PathPathHashEqual.Typename, and is useful for accessing the field via an interface.

func (*PathPathHashEqual) MarshalJSON

func (v *PathPathHashEqual) MarshalJSON() ([]byte, error)

func (*PathPathHashEqual) UnmarshalJSON

func (v *PathPathHashEqual) UnmarshalJSON(b []byte) error

type PathPathIsDependency

type PathPathIsDependency struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

PathPathIsDependency includes the requested fields of the GraphQL type IsDependency. The GraphQL type's documentation follows.

IsDependency is an attestation to record that a package depends on another.

func (*PathPathIsDependency) GetCollector

func (v *PathPathIsDependency) GetCollector() string

GetCollector returns PathPathIsDependency.Collector, and is useful for accessing the field via an interface.

func (*PathPathIsDependency) GetDependencyType

func (v *PathPathIsDependency) GetDependencyType() DependencyType

GetDependencyType returns PathPathIsDependency.DependencyType, and is useful for accessing the field via an interface.

func (*PathPathIsDependency) GetDependentPackage

func (v *PathPathIsDependency) GetDependentPackage() allIsDependencyTreeDependentPackage

GetDependentPackage returns PathPathIsDependency.DependentPackage, and is useful for accessing the field via an interface.

func (*PathPathIsDependency) GetId

func (v *PathPathIsDependency) GetId() string

GetId returns PathPathIsDependency.Id, and is useful for accessing the field via an interface.

func (*PathPathIsDependency) GetJustification

func (v *PathPathIsDependency) GetJustification() string

GetJustification returns PathPathIsDependency.Justification, and is useful for accessing the field via an interface.

func (*PathPathIsDependency) GetOrigin

func (v *PathPathIsDependency) GetOrigin() string

GetOrigin returns PathPathIsDependency.Origin, and is useful for accessing the field via an interface.

func (*PathPathIsDependency) GetPackage

func (v *PathPathIsDependency) GetPackage() allIsDependencyTreePackage

GetPackage returns PathPathIsDependency.Package, and is useful for accessing the field via an interface.

func (*PathPathIsDependency) GetTypename

func (v *PathPathIsDependency) GetTypename() *string

GetTypename returns PathPathIsDependency.Typename, and is useful for accessing the field via an interface.

func (*PathPathIsDependency) GetVersionRange

func (v *PathPathIsDependency) GetVersionRange() string

GetVersionRange returns PathPathIsDependency.VersionRange, and is useful for accessing the field via an interface.

func (*PathPathIsDependency) MarshalJSON

func (v *PathPathIsDependency) MarshalJSON() ([]byte, error)

func (*PathPathIsDependency) UnmarshalJSON

func (v *PathPathIsDependency) UnmarshalJSON(b []byte) error

type PathPathIsOccurrence

type PathPathIsOccurrence struct {
	Typename             *string `json:"__typename"`
	AllIsOccurrencesTree `json:"-"`
}

PathPathIsOccurrence includes the requested fields of the GraphQL type IsOccurrence. The GraphQL type's documentation follows.

IsOccurrence is an attestation to link an artifact to a package or source.

Attestation must occur at the PackageVersion or at the SourceName.

func (*PathPathIsOccurrence) GetArtifact

GetArtifact returns PathPathIsOccurrence.Artifact, and is useful for accessing the field via an interface.

func (*PathPathIsOccurrence) GetCollector

func (v *PathPathIsOccurrence) GetCollector() string

GetCollector returns PathPathIsOccurrence.Collector, and is useful for accessing the field via an interface.

func (*PathPathIsOccurrence) GetId

func (v *PathPathIsOccurrence) GetId() string

GetId returns PathPathIsOccurrence.Id, and is useful for accessing the field via an interface.

func (*PathPathIsOccurrence) GetJustification

func (v *PathPathIsOccurrence) GetJustification() string

GetJustification returns PathPathIsOccurrence.Justification, and is useful for accessing the field via an interface.

func (*PathPathIsOccurrence) GetOrigin

func (v *PathPathIsOccurrence) GetOrigin() string

GetOrigin returns PathPathIsOccurrence.Origin, and is useful for accessing the field via an interface.

func (*PathPathIsOccurrence) GetSubject

GetSubject returns PathPathIsOccurrence.Subject, and is useful for accessing the field via an interface.

func (*PathPathIsOccurrence) GetTypename

func (v *PathPathIsOccurrence) GetTypename() *string

GetTypename returns PathPathIsOccurrence.Typename, and is useful for accessing the field via an interface.

func (*PathPathIsOccurrence) MarshalJSON

func (v *PathPathIsOccurrence) MarshalJSON() ([]byte, error)

func (*PathPathIsOccurrence) UnmarshalJSON

func (v *PathPathIsOccurrence) UnmarshalJSON(b []byte) error

type PathPathIsVulnerability

type PathPathIsVulnerability struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

PathPathIsVulnerability includes the requested fields of the GraphQL type IsVulnerability. The GraphQL type's documentation follows.

IsVulnerability is an attestation to link CVE/GHSA with data in OSV.

func (*PathPathIsVulnerability) GetCollector

func (v *PathPathIsVulnerability) GetCollector() string

GetCollector returns PathPathIsVulnerability.Collector, and is useful for accessing the field via an interface.

func (*PathPathIsVulnerability) GetId

func (v *PathPathIsVulnerability) GetId() string

GetId returns PathPathIsVulnerability.Id, and is useful for accessing the field via an interface.

func (*PathPathIsVulnerability) GetJustification

func (v *PathPathIsVulnerability) GetJustification() string

GetJustification returns PathPathIsVulnerability.Justification, and is useful for accessing the field via an interface.

func (*PathPathIsVulnerability) GetOrigin

func (v *PathPathIsVulnerability) GetOrigin() string

GetOrigin returns PathPathIsVulnerability.Origin, and is useful for accessing the field via an interface.

func (*PathPathIsVulnerability) GetOsv

func (v *PathPathIsVulnerability) GetOsv() allIsVulnerabilityOsvOSV

GetOsv returns PathPathIsVulnerability.Osv, and is useful for accessing the field via an interface.

func (*PathPathIsVulnerability) GetTypename

func (v *PathPathIsVulnerability) GetTypename() *string

GetTypename returns PathPathIsVulnerability.Typename, and is useful for accessing the field via an interface.

func (*PathPathIsVulnerability) GetVulnerability

func (v *PathPathIsVulnerability) GetVulnerability() allIsVulnerabilityVulnerabilityCveOrGhsa

GetVulnerability returns PathPathIsVulnerability.Vulnerability, and is useful for accessing the field via an interface.

func (*PathPathIsVulnerability) MarshalJSON

func (v *PathPathIsVulnerability) MarshalJSON() ([]byte, error)

func (*PathPathIsVulnerability) UnmarshalJSON

func (v *PathPathIsVulnerability) UnmarshalJSON(b []byte) error

type PathPathNoVuln

type PathPathNoVuln struct {
	Typename *string `json:"__typename"`
	Id       string  `json:"id"`
}

PathPathNoVuln includes the requested fields of the GraphQL type NoVuln. The GraphQL type's documentation follows.

NoVuln is a special vulnerability node to attest that no vulnerability has been found during a vulnerability scan.

Backends guarantee that this is a singleton node.

func (*PathPathNoVuln) GetId

func (v *PathPathNoVuln) GetId() string

GetId returns PathPathNoVuln.Id, and is useful for accessing the field via an interface.

func (*PathPathNoVuln) GetTypename

func (v *PathPathNoVuln) GetTypename() *string

GetTypename returns PathPathNoVuln.Typename, and is useful for accessing the field via an interface.

type PathPathNode

type PathPathNode interface {

	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() *string
	// contains filtered or unexported methods
}

PathPathNode includes the requested fields of the GraphQL interface Node.

PathPathNode is implemented by the following types: PathPathArtifact PathPathBuilder PathPathCVE PathPathCertifyBad PathPathCertifyGood PathPathCertifyScorecard PathPathCertifyVEXStatement PathPathCertifyVuln PathPathGHSA PathPathHasSBOM PathPathHasSLSA PathPathHasSourceAt PathPathHashEqual PathPathIsDependency PathPathIsOccurrence PathPathIsVulnerability PathPathNoVuln PathPathOSV PathPathPackage PathPathPkgEqual PathPathSource The GraphQL type's documentation follows.

Node is a union type of all the possible nodes.

It encapsulates the software tree nodes along with the evidence nodes. In a path query, all connecting evidence nodes along with their intermediate subject nodes need to be returned in order to create a complete graph.

type PathPathOSV

type PathPathOSV struct {
	Typename   *string `json:"__typename"`
	AllOSVTree `json:"-"`
}

PathPathOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*PathPathOSV) GetId

func (v *PathPathOSV) GetId() string

GetId returns PathPathOSV.Id, and is useful for accessing the field via an interface.

func (*PathPathOSV) GetOsvId

func (v *PathPathOSV) GetOsvId() string

GetOsvId returns PathPathOSV.OsvId, and is useful for accessing the field via an interface.

func (*PathPathOSV) GetTypename

func (v *PathPathOSV) GetTypename() *string

GetTypename returns PathPathOSV.Typename, and is useful for accessing the field via an interface.

func (*PathPathOSV) MarshalJSON

func (v *PathPathOSV) MarshalJSON() ([]byte, error)

func (*PathPathOSV) UnmarshalJSON

func (v *PathPathOSV) UnmarshalJSON(b []byte) error

type PathPathPackage

type PathPathPackage struct {
	Typename   *string `json:"__typename"`
	AllPkgTree `json:"-"`
}

PathPathPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*PathPathPackage) GetId

func (v *PathPathPackage) GetId() string

GetId returns PathPathPackage.Id, and is useful for accessing the field via an interface.

func (*PathPathPackage) GetNamespaces

GetNamespaces returns PathPathPackage.Namespaces, and is useful for accessing the field via an interface.

func (*PathPathPackage) GetType

func (v *PathPathPackage) GetType() string

GetType returns PathPathPackage.Type, and is useful for accessing the field via an interface.

func (*PathPathPackage) GetTypename

func (v *PathPathPackage) GetTypename() *string

GetTypename returns PathPathPackage.Typename, and is useful for accessing the field via an interface.

func (*PathPathPackage) MarshalJSON

func (v *PathPathPackage) MarshalJSON() ([]byte, error)

func (*PathPathPackage) UnmarshalJSON

func (v *PathPathPackage) UnmarshalJSON(b []byte) error

type PathPathPkgEqual

type PathPathPkgEqual struct {
	Typename *string `json:"__typename"`
	// contains filtered or unexported fields
}

PathPathPkgEqual includes the requested fields of the GraphQL type PkgEqual. The GraphQL type's documentation follows.

PkgEqual is an attestation that a set of packages are similar.

func (*PathPathPkgEqual) GetCollector

func (v *PathPathPkgEqual) GetCollector() string

GetCollector returns PathPathPkgEqual.Collector, and is useful for accessing the field via an interface.

func (*PathPathPkgEqual) GetId

func (v *PathPathPkgEqual) GetId() string

GetId returns PathPathPkgEqual.Id, and is useful for accessing the field via an interface.

func (*PathPathPkgEqual) GetJustification

func (v *PathPathPkgEqual) GetJustification() string

GetJustification returns PathPathPkgEqual.Justification, and is useful for accessing the field via an interface.

func (*PathPathPkgEqual) GetOrigin

func (v *PathPathPkgEqual) GetOrigin() string

GetOrigin returns PathPathPkgEqual.Origin, and is useful for accessing the field via an interface.

func (*PathPathPkgEqual) GetPackages

func (v *PathPathPkgEqual) GetPackages() []allPkgEqualPackagesPackage

GetPackages returns PathPathPkgEqual.Packages, and is useful for accessing the field via an interface.

func (*PathPathPkgEqual) GetTypename

func (v *PathPathPkgEqual) GetTypename() *string

GetTypename returns PathPathPkgEqual.Typename, and is useful for accessing the field via an interface.

func (*PathPathPkgEqual) MarshalJSON

func (v *PathPathPkgEqual) MarshalJSON() ([]byte, error)

func (*PathPathPkgEqual) UnmarshalJSON

func (v *PathPathPkgEqual) UnmarshalJSON(b []byte) error

type PathPathSource

type PathPathSource struct {
	Typename      *string `json:"__typename"`
	AllSourceTree `json:"-"`
}

PathPathSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*PathPathSource) GetId

func (v *PathPathSource) GetId() string

GetId returns PathPathSource.Id, and is useful for accessing the field via an interface.

func (*PathPathSource) GetNamespaces

GetNamespaces returns PathPathSource.Namespaces, and is useful for accessing the field via an interface.

func (*PathPathSource) GetType

func (v *PathPathSource) GetType() string

GetType returns PathPathSource.Type, and is useful for accessing the field via an interface.

func (*PathPathSource) GetTypename

func (v *PathPathSource) GetTypename() *string

GetTypename returns PathPathSource.Typename, and is useful for accessing the field via an interface.

func (*PathPathSource) MarshalJSON

func (v *PathPathSource) MarshalJSON() ([]byte, error)

func (*PathPathSource) UnmarshalJSON

func (v *PathPathSource) UnmarshalJSON(b []byte) error

type PathResponse

type PathResponse struct {
	// path query returns a path between subject and target, of a maximum length.
	//
	// Since we want to uniquely identify endpoints, nodes must be specified by
	// valid IDs only (instead of using filters/input spec structs).
	//
	// Specifying any Edge value in `usingOnly` will make the path only contain the
	// corresponding GUAC evidence trees (GUAC verbs).
	Path []PathPathNode `json:"-"`
}

PathResponse is returned by Path on success.

func Path

func Path(
	ctx context.Context,
	client graphql.Client,
	subject string,
	target string,
	maxPathLength int,
	usingOnly []Edge,
) (*PathResponse, error)

func (*PathResponse) GetPath

func (v *PathResponse) GetPath() []PathPathNode

GetPath returns PathResponse.Path, and is useful for accessing the field via an interface.

func (*PathResponse) MarshalJSON

func (v *PathResponse) MarshalJSON() ([]byte, error)

func (*PathResponse) UnmarshalJSON

func (v *PathResponse) UnmarshalJSON(b []byte) error

type PkgEqualIngestPkgEqual

type PkgEqualIngestPkgEqual struct {
	// contains filtered or unexported fields
}

PkgEqualIngestPkgEqual includes the requested fields of the GraphQL type PkgEqual. The GraphQL type's documentation follows.

PkgEqual is an attestation that a set of packages are similar.

func (*PkgEqualIngestPkgEqual) GetCollector

func (v *PkgEqualIngestPkgEqual) GetCollector() string

GetCollector returns PkgEqualIngestPkgEqual.Collector, and is useful for accessing the field via an interface.

func (*PkgEqualIngestPkgEqual) GetId

func (v *PkgEqualIngestPkgEqual) GetId() string

GetId returns PkgEqualIngestPkgEqual.Id, and is useful for accessing the field via an interface.

func (*PkgEqualIngestPkgEqual) GetJustification

func (v *PkgEqualIngestPkgEqual) GetJustification() string

GetJustification returns PkgEqualIngestPkgEqual.Justification, and is useful for accessing the field via an interface.

func (*PkgEqualIngestPkgEqual) GetOrigin

func (v *PkgEqualIngestPkgEqual) GetOrigin() string

GetOrigin returns PkgEqualIngestPkgEqual.Origin, and is useful for accessing the field via an interface.

func (*PkgEqualIngestPkgEqual) GetPackages

func (v *PkgEqualIngestPkgEqual) GetPackages() []allPkgEqualPackagesPackage

GetPackages returns PkgEqualIngestPkgEqual.Packages, and is useful for accessing the field via an interface.

func (*PkgEqualIngestPkgEqual) MarshalJSON

func (v *PkgEqualIngestPkgEqual) MarshalJSON() ([]byte, error)

func (*PkgEqualIngestPkgEqual) UnmarshalJSON

func (v *PkgEqualIngestPkgEqual) UnmarshalJSON(b []byte) error

type PkgEqualInputSpec

type PkgEqualInputSpec struct {
	Justification string `json:"justification"`
	Origin        string `json:"origin"`
	Collector     string `json:"collector"`
}

PkgEqualInputSpec represents the input to certify that packages are similar.

func (*PkgEqualInputSpec) GetCollector

func (v *PkgEqualInputSpec) GetCollector() string

GetCollector returns PkgEqualInputSpec.Collector, and is useful for accessing the field via an interface.

func (*PkgEqualInputSpec) GetJustification

func (v *PkgEqualInputSpec) GetJustification() string

GetJustification returns PkgEqualInputSpec.Justification, and is useful for accessing the field via an interface.

func (*PkgEqualInputSpec) GetOrigin

func (v *PkgEqualInputSpec) GetOrigin() string

GetOrigin returns PkgEqualInputSpec.Origin, and is useful for accessing the field via an interface.

type PkgEqualOtherPackage

type PkgEqualOtherPackage struct {
	AllPkgTree `json:"-"`
}

PkgEqualOtherPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*PkgEqualOtherPackage) GetId

func (v *PkgEqualOtherPackage) GetId() string

GetId returns PkgEqualOtherPackage.Id, and is useful for accessing the field via an interface.

func (*PkgEqualOtherPackage) GetNamespaces

GetNamespaces returns PkgEqualOtherPackage.Namespaces, and is useful for accessing the field via an interface.

func (*PkgEqualOtherPackage) GetType

func (v *PkgEqualOtherPackage) GetType() string

GetType returns PkgEqualOtherPackage.Type, and is useful for accessing the field via an interface.

func (*PkgEqualOtherPackage) MarshalJSON

func (v *PkgEqualOtherPackage) MarshalJSON() ([]byte, error)

func (*PkgEqualOtherPackage) UnmarshalJSON

func (v *PkgEqualOtherPackage) UnmarshalJSON(b []byte) error

type PkgEqualPkgPackage

type PkgEqualPkgPackage struct {
	AllPkgTree `json:"-"`
}

PkgEqualPkgPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*PkgEqualPkgPackage) GetId

func (v *PkgEqualPkgPackage) GetId() string

GetId returns PkgEqualPkgPackage.Id, and is useful for accessing the field via an interface.

func (*PkgEqualPkgPackage) GetNamespaces

GetNamespaces returns PkgEqualPkgPackage.Namespaces, and is useful for accessing the field via an interface.

func (*PkgEqualPkgPackage) GetType

func (v *PkgEqualPkgPackage) GetType() string

GetType returns PkgEqualPkgPackage.Type, and is useful for accessing the field via an interface.

func (*PkgEqualPkgPackage) MarshalJSON

func (v *PkgEqualPkgPackage) MarshalJSON() ([]byte, error)

func (*PkgEqualPkgPackage) UnmarshalJSON

func (v *PkgEqualPkgPackage) UnmarshalJSON(b []byte) error

type PkgEqualResponse

type PkgEqualResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	Pkg PkgEqualPkgPackage `json:"pkg"`
	// Ingests a new package and returns the corresponding package trie path.
	OtherPackage PkgEqualOtherPackage `json:"otherPackage"`
	// Adds a certification that two packages are similar.
	IngestPkgEqual PkgEqualIngestPkgEqual `json:"ingestPkgEqual"`
}

PkgEqualResponse is returned by PkgEqual on success.

func PkgEqual

func PkgEqual(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	otherPackage PkgInputSpec,
	pkgEqual PkgEqualInputSpec,
) (*PkgEqualResponse, error)

func (*PkgEqualResponse) GetIngestPkgEqual

func (v *PkgEqualResponse) GetIngestPkgEqual() PkgEqualIngestPkgEqual

GetIngestPkgEqual returns PkgEqualResponse.IngestPkgEqual, and is useful for accessing the field via an interface.

func (*PkgEqualResponse) GetOtherPackage

func (v *PkgEqualResponse) GetOtherPackage() PkgEqualOtherPackage

GetOtherPackage returns PkgEqualResponse.OtherPackage, and is useful for accessing the field via an interface.

func (*PkgEqualResponse) GetPkg

GetPkg returns PkgEqualResponse.Pkg, and is useful for accessing the field via an interface.

type PkgInputSpec

type PkgInputSpec struct {
	Type       string                      `json:"type"`
	Namespace  *string                     `json:"namespace"`
	Name       string                      `json:"name"`
	Version    *string                     `json:"version"`
	Qualifiers []PackageQualifierInputSpec `json:"qualifiers"`
	Subpath    *string                     `json:"subpath"`
}

PkgInputSpec specifies a package for mutations.

This is different than PkgSpec because we want to encode mandatory fields: type and name. All optional fields are given empty default values.

func (*PkgInputSpec) GetName

func (v *PkgInputSpec) GetName() string

GetName returns PkgInputSpec.Name, and is useful for accessing the field via an interface.

func (*PkgInputSpec) GetNamespace

func (v *PkgInputSpec) GetNamespace() *string

GetNamespace returns PkgInputSpec.Namespace, and is useful for accessing the field via an interface.

func (*PkgInputSpec) GetQualifiers

func (v *PkgInputSpec) GetQualifiers() []PackageQualifierInputSpec

GetQualifiers returns PkgInputSpec.Qualifiers, and is useful for accessing the field via an interface.

func (*PkgInputSpec) GetSubpath

func (v *PkgInputSpec) GetSubpath() *string

GetSubpath returns PkgInputSpec.Subpath, and is useful for accessing the field via an interface.

func (*PkgInputSpec) GetType

func (v *PkgInputSpec) GetType() string

GetType returns PkgInputSpec.Type, and is useful for accessing the field via an interface.

func (*PkgInputSpec) GetVersion

func (v *PkgInputSpec) GetVersion() *string

GetVersion returns PkgInputSpec.Version, and is useful for accessing the field via an interface.

type PkgMatchType

type PkgMatchType string

PkgMatchType is an enum to determine if the attestation should be done at the specific version or package name.

const (
	PkgMatchTypeAllVersions     PkgMatchType = "ALL_VERSIONS"
	PkgMatchTypeSpecificVersion PkgMatchType = "SPECIFIC_VERSION"
)

type PkgSpec

type PkgSpec struct {
	Id                       *string                `json:"id"`
	Type                     *string                `json:"type"`
	Namespace                *string                `json:"namespace"`
	Name                     *string                `json:"name"`
	Version                  *string                `json:"version"`
	Qualifiers               []PackageQualifierSpec `json:"qualifiers"`
	MatchOnlyEmptyQualifiers *bool                  `json:"matchOnlyEmptyQualifiers"`
	Subpath                  *string                `json:"subpath"`
}

PkgSpec allows filtering the list of sources to return in a query.

Each field matches a qualifier from pURL. Use null to match on all values at that level. For example, to get all packages in GUAC backend, use a PkgSpec where every field is null.

Empty string at a field means matching with the empty string. If passing in qualifiers, all of the values in the list must match. Since we want to return nodes with any number of qualifiers if no qualifiers are passed in the input, we must also return the same set of nodes it the qualifiers list is empty. To match on nodes that don't contain any qualifier, set matchOnlyEmptyQualifiers to true. If this field is true, then the qualifiers argument is ignored.

func (*PkgSpec) GetId

func (v *PkgSpec) GetId() *string

GetId returns PkgSpec.Id, and is useful for accessing the field via an interface.

func (*PkgSpec) GetMatchOnlyEmptyQualifiers

func (v *PkgSpec) GetMatchOnlyEmptyQualifiers() *bool

GetMatchOnlyEmptyQualifiers returns PkgSpec.MatchOnlyEmptyQualifiers, and is useful for accessing the field via an interface.

func (*PkgSpec) GetName

func (v *PkgSpec) GetName() *string

GetName returns PkgSpec.Name, and is useful for accessing the field via an interface.

func (*PkgSpec) GetNamespace

func (v *PkgSpec) GetNamespace() *string

GetNamespace returns PkgSpec.Namespace, and is useful for accessing the field via an interface.

func (*PkgSpec) GetQualifiers

func (v *PkgSpec) GetQualifiers() []PackageQualifierSpec

GetQualifiers returns PkgSpec.Qualifiers, and is useful for accessing the field via an interface.

func (*PkgSpec) GetSubpath

func (v *PkgSpec) GetSubpath() *string

GetSubpath returns PkgSpec.Subpath, and is useful for accessing the field via an interface.

func (*PkgSpec) GetType

func (v *PkgSpec) GetType() *string

GetType returns PkgSpec.Type, and is useful for accessing the field via an interface.

func (*PkgSpec) GetVersion

func (v *PkgSpec) GetVersion() *string

GetVersion returns PkgSpec.Version, and is useful for accessing the field via an interface.

type SLSAForArtifactIngestArtifact

type SLSAForArtifactIngestArtifact struct {
	AllArtifactTree `json:"-"`
}

SLSAForArtifactIngestArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*SLSAForArtifactIngestArtifact) GetAlgorithm

func (v *SLSAForArtifactIngestArtifact) GetAlgorithm() string

GetAlgorithm returns SLSAForArtifactIngestArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*SLSAForArtifactIngestArtifact) GetDigest

func (v *SLSAForArtifactIngestArtifact) GetDigest() string

GetDigest returns SLSAForArtifactIngestArtifact.Digest, and is useful for accessing the field via an interface.

func (*SLSAForArtifactIngestArtifact) GetId

GetId returns SLSAForArtifactIngestArtifact.Id, and is useful for accessing the field via an interface.

func (*SLSAForArtifactIngestArtifact) MarshalJSON

func (v *SLSAForArtifactIngestArtifact) MarshalJSON() ([]byte, error)

func (*SLSAForArtifactIngestArtifact) UnmarshalJSON

func (v *SLSAForArtifactIngestArtifact) UnmarshalJSON(b []byte) error

type SLSAForArtifactIngestBuilder

type SLSAForArtifactIngestBuilder struct {
	Uri string `json:"uri"`
}

SLSAForArtifactIngestBuilder includes the requested fields of the GraphQL type Builder. The GraphQL type's documentation follows.

Builder represents the builder (e.g., FRSCA or GitHub Actions).

Currently builders are identified by the uri field.

func (*SLSAForArtifactIngestBuilder) GetUri

GetUri returns SLSAForArtifactIngestBuilder.Uri, and is useful for accessing the field via an interface.

type SLSAForArtifactIngestMaterialsArtifact

type SLSAForArtifactIngestMaterialsArtifact struct {
	AllArtifactTree `json:"-"`
}

SLSAForArtifactIngestMaterialsArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*SLSAForArtifactIngestMaterialsArtifact) GetAlgorithm

GetAlgorithm returns SLSAForArtifactIngestMaterialsArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*SLSAForArtifactIngestMaterialsArtifact) GetDigest

GetDigest returns SLSAForArtifactIngestMaterialsArtifact.Digest, and is useful for accessing the field via an interface.

func (*SLSAForArtifactIngestMaterialsArtifact) GetId

GetId returns SLSAForArtifactIngestMaterialsArtifact.Id, and is useful for accessing the field via an interface.

func (*SLSAForArtifactIngestMaterialsArtifact) MarshalJSON

func (v *SLSAForArtifactIngestMaterialsArtifact) MarshalJSON() ([]byte, error)

func (*SLSAForArtifactIngestMaterialsArtifact) UnmarshalJSON

func (v *SLSAForArtifactIngestMaterialsArtifact) UnmarshalJSON(b []byte) error

type SLSAForArtifactIngestSLSAHasSLSA

type SLSAForArtifactIngestSLSAHasSLSA struct {
	// contains filtered or unexported fields
}

SLSAForArtifactIngestSLSAHasSLSA includes the requested fields of the GraphQL type HasSLSA. The GraphQL type's documentation follows.

HasSLSA records that a subject node has a SLSA attestation.

func (*SLSAForArtifactIngestSLSAHasSLSA) GetId

GetId returns SLSAForArtifactIngestSLSAHasSLSA.Id, and is useful for accessing the field via an interface.

func (*SLSAForArtifactIngestSLSAHasSLSA) GetSlsa

func (v *SLSAForArtifactIngestSLSAHasSLSA) GetSlsa() allSLSATreeSlsaSLSA

GetSlsa returns SLSAForArtifactIngestSLSAHasSLSA.Slsa, and is useful for accessing the field via an interface.

func (*SLSAForArtifactIngestSLSAHasSLSA) GetSubject

func (v *SLSAForArtifactIngestSLSAHasSLSA) GetSubject() allSLSATreeSubjectArtifact

GetSubject returns SLSAForArtifactIngestSLSAHasSLSA.Subject, and is useful for accessing the field via an interface.

func (*SLSAForArtifactIngestSLSAHasSLSA) MarshalJSON

func (v *SLSAForArtifactIngestSLSAHasSLSA) MarshalJSON() ([]byte, error)

func (*SLSAForArtifactIngestSLSAHasSLSA) UnmarshalJSON

func (v *SLSAForArtifactIngestSLSAHasSLSA) UnmarshalJSON(b []byte) error

type SLSAForArtifactResponse

type SLSAForArtifactResponse struct {
	// Ingests a new artifact and returns it.
	IngestArtifact SLSAForArtifactIngestArtifact `json:"ingestArtifact"`
	// Helper mutation to ingest multiple artifacts as materials for SLSA.
	IngestMaterials []SLSAForArtifactIngestMaterialsArtifact `json:"ingestMaterials"`
	// Ingests a new builder and returns it.
	IngestBuilder SLSAForArtifactIngestBuilder `json:"ingestBuilder"`
	// Ingests a SLSA attestation.
	IngestSLSA SLSAForArtifactIngestSLSAHasSLSA `json:"ingestSLSA"`
}

SLSAForArtifactResponse is returned by SLSAForArtifact on success.

func SLSAForArtifact

func SLSAForArtifact(
	ctx context.Context,
	client graphql.Client,
	artifact ArtifactInputSpec,
	materials []ArtifactInputSpec,
	builder BuilderInputSpec,
	slsa SLSAInputSpec,
) (*SLSAForArtifactResponse, error)

func (*SLSAForArtifactResponse) GetIngestArtifact

GetIngestArtifact returns SLSAForArtifactResponse.IngestArtifact, and is useful for accessing the field via an interface.

func (*SLSAForArtifactResponse) GetIngestBuilder

GetIngestBuilder returns SLSAForArtifactResponse.IngestBuilder, and is useful for accessing the field via an interface.

func (*SLSAForArtifactResponse) GetIngestMaterials

GetIngestMaterials returns SLSAForArtifactResponse.IngestMaterials, and is useful for accessing the field via an interface.

func (*SLSAForArtifactResponse) GetIngestSLSA

GetIngestSLSA returns SLSAForArtifactResponse.IngestSLSA, and is useful for accessing the field via an interface.

type SLSAInputSpec

type SLSAInputSpec struct {
	BuildType     string                   `json:"buildType"`
	SlsaPredicate []SLSAPredicateInputSpec `json:"slsaPredicate"`
	SlsaVersion   string                   `json:"slsaVersion"`
	StartedOn     *time.Time               `json:"startedOn"`
	FinishedOn    *time.Time               `json:"finishedOn"`
	Origin        string                   `json:"origin"`
	Collector     string                   `json:"collector"`
}

SLSAInputSpec is the same as SLSA but for mutation input.

func (*SLSAInputSpec) GetBuildType

func (v *SLSAInputSpec) GetBuildType() string

GetBuildType returns SLSAInputSpec.BuildType, and is useful for accessing the field via an interface.

func (*SLSAInputSpec) GetCollector

func (v *SLSAInputSpec) GetCollector() string

GetCollector returns SLSAInputSpec.Collector, and is useful for accessing the field via an interface.

func (*SLSAInputSpec) GetFinishedOn

func (v *SLSAInputSpec) GetFinishedOn() *time.Time

GetFinishedOn returns SLSAInputSpec.FinishedOn, and is useful for accessing the field via an interface.

func (*SLSAInputSpec) GetOrigin

func (v *SLSAInputSpec) GetOrigin() string

GetOrigin returns SLSAInputSpec.Origin, and is useful for accessing the field via an interface.

func (*SLSAInputSpec) GetSlsaPredicate

func (v *SLSAInputSpec) GetSlsaPredicate() []SLSAPredicateInputSpec

GetSlsaPredicate returns SLSAInputSpec.SlsaPredicate, and is useful for accessing the field via an interface.

func (*SLSAInputSpec) GetSlsaVersion

func (v *SLSAInputSpec) GetSlsaVersion() string

GetSlsaVersion returns SLSAInputSpec.SlsaVersion, and is useful for accessing the field via an interface.

func (*SLSAInputSpec) GetStartedOn

func (v *SLSAInputSpec) GetStartedOn() *time.Time

GetStartedOn returns SLSAInputSpec.StartedOn, and is useful for accessing the field via an interface.

type SLSAPredicateInputSpec

type SLSAPredicateInputSpec struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

SLSAPredicateInputSpec allows ingesting SLSAPredicateSpec.

func (*SLSAPredicateInputSpec) GetKey

func (v *SLSAPredicateInputSpec) GetKey() string

GetKey returns SLSAPredicateInputSpec.Key, and is useful for accessing the field via an interface.

func (*SLSAPredicateInputSpec) GetValue

func (v *SLSAPredicateInputSpec) GetValue() string

GetValue returns SLSAPredicateInputSpec.Value, and is useful for accessing the field via an interface.

type ScorecardCertifyScorecard

type ScorecardCertifyScorecard struct {
	AllCertifyScorecard `json:"-"`
}

ScorecardCertifyScorecard includes the requested fields of the GraphQL type CertifyScorecard. The GraphQL type's documentation follows.

CertifyScorecard is an attestation to attach a Scorecard analysis to a particular source repository.

func (*ScorecardCertifyScorecard) GetId

func (v *ScorecardCertifyScorecard) GetId() string

GetId returns ScorecardCertifyScorecard.Id, and is useful for accessing the field via an interface.

func (*ScorecardCertifyScorecard) GetScorecard

GetScorecard returns ScorecardCertifyScorecard.Scorecard, and is useful for accessing the field via an interface.

func (*ScorecardCertifyScorecard) GetSource

GetSource returns ScorecardCertifyScorecard.Source, and is useful for accessing the field via an interface.

func (*ScorecardCertifyScorecard) MarshalJSON

func (v *ScorecardCertifyScorecard) MarshalJSON() ([]byte, error)

func (*ScorecardCertifyScorecard) UnmarshalJSON

func (v *ScorecardCertifyScorecard) UnmarshalJSON(b []byte) error

type ScorecardCheckInputSpec

type ScorecardCheckInputSpec struct {
	Check string `json:"check"`
	Score int    `json:"score"`
}

ScorecardCheckInputSpec represents the mutation input for a Scorecard check.

func (*ScorecardCheckInputSpec) GetCheck

func (v *ScorecardCheckInputSpec) GetCheck() string

GetCheck returns ScorecardCheckInputSpec.Check, and is useful for accessing the field via an interface.

func (*ScorecardCheckInputSpec) GetScore

func (v *ScorecardCheckInputSpec) GetScore() int

GetScore returns ScorecardCheckInputSpec.Score, and is useful for accessing the field via an interface.

type ScorecardIngestSource

type ScorecardIngestSource struct {
	AllSourceTree `json:"-"`
}

ScorecardIngestSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*ScorecardIngestSource) GetId

func (v *ScorecardIngestSource) GetId() string

GetId returns ScorecardIngestSource.Id, and is useful for accessing the field via an interface.

func (*ScorecardIngestSource) GetNamespaces

GetNamespaces returns ScorecardIngestSource.Namespaces, and is useful for accessing the field via an interface.

func (*ScorecardIngestSource) GetType

func (v *ScorecardIngestSource) GetType() string

GetType returns ScorecardIngestSource.Type, and is useful for accessing the field via an interface.

func (*ScorecardIngestSource) MarshalJSON

func (v *ScorecardIngestSource) MarshalJSON() ([]byte, error)

func (*ScorecardIngestSource) UnmarshalJSON

func (v *ScorecardIngestSource) UnmarshalJSON(b []byte) error

type ScorecardInputSpec

type ScorecardInputSpec struct {
	Checks           []ScorecardCheckInputSpec `json:"checks"`
	AggregateScore   float64                   `json:"aggregateScore"`
	TimeScanned      time.Time                 `json:"timeScanned"`
	ScorecardVersion string                    `json:"scorecardVersion"`
	ScorecardCommit  string                    `json:"scorecardCommit"`
	Origin           string                    `json:"origin"`
	Collector        string                    `json:"collector"`
}

ScorecardInputSpec represents the mutation input to ingest a Scorecard.

func (*ScorecardInputSpec) GetAggregateScore

func (v *ScorecardInputSpec) GetAggregateScore() float64

GetAggregateScore returns ScorecardInputSpec.AggregateScore, and is useful for accessing the field via an interface.

func (*ScorecardInputSpec) GetChecks

GetChecks returns ScorecardInputSpec.Checks, and is useful for accessing the field via an interface.

func (*ScorecardInputSpec) GetCollector

func (v *ScorecardInputSpec) GetCollector() string

GetCollector returns ScorecardInputSpec.Collector, and is useful for accessing the field via an interface.

func (*ScorecardInputSpec) GetOrigin

func (v *ScorecardInputSpec) GetOrigin() string

GetOrigin returns ScorecardInputSpec.Origin, and is useful for accessing the field via an interface.

func (*ScorecardInputSpec) GetScorecardCommit

func (v *ScorecardInputSpec) GetScorecardCommit() string

GetScorecardCommit returns ScorecardInputSpec.ScorecardCommit, and is useful for accessing the field via an interface.

func (*ScorecardInputSpec) GetScorecardVersion

func (v *ScorecardInputSpec) GetScorecardVersion() string

GetScorecardVersion returns ScorecardInputSpec.ScorecardVersion, and is useful for accessing the field via an interface.

func (*ScorecardInputSpec) GetTimeScanned

func (v *ScorecardInputSpec) GetTimeScanned() time.Time

GetTimeScanned returns ScorecardInputSpec.TimeScanned, and is useful for accessing the field via an interface.

type ScorecardResponse

type ScorecardResponse struct {
	// Ingests a new source and returns the corresponding source trie path.
	IngestSource ScorecardIngestSource `json:"ingestSource"`
	// Adds a certification that a source repository has a Scorecard.
	CertifyScorecard ScorecardCertifyScorecard `json:"certifyScorecard"`
}

ScorecardResponse is returned by Scorecard on success.

func Scorecard

func Scorecard(
	ctx context.Context,
	client graphql.Client,
	source SourceInputSpec,
	scorecard ScorecardInputSpec,
) (*ScorecardResponse, error)

func (*ScorecardResponse) GetCertifyScorecard

func (v *ScorecardResponse) GetCertifyScorecard() ScorecardCertifyScorecard

GetCertifyScorecard returns ScorecardResponse.CertifyScorecard, and is useful for accessing the field via an interface.

func (*ScorecardResponse) GetIngestSource

func (v *ScorecardResponse) GetIngestSource() ScorecardIngestSource

GetIngestSource returns ScorecardResponse.IngestSource, and is useful for accessing the field via an interface.

type SourceInputSpec

type SourceInputSpec struct {
	Type      string  `json:"type"`
	Namespace string  `json:"namespace"`
	Name      string  `json:"name"`
	Tag       *string `json:"tag"`
	Commit    *string `json:"commit"`
}

SourceInputSpec specifies a source for mutations.

This is different than SourceSpec because we want to encode that all fields except tag and commit are mandatory fields. All optional fields are given empty default values.

It is an error to set both tag and commit fields to values different than the default.

func (*SourceInputSpec) GetCommit

func (v *SourceInputSpec) GetCommit() *string

GetCommit returns SourceInputSpec.Commit, and is useful for accessing the field via an interface.

func (*SourceInputSpec) GetName

func (v *SourceInputSpec) GetName() string

GetName returns SourceInputSpec.Name, and is useful for accessing the field via an interface.

func (*SourceInputSpec) GetNamespace

func (v *SourceInputSpec) GetNamespace() string

GetNamespace returns SourceInputSpec.Namespace, and is useful for accessing the field via an interface.

func (*SourceInputSpec) GetTag

func (v *SourceInputSpec) GetTag() *string

GetTag returns SourceInputSpec.Tag, and is useful for accessing the field via an interface.

func (*SourceInputSpec) GetType

func (v *SourceInputSpec) GetType() string

GetType returns SourceInputSpec.Type, and is useful for accessing the field via an interface.

type SourceSpec

type SourceSpec struct {
	Id        *string `json:"id"`
	Type      *string `json:"type"`
	Namespace *string `json:"namespace"`
	Name      *string `json:"name"`
	Tag       *string `json:"tag"`
	Commit    *string `json:"commit"`
}

SourceSpec allows filtering the list of sources to return in a query.

Empty string at a field means matching with the empty string. Missing field means retrieving all possible matches.

It is an error to specify both tag and commit fields, except it both are set as empty string (in which case the returned sources are only those for which there is no tag/commit information).

func (*SourceSpec) GetCommit

func (v *SourceSpec) GetCommit() *string

GetCommit returns SourceSpec.Commit, and is useful for accessing the field via an interface.

func (*SourceSpec) GetId

func (v *SourceSpec) GetId() *string

GetId returns SourceSpec.Id, and is useful for accessing the field via an interface.

func (*SourceSpec) GetName

func (v *SourceSpec) GetName() *string

GetName returns SourceSpec.Name, and is useful for accessing the field via an interface.

func (*SourceSpec) GetNamespace

func (v *SourceSpec) GetNamespace() *string

GetNamespace returns SourceSpec.Namespace, and is useful for accessing the field via an interface.

func (*SourceSpec) GetTag

func (v *SourceSpec) GetTag() *string

GetTag returns SourceSpec.Tag, and is useful for accessing the field via an interface.

func (*SourceSpec) GetType

func (v *SourceSpec) GetType() *string

GetType returns SourceSpec.Type, and is useful for accessing the field via an interface.

type SourcesResponse

type SourcesResponse struct {
	// Returns all sources matching a filter.
	Sources []SourcesSourcesSource `json:"sources"`
}

SourcesResponse is returned by Sources on success.

func Sources

func Sources(
	ctx context.Context,
	client graphql.Client,
	filter *SourceSpec,
) (*SourcesResponse, error)

func (*SourcesResponse) GetSources

func (v *SourcesResponse) GetSources() []SourcesSourcesSource

GetSources returns SourcesResponse.Sources, and is useful for accessing the field via an interface.

type SourcesSourcesSource

type SourcesSourcesSource struct {
	AllSourceTree `json:"-"`
}

SourcesSourcesSource includes the requested fields of the GraphQL type Source. The GraphQL type's documentation follows.

Source represents the root of the source trie/tree.

We map source information to a trie, as a derivative of the pURL specification: each path in the trie represents a type, namespace, name and an optional qualifier that stands for tag/commit information.

This node represents the type part of the trie path. It is used to represent the version control system that is being used.

Since this node is at the root of the source trie, it is named Source, not SourceType.

func (*SourcesSourcesSource) GetId

func (v *SourcesSourcesSource) GetId() string

GetId returns SourcesSourcesSource.Id, and is useful for accessing the field via an interface.

func (*SourcesSourcesSource) GetNamespaces

GetNamespaces returns SourcesSourcesSource.Namespaces, and is useful for accessing the field via an interface.

func (*SourcesSourcesSource) GetType

func (v *SourcesSourcesSource) GetType() string

GetType returns SourcesSourcesSource.Type, and is useful for accessing the field via an interface.

func (*SourcesSourcesSource) MarshalJSON

func (v *SourcesSourcesSource) MarshalJSON() ([]byte, error)

func (*SourcesSourcesSource) UnmarshalJSON

func (v *SourcesSourcesSource) UnmarshalJSON(b []byte) error

type VEXPackageAndGhsaIngestGHSA

type VEXPackageAndGhsaIngestGHSA struct {
	AllGHSATree `json:"-"`
}

VEXPackageAndGhsaIngestGHSA includes the requested fields of the GraphQL type GHSA. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*VEXPackageAndGhsaIngestGHSA) GetGhsaId

func (v *VEXPackageAndGhsaIngestGHSA) GetGhsaId() string

GetGhsaId returns VEXPackageAndGhsaIngestGHSA.GhsaId, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestGHSA) GetId

GetId returns VEXPackageAndGhsaIngestGHSA.Id, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestGHSA) MarshalJSON

func (v *VEXPackageAndGhsaIngestGHSA) MarshalJSON() ([]byte, error)

func (*VEXPackageAndGhsaIngestGHSA) UnmarshalJSON

func (v *VEXPackageAndGhsaIngestGHSA) UnmarshalJSON(b []byte) error

type VEXPackageAndGhsaIngestPackage

type VEXPackageAndGhsaIngestPackage struct {
	AllPkgTree `json:"-"`
}

VEXPackageAndGhsaIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*VEXPackageAndGhsaIngestPackage) GetId

GetId returns VEXPackageAndGhsaIngestPackage.Id, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestPackage) GetNamespaces

GetNamespaces returns VEXPackageAndGhsaIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestPackage) GetType

GetType returns VEXPackageAndGhsaIngestPackage.Type, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestPackage) MarshalJSON

func (v *VEXPackageAndGhsaIngestPackage) MarshalJSON() ([]byte, error)

func (*VEXPackageAndGhsaIngestPackage) UnmarshalJSON

func (v *VEXPackageAndGhsaIngestPackage) UnmarshalJSON(b []byte) error

type VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement

type VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement struct {
	// contains filtered or unexported fields
}

VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement includes the requested fields of the GraphQL type CertifyVEXStatement. The GraphQL type's documentation follows.

CertifyVEXStatement is an attestation to attach VEX statements to a package or artifact to clarify the impact of a specific vulnerability (CVE, GHSA or OSV).

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetCollector

GetCollector returns VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement.Collector, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetId

GetId returns VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement.Id, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetKnownSince

GetKnownSince returns VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement.KnownSince, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetOrigin

GetOrigin returns VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement.Origin, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetStatement

GetStatement returns VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement.Statement, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetStatus

GetStatus returns VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement.Status, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetStatusNotes

GetStatusNotes returns VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement.StatusNotes, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetSubject

func (v *VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetSubject() allCertifyVEXStatementSubjectPackageOrArtifact

GetSubject returns VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement.Subject, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetVexJustification

GetVexJustification returns VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement.VexJustification, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetVulnerability

func (v *VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) GetVulnerability() allCertifyVEXStatementVulnerability

GetVulnerability returns VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement.Vulnerability, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) MarshalJSON

func (*VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement) UnmarshalJSON

type VEXPackageAndGhsaResponse

type VEXPackageAndGhsaResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage VEXPackageAndGhsaIngestPackage `json:"ingestPackage"`
	// Ingests a new GitHub Security Advisory and returns it.
	IngestGHSA VEXPackageAndGhsaIngestGHSA `json:"ingestGHSA"`
	// Adds a VEX certification for a package.
	IngestVEXStatement VEXPackageAndGhsaIngestVEXStatementCertifyVEXStatement `json:"ingestVEXStatement"`
}

VEXPackageAndGhsaResponse is returned by VEXPackageAndGhsa on success.

func VEXPackageAndGhsa

func VEXPackageAndGhsa(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	ghsa GHSAInputSpec,
	vexStatement VexStatementInputSpec,
) (*VEXPackageAndGhsaResponse, error)

func (*VEXPackageAndGhsaResponse) GetIngestGHSA

GetIngestGHSA returns VEXPackageAndGhsaResponse.IngestGHSA, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaResponse) GetIngestPackage

GetIngestPackage returns VEXPackageAndGhsaResponse.IngestPackage, and is useful for accessing the field via an interface.

func (*VEXPackageAndGhsaResponse) GetIngestVEXStatement

GetIngestVEXStatement returns VEXPackageAndGhsaResponse.IngestVEXStatement, and is useful for accessing the field via an interface.

type VexArtifactAndCveIngestArtifact

type VexArtifactAndCveIngestArtifact struct {
	AllArtifactTree `json:"-"`
}

VexArtifactAndCveIngestArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*VexArtifactAndCveIngestArtifact) GetAlgorithm

func (v *VexArtifactAndCveIngestArtifact) GetAlgorithm() string

GetAlgorithm returns VexArtifactAndCveIngestArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestArtifact) GetDigest

func (v *VexArtifactAndCveIngestArtifact) GetDigest() string

GetDigest returns VexArtifactAndCveIngestArtifact.Digest, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestArtifact) GetId

GetId returns VexArtifactAndCveIngestArtifact.Id, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestArtifact) MarshalJSON

func (v *VexArtifactAndCveIngestArtifact) MarshalJSON() ([]byte, error)

func (*VexArtifactAndCveIngestArtifact) UnmarshalJSON

func (v *VexArtifactAndCveIngestArtifact) UnmarshalJSON(b []byte) error

type VexArtifactAndCveIngestCVE

type VexArtifactAndCveIngestCVE struct {
	AllCveTree `json:"-"`
}

VexArtifactAndCveIngestCVE includes the requested fields of the GraphQL type CVE. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*VexArtifactAndCveIngestCVE) GetCveId

func (v *VexArtifactAndCveIngestCVE) GetCveId() string

GetCveId returns VexArtifactAndCveIngestCVE.CveId, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestCVE) GetId

GetId returns VexArtifactAndCveIngestCVE.Id, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestCVE) GetYear

func (v *VexArtifactAndCveIngestCVE) GetYear() int

GetYear returns VexArtifactAndCveIngestCVE.Year, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestCVE) MarshalJSON

func (v *VexArtifactAndCveIngestCVE) MarshalJSON() ([]byte, error)

func (*VexArtifactAndCveIngestCVE) UnmarshalJSON

func (v *VexArtifactAndCveIngestCVE) UnmarshalJSON(b []byte) error

type VexArtifactAndCveIngestVEXStatementCertifyVEXStatement

type VexArtifactAndCveIngestVEXStatementCertifyVEXStatement struct {
	// contains filtered or unexported fields
}

VexArtifactAndCveIngestVEXStatementCertifyVEXStatement includes the requested fields of the GraphQL type CertifyVEXStatement. The GraphQL type's documentation follows.

CertifyVEXStatement is an attestation to attach VEX statements to a package or artifact to clarify the impact of a specific vulnerability (CVE, GHSA or OSV).

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetCollector

GetCollector returns VexArtifactAndCveIngestVEXStatementCertifyVEXStatement.Collector, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetId

GetId returns VexArtifactAndCveIngestVEXStatementCertifyVEXStatement.Id, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetKnownSince

GetKnownSince returns VexArtifactAndCveIngestVEXStatementCertifyVEXStatement.KnownSince, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetOrigin

GetOrigin returns VexArtifactAndCveIngestVEXStatementCertifyVEXStatement.Origin, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetStatement

GetStatement returns VexArtifactAndCveIngestVEXStatementCertifyVEXStatement.Statement, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetStatus

GetStatus returns VexArtifactAndCveIngestVEXStatementCertifyVEXStatement.Status, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetStatusNotes

GetStatusNotes returns VexArtifactAndCveIngestVEXStatementCertifyVEXStatement.StatusNotes, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetSubject

func (v *VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetSubject() allCertifyVEXStatementSubjectPackageOrArtifact

GetSubject returns VexArtifactAndCveIngestVEXStatementCertifyVEXStatement.Subject, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetVexJustification

GetVexJustification returns VexArtifactAndCveIngestVEXStatementCertifyVEXStatement.VexJustification, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetVulnerability

func (v *VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) GetVulnerability() allCertifyVEXStatementVulnerability

GetVulnerability returns VexArtifactAndCveIngestVEXStatementCertifyVEXStatement.Vulnerability, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) MarshalJSON

func (*VexArtifactAndCveIngestVEXStatementCertifyVEXStatement) UnmarshalJSON

type VexArtifactAndCveResponse

type VexArtifactAndCveResponse struct {
	// Ingests a new artifact and returns it.
	IngestArtifact VexArtifactAndCveIngestArtifact `json:"ingestArtifact"`
	// Ingests new CVE and returns it.
	IngestCVE VexArtifactAndCveIngestCVE `json:"ingestCVE"`
	// Adds a VEX certification for a package.
	IngestVEXStatement VexArtifactAndCveIngestVEXStatementCertifyVEXStatement `json:"ingestVEXStatement"`
}

VexArtifactAndCveResponse is returned by VexArtifactAndCve on success.

func VexArtifactAndCve

func VexArtifactAndCve(
	ctx context.Context,
	client graphql.Client,
	artifact ArtifactInputSpec,
	cve CVEInputSpec,
	vexStatement VexStatementInputSpec,
) (*VexArtifactAndCveResponse, error)

func (*VexArtifactAndCveResponse) GetIngestArtifact

GetIngestArtifact returns VexArtifactAndCveResponse.IngestArtifact, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveResponse) GetIngestCVE

GetIngestCVE returns VexArtifactAndCveResponse.IngestCVE, and is useful for accessing the field via an interface.

func (*VexArtifactAndCveResponse) GetIngestVEXStatement

GetIngestVEXStatement returns VexArtifactAndCveResponse.IngestVEXStatement, and is useful for accessing the field via an interface.

type VexArtifactAndGhsaIngestArtifact

type VexArtifactAndGhsaIngestArtifact struct {
	AllArtifactTree `json:"-"`
}

VexArtifactAndGhsaIngestArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*VexArtifactAndGhsaIngestArtifact) GetAlgorithm

func (v *VexArtifactAndGhsaIngestArtifact) GetAlgorithm() string

GetAlgorithm returns VexArtifactAndGhsaIngestArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestArtifact) GetDigest

GetDigest returns VexArtifactAndGhsaIngestArtifact.Digest, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestArtifact) GetId

GetId returns VexArtifactAndGhsaIngestArtifact.Id, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestArtifact) MarshalJSON

func (v *VexArtifactAndGhsaIngestArtifact) MarshalJSON() ([]byte, error)

func (*VexArtifactAndGhsaIngestArtifact) UnmarshalJSON

func (v *VexArtifactAndGhsaIngestArtifact) UnmarshalJSON(b []byte) error

type VexArtifactAndGhsaIngestGHSA

type VexArtifactAndGhsaIngestGHSA struct {
	AllGHSATree `json:"-"`
}

VexArtifactAndGhsaIngestGHSA includes the requested fields of the GraphQL type GHSA. The GraphQL type's documentation follows.

GHSA represents GitHub security advisories.

The advisory id field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*VexArtifactAndGhsaIngestGHSA) GetGhsaId

func (v *VexArtifactAndGhsaIngestGHSA) GetGhsaId() string

GetGhsaId returns VexArtifactAndGhsaIngestGHSA.GhsaId, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestGHSA) GetId

GetId returns VexArtifactAndGhsaIngestGHSA.Id, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestGHSA) MarshalJSON

func (v *VexArtifactAndGhsaIngestGHSA) MarshalJSON() ([]byte, error)

func (*VexArtifactAndGhsaIngestGHSA) UnmarshalJSON

func (v *VexArtifactAndGhsaIngestGHSA) UnmarshalJSON(b []byte) error

type VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement

type VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement struct {
	// contains filtered or unexported fields
}

VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement includes the requested fields of the GraphQL type CertifyVEXStatement. The GraphQL type's documentation follows.

CertifyVEXStatement is an attestation to attach VEX statements to a package or artifact to clarify the impact of a specific vulnerability (CVE, GHSA or OSV).

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetCollector

GetCollector returns VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement.Collector, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetId

GetId returns VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement.Id, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetKnownSince

GetKnownSince returns VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement.KnownSince, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetOrigin

GetOrigin returns VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement.Origin, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetStatement

GetStatement returns VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement.Statement, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetStatus

GetStatus returns VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement.Status, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetStatusNotes

GetStatusNotes returns VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement.StatusNotes, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetSubject

func (v *VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetSubject() allCertifyVEXStatementSubjectPackageOrArtifact

GetSubject returns VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement.Subject, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetVexJustification

GetVexJustification returns VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement.VexJustification, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetVulnerability

func (v *VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) GetVulnerability() allCertifyVEXStatementVulnerability

GetVulnerability returns VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement.Vulnerability, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) MarshalJSON

func (*VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement) UnmarshalJSON

type VexArtifactAndGhsaResponse

type VexArtifactAndGhsaResponse struct {
	// Ingests a new artifact and returns it.
	IngestArtifact VexArtifactAndGhsaIngestArtifact `json:"ingestArtifact"`
	// Ingests a new GitHub Security Advisory and returns it.
	IngestGHSA VexArtifactAndGhsaIngestGHSA `json:"ingestGHSA"`
	// Adds a VEX certification for a package.
	IngestVEXStatement VexArtifactAndGhsaIngestVEXStatementCertifyVEXStatement `json:"ingestVEXStatement"`
}

VexArtifactAndGhsaResponse is returned by VexArtifactAndGhsa on success.

func VexArtifactAndGhsa

func VexArtifactAndGhsa(
	ctx context.Context,
	client graphql.Client,
	artifact ArtifactInputSpec,
	ghsa GHSAInputSpec,
	vexStatement VexStatementInputSpec,
) (*VexArtifactAndGhsaResponse, error)

func (*VexArtifactAndGhsaResponse) GetIngestArtifact

GetIngestArtifact returns VexArtifactAndGhsaResponse.IngestArtifact, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaResponse) GetIngestGHSA

GetIngestGHSA returns VexArtifactAndGhsaResponse.IngestGHSA, and is useful for accessing the field via an interface.

func (*VexArtifactAndGhsaResponse) GetIngestVEXStatement

GetIngestVEXStatement returns VexArtifactAndGhsaResponse.IngestVEXStatement, and is useful for accessing the field via an interface.

type VexArtifactAndOsvIngestArtifact

type VexArtifactAndOsvIngestArtifact struct {
	AllArtifactTree `json:"-"`
}

VexArtifactAndOsvIngestArtifact includes the requested fields of the GraphQL type Artifact. The GraphQL type's documentation follows.

Artifact represents an artifact identified by a checksum hash.

The checksum is split into the digest value and the algorithm used to generate it. Both fields are mandatory and canonicalized to be lowercase.

If having a checksum Go object, algorithm can be strings.ToLower(string(checksum.Algorithm)) and digest can be checksum.Value.

func (*VexArtifactAndOsvIngestArtifact) GetAlgorithm

func (v *VexArtifactAndOsvIngestArtifact) GetAlgorithm() string

GetAlgorithm returns VexArtifactAndOsvIngestArtifact.Algorithm, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestArtifact) GetDigest

func (v *VexArtifactAndOsvIngestArtifact) GetDigest() string

GetDigest returns VexArtifactAndOsvIngestArtifact.Digest, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestArtifact) GetId

GetId returns VexArtifactAndOsvIngestArtifact.Id, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestArtifact) MarshalJSON

func (v *VexArtifactAndOsvIngestArtifact) MarshalJSON() ([]byte, error)

func (*VexArtifactAndOsvIngestArtifact) UnmarshalJSON

func (v *VexArtifactAndOsvIngestArtifact) UnmarshalJSON(b []byte) error

type VexArtifactAndOsvIngestOSV

type VexArtifactAndOsvIngestOSV struct {
	AllOSVTree `json:"-"`
}

VexArtifactAndOsvIngestOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*VexArtifactAndOsvIngestOSV) GetId

GetId returns VexArtifactAndOsvIngestOSV.Id, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestOSV) GetOsvId

func (v *VexArtifactAndOsvIngestOSV) GetOsvId() string

GetOsvId returns VexArtifactAndOsvIngestOSV.OsvId, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestOSV) MarshalJSON

func (v *VexArtifactAndOsvIngestOSV) MarshalJSON() ([]byte, error)

func (*VexArtifactAndOsvIngestOSV) UnmarshalJSON

func (v *VexArtifactAndOsvIngestOSV) UnmarshalJSON(b []byte) error

type VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement

type VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement struct {
	// contains filtered or unexported fields
}

VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement includes the requested fields of the GraphQL type CertifyVEXStatement. The GraphQL type's documentation follows.

CertifyVEXStatement is an attestation to attach VEX statements to a package or artifact to clarify the impact of a specific vulnerability (CVE, GHSA or OSV).

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetCollector

GetCollector returns VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement.Collector, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetId

GetId returns VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement.Id, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetKnownSince

GetKnownSince returns VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement.KnownSince, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetOrigin

GetOrigin returns VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement.Origin, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetStatement

GetStatement returns VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement.Statement, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetStatus

GetStatus returns VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement.Status, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetStatusNotes

GetStatusNotes returns VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement.StatusNotes, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetSubject

func (v *VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetSubject() allCertifyVEXStatementSubjectPackageOrArtifact

GetSubject returns VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement.Subject, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetVexJustification

GetVexJustification returns VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement.VexJustification, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetVulnerability

func (v *VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) GetVulnerability() allCertifyVEXStatementVulnerability

GetVulnerability returns VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement.Vulnerability, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) MarshalJSON

func (*VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement) UnmarshalJSON

type VexArtifactAndOsvResponse

type VexArtifactAndOsvResponse struct {
	// Ingests a new artifact and returns it.
	IngestArtifact VexArtifactAndOsvIngestArtifact `json:"ingestArtifact"`
	// Ingests a new OSV vulnerability and returns it.
	IngestOSV VexArtifactAndOsvIngestOSV `json:"ingestOSV"`
	// Adds a VEX certification for a package.
	IngestVEXStatement VexArtifactAndOsvIngestVEXStatementCertifyVEXStatement `json:"ingestVEXStatement"`
}

VexArtifactAndOsvResponse is returned by VexArtifactAndOsv on success.

func VexArtifactAndOsv

func VexArtifactAndOsv(
	ctx context.Context,
	client graphql.Client,
	artifact ArtifactInputSpec,
	osv OSVInputSpec,
	vexStatement VexStatementInputSpec,
) (*VexArtifactAndOsvResponse, error)

func (*VexArtifactAndOsvResponse) GetIngestArtifact

GetIngestArtifact returns VexArtifactAndOsvResponse.IngestArtifact, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvResponse) GetIngestOSV

GetIngestOSV returns VexArtifactAndOsvResponse.IngestOSV, and is useful for accessing the field via an interface.

func (*VexArtifactAndOsvResponse) GetIngestVEXStatement

GetIngestVEXStatement returns VexArtifactAndOsvResponse.IngestVEXStatement, and is useful for accessing the field via an interface.

type VexJustification

type VexJustification string

Records the justification included in the VEX statement.

const (
	VexJustificationComponentNotPresent                         VexJustification = "COMPONENT_NOT_PRESENT"
	VexJustificationVulnerableCodeNotPresent                    VexJustification = "VULNERABLE_CODE_NOT_PRESENT"
	VexJustificationVulnerableCodeNotInExecutePath              VexJustification = "VULNERABLE_CODE_NOT_IN_EXECUTE_PATH"
	VexJustificationVulnerableCodeCannotBeControlledByAdversary VexJustification = "VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY"
	VexJustificationInlineMitigationsAlreadyExist               VexJustification = "INLINE_MITIGATIONS_ALREADY_EXIST"
	VexJustificationNotProvided                                 VexJustification = "NOT_PROVIDED"
)

type VexPackageAndCveIngestCVE

type VexPackageAndCveIngestCVE struct {
	AllCveTree `json:"-"`
}

VexPackageAndCveIngestCVE includes the requested fields of the GraphQL type CVE. The GraphQL type's documentation follows.

CVE represents a vulnerability in the Common Vulnerabilities and Exposures schema.

The vulnerability identifier contains a year field, so we are extracting that to allow matching for vulnerabilities found in a given year.

The vulnerability identifier field is mandatory and canonicalized to be lowercase.

This node can be referred to by other parts of GUAC.

func (*VexPackageAndCveIngestCVE) GetCveId

func (v *VexPackageAndCveIngestCVE) GetCveId() string

GetCveId returns VexPackageAndCveIngestCVE.CveId, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestCVE) GetId

func (v *VexPackageAndCveIngestCVE) GetId() string

GetId returns VexPackageAndCveIngestCVE.Id, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestCVE) GetYear

func (v *VexPackageAndCveIngestCVE) GetYear() int

GetYear returns VexPackageAndCveIngestCVE.Year, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestCVE) MarshalJSON

func (v *VexPackageAndCveIngestCVE) MarshalJSON() ([]byte, error)

func (*VexPackageAndCveIngestCVE) UnmarshalJSON

func (v *VexPackageAndCveIngestCVE) UnmarshalJSON(b []byte) error

type VexPackageAndCveIngestPackage

type VexPackageAndCveIngestPackage struct {
	AllPkgTree `json:"-"`
}

VexPackageAndCveIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*VexPackageAndCveIngestPackage) GetId

GetId returns VexPackageAndCveIngestPackage.Id, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestPackage) GetNamespaces

GetNamespaces returns VexPackageAndCveIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestPackage) GetType

GetType returns VexPackageAndCveIngestPackage.Type, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestPackage) MarshalJSON

func (v *VexPackageAndCveIngestPackage) MarshalJSON() ([]byte, error)

func (*VexPackageAndCveIngestPackage) UnmarshalJSON

func (v *VexPackageAndCveIngestPackage) UnmarshalJSON(b []byte) error

type VexPackageAndCveIngestVEXStatementCertifyVEXStatement

type VexPackageAndCveIngestVEXStatementCertifyVEXStatement struct {
	// contains filtered or unexported fields
}

VexPackageAndCveIngestVEXStatementCertifyVEXStatement includes the requested fields of the GraphQL type CertifyVEXStatement. The GraphQL type's documentation follows.

CertifyVEXStatement is an attestation to attach VEX statements to a package or artifact to clarify the impact of a specific vulnerability (CVE, GHSA or OSV).

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetCollector

GetCollector returns VexPackageAndCveIngestVEXStatementCertifyVEXStatement.Collector, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetId

GetId returns VexPackageAndCveIngestVEXStatementCertifyVEXStatement.Id, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetKnownSince

GetKnownSince returns VexPackageAndCveIngestVEXStatementCertifyVEXStatement.KnownSince, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetOrigin

GetOrigin returns VexPackageAndCveIngestVEXStatementCertifyVEXStatement.Origin, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetStatement

GetStatement returns VexPackageAndCveIngestVEXStatementCertifyVEXStatement.Statement, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetStatus

GetStatus returns VexPackageAndCveIngestVEXStatementCertifyVEXStatement.Status, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetStatusNotes

GetStatusNotes returns VexPackageAndCveIngestVEXStatementCertifyVEXStatement.StatusNotes, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetSubject

func (v *VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetSubject() allCertifyVEXStatementSubjectPackageOrArtifact

GetSubject returns VexPackageAndCveIngestVEXStatementCertifyVEXStatement.Subject, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetVexJustification

GetVexJustification returns VexPackageAndCveIngestVEXStatementCertifyVEXStatement.VexJustification, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetVulnerability

func (v *VexPackageAndCveIngestVEXStatementCertifyVEXStatement) GetVulnerability() allCertifyVEXStatementVulnerability

GetVulnerability returns VexPackageAndCveIngestVEXStatementCertifyVEXStatement.Vulnerability, and is useful for accessing the field via an interface.

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) MarshalJSON

func (*VexPackageAndCveIngestVEXStatementCertifyVEXStatement) UnmarshalJSON

type VexPackageAndCveResponse

type VexPackageAndCveResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage VexPackageAndCveIngestPackage `json:"ingestPackage"`
	// Ingests new CVE and returns it.
	IngestCVE VexPackageAndCveIngestCVE `json:"ingestCVE"`
	// Adds a VEX certification for a package.
	IngestVEXStatement VexPackageAndCveIngestVEXStatementCertifyVEXStatement `json:"ingestVEXStatement"`
}

VexPackageAndCveResponse is returned by VexPackageAndCve on success.

func VexPackageAndCve

func VexPackageAndCve(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	cve CVEInputSpec,
	vexStatement VexStatementInputSpec,
) (*VexPackageAndCveResponse, error)

func (*VexPackageAndCveResponse) GetIngestCVE

GetIngestCVE returns VexPackageAndCveResponse.IngestCVE, and is useful for accessing the field via an interface.

func (*VexPackageAndCveResponse) GetIngestPackage

GetIngestPackage returns VexPackageAndCveResponse.IngestPackage, and is useful for accessing the field via an interface.

func (*VexPackageAndCveResponse) GetIngestVEXStatement

GetIngestVEXStatement returns VexPackageAndCveResponse.IngestVEXStatement, and is useful for accessing the field via an interface.

type VexPackageAndOsvIngestOSV

type VexPackageAndOsvIngestOSV struct {
	AllOSVTree `json:"-"`
}

VexPackageAndOsvIngestOSV includes the requested fields of the GraphQL type OSV. The GraphQL type's documentation follows.

OSV represents an Open Source Vulnerability.

The osvId field is mandatory and canonicalized to be lowercase.

This maps to a vulnerability ID specific to the environment (e.g., GHSA ID or CVE ID).

This node can be referred to by other parts of GUAC.

func (*VexPackageAndOsvIngestOSV) GetId

func (v *VexPackageAndOsvIngestOSV) GetId() string

GetId returns VexPackageAndOsvIngestOSV.Id, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestOSV) GetOsvId

func (v *VexPackageAndOsvIngestOSV) GetOsvId() string

GetOsvId returns VexPackageAndOsvIngestOSV.OsvId, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestOSV) MarshalJSON

func (v *VexPackageAndOsvIngestOSV) MarshalJSON() ([]byte, error)

func (*VexPackageAndOsvIngestOSV) UnmarshalJSON

func (v *VexPackageAndOsvIngestOSV) UnmarshalJSON(b []byte) error

type VexPackageAndOsvIngestPackage

type VexPackageAndOsvIngestPackage struct {
	AllPkgTree `json:"-"`
}

VexPackageAndOsvIngestPackage includes the requested fields of the GraphQL type Package. The GraphQL type's documentation follows.

Package represents the root of the package trie/tree.

We map package information to a trie, closely matching the pURL specification (https://github.com/package-url/purl-spec/blob/0dd92f26f8bb11956ffdf5e8acfcee71e8560407/README.rst), but deviating from it where GUAC heuristics allow for better representation of package information. Each path in the trie fully represents a package; we split the trie based on the pURL components.

This node matches a pkg:<type> partial pURL. The type field matches the pURL types but we might also use "guac" for the cases where the pURL representation is not complete or when we have custom rules.

Since this node is at the root of the package trie, it is named Package, not PackageType.

func (*VexPackageAndOsvIngestPackage) GetId

GetId returns VexPackageAndOsvIngestPackage.Id, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestPackage) GetNamespaces

GetNamespaces returns VexPackageAndOsvIngestPackage.Namespaces, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestPackage) GetType

GetType returns VexPackageAndOsvIngestPackage.Type, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestPackage) MarshalJSON

func (v *VexPackageAndOsvIngestPackage) MarshalJSON() ([]byte, error)

func (*VexPackageAndOsvIngestPackage) UnmarshalJSON

func (v *VexPackageAndOsvIngestPackage) UnmarshalJSON(b []byte) error

type VexPackageAndOsvIngestVEXStatementCertifyVEXStatement

type VexPackageAndOsvIngestVEXStatementCertifyVEXStatement struct {
	// contains filtered or unexported fields
}

VexPackageAndOsvIngestVEXStatementCertifyVEXStatement includes the requested fields of the GraphQL type CertifyVEXStatement. The GraphQL type's documentation follows.

CertifyVEXStatement is an attestation to attach VEX statements to a package or artifact to clarify the impact of a specific vulnerability (CVE, GHSA or OSV).

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetCollector

GetCollector returns VexPackageAndOsvIngestVEXStatementCertifyVEXStatement.Collector, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetId

GetId returns VexPackageAndOsvIngestVEXStatementCertifyVEXStatement.Id, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetKnownSince

GetKnownSince returns VexPackageAndOsvIngestVEXStatementCertifyVEXStatement.KnownSince, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetOrigin

GetOrigin returns VexPackageAndOsvIngestVEXStatementCertifyVEXStatement.Origin, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetStatement

GetStatement returns VexPackageAndOsvIngestVEXStatementCertifyVEXStatement.Statement, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetStatus

GetStatus returns VexPackageAndOsvIngestVEXStatementCertifyVEXStatement.Status, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetStatusNotes

GetStatusNotes returns VexPackageAndOsvIngestVEXStatementCertifyVEXStatement.StatusNotes, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetSubject

func (v *VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetSubject() allCertifyVEXStatementSubjectPackageOrArtifact

GetSubject returns VexPackageAndOsvIngestVEXStatementCertifyVEXStatement.Subject, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetVexJustification

GetVexJustification returns VexPackageAndOsvIngestVEXStatementCertifyVEXStatement.VexJustification, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetVulnerability

func (v *VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) GetVulnerability() allCertifyVEXStatementVulnerability

GetVulnerability returns VexPackageAndOsvIngestVEXStatementCertifyVEXStatement.Vulnerability, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) MarshalJSON

func (*VexPackageAndOsvIngestVEXStatementCertifyVEXStatement) UnmarshalJSON

type VexPackageAndOsvResponse

type VexPackageAndOsvResponse struct {
	// Ingests a new package and returns the corresponding package trie path.
	IngestPackage VexPackageAndOsvIngestPackage `json:"ingestPackage"`
	// Ingests a new OSV vulnerability and returns it.
	IngestOSV VexPackageAndOsvIngestOSV `json:"ingestOSV"`
	// Adds a VEX certification for a package.
	IngestVEXStatement VexPackageAndOsvIngestVEXStatementCertifyVEXStatement `json:"ingestVEXStatement"`
}

VexPackageAndOsvResponse is returned by VexPackageAndOsv on success.

func VexPackageAndOsv

func VexPackageAndOsv(
	ctx context.Context,
	client graphql.Client,
	pkg PkgInputSpec,
	osv OSVInputSpec,
	vexStatement VexStatementInputSpec,
) (*VexPackageAndOsvResponse, error)

func (*VexPackageAndOsvResponse) GetIngestOSV

GetIngestOSV returns VexPackageAndOsvResponse.IngestOSV, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvResponse) GetIngestPackage

GetIngestPackage returns VexPackageAndOsvResponse.IngestPackage, and is useful for accessing the field via an interface.

func (*VexPackageAndOsvResponse) GetIngestVEXStatement

GetIngestVEXStatement returns VexPackageAndOsvResponse.IngestVEXStatement, and is useful for accessing the field via an interface.

type VexStatementInputSpec

type VexStatementInputSpec struct {
	Status           VexStatus        `json:"status"`
	VexJustification VexJustification `json:"vexJustification"`
	Statement        string           `json:"statement"`
	StatusNotes      string           `json:"statusNotes"`
	KnownSince       time.Time        `json:"knownSince"`
	Origin           string           `json:"origin"`
	Collector        string           `json:"collector"`
}

VexStatementInputSpec represents the input to ingest VEX statements.

func (*VexStatementInputSpec) GetCollector

func (v *VexStatementInputSpec) GetCollector() string

GetCollector returns VexStatementInputSpec.Collector, and is useful for accessing the field via an interface.

func (*VexStatementInputSpec) GetKnownSince

func (v *VexStatementInputSpec) GetKnownSince() time.Time

GetKnownSince returns VexStatementInputSpec.KnownSince, and is useful for accessing the field via an interface.

func (*VexStatementInputSpec) GetOrigin

func (v *VexStatementInputSpec) GetOrigin() string

GetOrigin returns VexStatementInputSpec.Origin, and is useful for accessing the field via an interface.

func (*VexStatementInputSpec) GetStatement

func (v *VexStatementInputSpec) GetStatement() string

GetStatement returns VexStatementInputSpec.Statement, and is useful for accessing the field via an interface.

func (*VexStatementInputSpec) GetStatus

func (v *VexStatementInputSpec) GetStatus() VexStatus

GetStatus returns VexStatementInputSpec.Status, and is useful for accessing the field via an interface.

func (*VexStatementInputSpec) GetStatusNotes

func (v *VexStatementInputSpec) GetStatusNotes() string

GetStatusNotes returns VexStatementInputSpec.StatusNotes, and is useful for accessing the field via an interface.

func (*VexStatementInputSpec) GetVexJustification

func (v *VexStatementInputSpec) GetVexJustification() VexJustification

GetVexJustification returns VexStatementInputSpec.VexJustification, and is useful for accessing the field via an interface.

type VexStatus

type VexStatus string

Records the status of a VEX statement subject.

const (
	VexStatusNotAffected        VexStatus = "NOT_AFFECTED"
	VexStatusAffected           VexStatus = "AFFECTED"
	VexStatusFixed              VexStatus = "FIXED"
	VexStatusUnderInvestigation VexStatus = "UNDER_INVESTIGATION"
)

type VulnerabilityMetaDataInput

type VulnerabilityMetaDataInput struct {
	TimeScanned    time.Time `json:"timeScanned"`
	DbUri          string    `json:"dbUri"`
	DbVersion      string    `json:"dbVersion"`
	ScannerUri     string    `json:"scannerUri"`
	ScannerVersion string    `json:"scannerVersion"`
	Origin         string    `json:"origin"`
	Collector      string    `json:"collector"`
}

VulnerabilityMetaDataInput represents the input for certifying vulnerability scans in mutations.

func (*VulnerabilityMetaDataInput) GetCollector

func (v *VulnerabilityMetaDataInput) GetCollector() string

GetCollector returns VulnerabilityMetaDataInput.Collector, and is useful for accessing the field via an interface.

func (*VulnerabilityMetaDataInput) GetDbUri

func (v *VulnerabilityMetaDataInput) GetDbUri() string

GetDbUri returns VulnerabilityMetaDataInput.DbUri, and is useful for accessing the field via an interface.

func (*VulnerabilityMetaDataInput) GetDbVersion

func (v *VulnerabilityMetaDataInput) GetDbVersion() string

GetDbVersion returns VulnerabilityMetaDataInput.DbVersion, and is useful for accessing the field via an interface.

func (*VulnerabilityMetaDataInput) GetOrigin

func (v *VulnerabilityMetaDataInput) GetOrigin() string

GetOrigin returns VulnerabilityMetaDataInput.Origin, and is useful for accessing the field via an interface.

func (*VulnerabilityMetaDataInput) GetScannerUri

func (v *VulnerabilityMetaDataInput) GetScannerUri() string

GetScannerUri returns VulnerabilityMetaDataInput.ScannerUri, and is useful for accessing the field via an interface.

func (*VulnerabilityMetaDataInput) GetScannerVersion

func (v *VulnerabilityMetaDataInput) GetScannerVersion() string

GetScannerVersion returns VulnerabilityMetaDataInput.ScannerVersion, and is useful for accessing the field via an interface.

func (*VulnerabilityMetaDataInput) GetTimeScanned

func (v *VulnerabilityMetaDataInput) GetTimeScanned() time.Time

GetTimeScanned returns VulnerabilityMetaDataInput.TimeScanned, and is useful for accessing the field via an interface.

Jump to

Keyboard shortcuts

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