| // 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 core |
| |
| import "github.com/spdx/tools-golang/spdx/common" |
| |
| // ExternalDocumentRef is a reference to an external SPDX document |
| // as defined in section 2.6 for version 2.2 of the spec. |
| type ExternalDocumentRef struct { |
| // CoreMetadata includes additional information to map back and forth |
| // to other SPDX types |
| CoreMetadata Metadata |
| |
| // 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.2 of the spec. |
| // See https://spdx.github.io/spdx-spec/v2-draft/ (DRAFT) |
| type Document struct { |
| // CoreMetadata includes additional information to map back and forth |
| // to other SPDX types |
| CoreMetadata Metadata |
| |
| // 2.1: SPDX Version; should be in the format "SPDX-2.2" |
| // Cardinality: mandatory, one |
| SPDXVersion string `json:"spdxVersion"` |
| |
| // 2.2: Data License; should be "CC0-1.0" |
| // Cardinality: mandatory, one |
| DataLicense string `json:"dataLicense"` |
| |
| // 2.3: SPDX Identifier; should be "DOCUMENT" to represent |
| // mandatory identifier of SPDXRef-DOCUMENT |
| // Cardinality: mandatory, one |
| SPDXIdentifier common.ElementID `json:"SPDXID"` |
| |
| // 2.4: Document Name |
| // Cardinality: mandatory, one |
| DocumentName string `json:"name"` |
| |
| // 2.5: Document Namespace |
| // Cardinality: mandatory, one |
| DocumentNamespace string `json:"documentNamespace"` |
| |
| // 2.6: External Document References |
| // Cardinality: optional, one or many |
| ExternalDocumentReferences []ExternalDocumentRef `json:"externalDocumentRefs,omitempty"` |
| |
| // 2.11: Document Comment |
| // Cardinality: optional, one |
| DocumentComment string `json:"comment,omitempty"` |
| |
| CreationInfo *CreationInfo `json:"creationInfo"` |
| Packages []*Package `json:"packages"` |
| Files []*File `json:"files"` |
| OtherLicenses []*OtherLicense `json:"hasExtractedLicensingInfos"` |
| Relationships []*Relationship `json:"relationships"` |
| Annotations []*Annotation `json:"annotations"` |
| Snippets []Snippet `json:"snippets"` |
| |
| // DEPRECATED in version 2.0 of spec |
| Reviews []*Review |
| } |