66 lines
2.3 KiB
Go
66 lines
2.3 KiB
Go
// Package spdx contains the struct definition for an SPDX Document
|
|
// and its constituent parts.
|
|
// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
|
package v2_3
|
|
|
|
import "github.com/spdx/tools-golang/spdx/common"
|
|
|
|
// ExternalDocumentRef is a reference to an external SPDX document
|
|
// as defined in section 6.6 for version 2.3 of the spec.
|
|
type ExternalDocumentRef struct {
|
|
// DocumentRefID is the ID string defined in the start of the
|
|
// reference. It should _not_ contain the "DocumentRef-" part
|
|
// of the mandatory ID string.
|
|
DocumentRefID string `json:"externalDocumentId"`
|
|
|
|
// URI is the URI defined for the external document
|
|
URI string `json:"spdxDocument"`
|
|
|
|
// Checksum is the actual hash data
|
|
Checksum common.Checksum `json:"checksum"`
|
|
}
|
|
|
|
// Document is an SPDX Document for version 2.3 of the spec.
|
|
// See https://spdx.github.io/spdx-spec/v2.3/document-creation-information
|
|
type Document struct {
|
|
// 6.1: SPDX Version; should be in the format "SPDX-2.3"
|
|
// Cardinality: mandatory, one
|
|
SPDXVersion string `json:"spdxVersion"`
|
|
|
|
// 6.2: Data License; should be "CC0-1.0"
|
|
// Cardinality: mandatory, one
|
|
DataLicense string `json:"dataLicense"`
|
|
|
|
// 6.3: SPDX Identifier; should be "DOCUMENT" to represent
|
|
// mandatory identifier of SPDXRef-DOCUMENT
|
|
// Cardinality: mandatory, one
|
|
SPDXIdentifier common.ElementID `json:"SPDXID"`
|
|
|
|
// 6.4: Document Name
|
|
// Cardinality: mandatory, one
|
|
DocumentName string `json:"name"`
|
|
|
|
// 6.5: Document Namespace
|
|
// Cardinality: mandatory, one
|
|
DocumentNamespace string `json:"documentNamespace"`
|
|
|
|
// 6.6: External Document References
|
|
// Cardinality: optional, one or many
|
|
ExternalDocumentReferences []ExternalDocumentRef `json:"externalDocumentRefs,omitempty"`
|
|
|
|
// 6.11: Document Comment
|
|
// Cardinality: optional, one
|
|
DocumentComment string `json:"comment,omitempty"`
|
|
|
|
CreationInfo *CreationInfo `json:"creationInfo"`
|
|
Packages []*Package `json:"packages,omitempty"`
|
|
Files []*File `json:"files,omitempty"`
|
|
OtherLicenses []*OtherLicense `json:"hasExtractedLicensingInfos,omitempty"`
|
|
Relationships []*Relationship `json:"relationships,omitempty"`
|
|
Annotations []*Annotation `json:"annotations,omitempty"`
|
|
Snippets []Snippet `json:"snippets,omitempty"`
|
|
|
|
// DEPRECATED in version 2.0 of spec
|
|
Reviews []*Review `json:"-" yaml:"-"`
|
|
}
|