1*ba677afaSXin Li// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2*ba677afaSXin Li 3*ba677afaSXin Lipackage v2_1 4*ba677afaSXin Li 5*ba677afaSXin Liimport "github.com/spdx/tools-golang/spdx/common" 6*ba677afaSXin Li 7*ba677afaSXin Li// File is a File section of an SPDX Document for version 2.1 of the spec. 8*ba677afaSXin Litype File struct { 9*ba677afaSXin Li // 4.1: File Name 10*ba677afaSXin Li // Cardinality: mandatory, one 11*ba677afaSXin Li FileName string `json:"fileName"` 12*ba677afaSXin Li 13*ba677afaSXin Li // 4.2: File SPDX Identifier: "SPDXRef-[idstring]" 14*ba677afaSXin Li // Cardinality: mandatory, one 15*ba677afaSXin Li FileSPDXIdentifier common.ElementID `json:"SPDXID"` 16*ba677afaSXin Li 17*ba677afaSXin Li // 4.3: File Types 18*ba677afaSXin Li // Cardinality: optional, multiple 19*ba677afaSXin Li FileTypes []string `json:"fileTypes,omitempty"` 20*ba677afaSXin Li 21*ba677afaSXin Li // 4.4: File Checksum: may have keys for SHA1, SHA256 and/or MD5 22*ba677afaSXin Li // Cardinality: mandatory, one SHA1, others may be optionally provided 23*ba677afaSXin Li Checksums []common.Checksum `json:"checksums"` 24*ba677afaSXin Li 25*ba677afaSXin Li // 4.5: Concluded License: SPDX License Expression, "NONE" or "NOASSERTION" 26*ba677afaSXin Li // Cardinality: mandatory, one 27*ba677afaSXin Li LicenseConcluded string `json:"licenseConcluded"` 28*ba677afaSXin Li 29*ba677afaSXin Li // 4.6: License Information in File: SPDX License Expression, "NONE" or "NOASSERTION" 30*ba677afaSXin Li // Cardinality: mandatory, one or many 31*ba677afaSXin Li LicenseInfoInFiles []string `json:"licenseInfoInFiles"` 32*ba677afaSXin Li 33*ba677afaSXin Li // 4.7: Comments on License 34*ba677afaSXin Li // Cardinality: optional, one 35*ba677afaSXin Li LicenseComments string `json:"licenseComments,omitempty"` 36*ba677afaSXin Li 37*ba677afaSXin Li // 4.8: Copyright Text: copyright notice(s) text, "NONE" or "NOASSERTION" 38*ba677afaSXin Li // Cardinality: mandatory, one 39*ba677afaSXin Li FileCopyrightText string `json:"copyrightText"` 40*ba677afaSXin Li 41*ba677afaSXin Li // DEPRECATED in version 2.1 of spec 42*ba677afaSXin Li // 4.9-4.11: Artifact of Project variables (defined below) 43*ba677afaSXin Li // Cardinality: optional, one or many 44*ba677afaSXin Li ArtifactOfProjects []*ArtifactOfProject `json:"-"` 45*ba677afaSXin Li 46*ba677afaSXin Li // 4.12: File Comment 47*ba677afaSXin Li // Cardinality: optional, one 48*ba677afaSXin Li FileComment string `json:"comment,omitempty"` 49*ba677afaSXin Li 50*ba677afaSXin Li // 4.13: File Notice 51*ba677afaSXin Li // Cardinality: optional, one 52*ba677afaSXin Li FileNotice string `json:"noticeText,omitempty"` 53*ba677afaSXin Li 54*ba677afaSXin Li // 4.14: File Contributor 55*ba677afaSXin Li // Cardinality: optional, one or many 56*ba677afaSXin Li FileContributors []string `json:"fileContributors,omitempty"` 57*ba677afaSXin Li 58*ba677afaSXin Li // DEPRECATED in version 2.0 of spec 59*ba677afaSXin Li // 4.15: File Dependencies 60*ba677afaSXin Li // Cardinality: optional, one or many 61*ba677afaSXin Li FileDependencies []string `json:"-"` 62*ba677afaSXin Li 63*ba677afaSXin Li // Snippets contained in this File 64*ba677afaSXin Li // Note that Snippets could be defined in a different Document! However, 65*ba677afaSXin Li // the only ones that _THIS_ document can contain are the ones that are 66*ba677afaSXin Li // defined here -- so this should just be an ElementID. 67*ba677afaSXin Li Snippets map[common.ElementID]*Snippet `json:"-"` 68*ba677afaSXin Li 69*ba677afaSXin Li Annotations []Annotation `json:"annotations,omitempty"` 70*ba677afaSXin Li} 71*ba677afaSXin Li 72*ba677afaSXin Li// ArtifactOfProject is a DEPRECATED collection of data regarding 73*ba677afaSXin Li// a Package, as defined in sections 4.9-4.11 in version 2.1 of the spec. 74*ba677afaSXin Litype ArtifactOfProject struct { 75*ba677afaSXin Li 76*ba677afaSXin Li // DEPRECATED in version 2.1 of spec 77*ba677afaSXin Li // 4.9: Artifact of Project Name 78*ba677afaSXin Li // Cardinality: conditional, required if present, one per AOP 79*ba677afaSXin Li Name string 80*ba677afaSXin Li 81*ba677afaSXin Li // DEPRECATED in version 2.1 of spec 82*ba677afaSXin Li // 4.10: Artifact of Project Homepage: URL or "UNKNOWN" 83*ba677afaSXin Li // Cardinality: optional, one per AOP 84*ba677afaSXin Li HomePage string 85*ba677afaSXin Li 86*ba677afaSXin Li // DEPRECATED in version 2.1 of spec 87*ba677afaSXin Li // 4.11: Artifact of Project Uniform Resource Identifier 88*ba677afaSXin Li // Cardinality: optional, one per AOP 89*ba677afaSXin Li URI string 90*ba677afaSXin Li} 91