Documentation ¶
Index ¶
- Constants
- func Bool(value bool) *bool
- type AttachedText
- type BOM
- type BOMEncoder
- type BOMFileFormat
- type BOMReference
- type Commit
- type Component
- type ComponentType
- type Composition
- type CompositionAggregate
- type Copyright
- type DataClassification
- type DataFlow
- type Dependency
- type Diff
- type Evidence
- type ExternalReference
- type ExternalReferenceType
- type Hash
- type HashAlgorithm
- type IdentifiableAction
- type Issue
- type IssueType
- type License
- type LicenseChoice
- type Licenses
- type Metadata
- type OrganizationalContact
- type OrganizationalEntity
- type Patch
- type PatchType
- type Pedigree
- type Property
- type SWID
- type Scope
- type Service
- type Source
- type Tool
Constants ¶
View Source
const ( BOMFormat = "CycloneDX" SpecVersion = "1.3" XMLNamespace = "http://cyclonedx.org/schema/bom/1.3" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AttachedText ¶
type BOM ¶
type BOM struct { // XML specific fields XMLName xml.Name `json:"-" xml:"bom"` XMLNS string `json:"-" xml:"xmlns,attr"` // JSON specific fields BOMFormat string `json:"bomFormat" xml:"-"` SpecVersion string `json:"specVersion" xml:"-"` SerialNumber string `json:"serialNumber,omitempty" xml:"serialNumber,attr,omitempty"` Version int `json:"version" xml:"version,attr"` Metadata *Metadata `json:"metadata,omitempty" xml:"metadata,omitempty"` Components *[]Component `json:"components,omitempty" xml:"components>component,omitempty"` Services *[]Service `json:"services,omitempty" xml:"services>service,omitempty"` ExternalReferences *[]ExternalReference `json:"externalReferences,omitempty" xml:"externalReferences>reference,omitempty"` Dependencies *[]Dependency `json:"dependencies,omitempty" xml:"dependencies>dependency,omitempty"` Compositions *[]Composition `json:"compositions,omitempty" xml:"compositions>composition,omitempty"` Properties *[]Property `json:"properties,omitempty" xml:"properties>property,omitempty"` }
type BOMEncoder ¶
func NewBOMEncoder ¶
func NewBOMEncoder(writer io.Writer, format BOMFileFormat) BOMEncoder
type BOMFileFormat ¶
type BOMFileFormat int
const ( BOMFileFormatXML BOMFileFormat = iota BOMFileFormatJSON )
type BOMReference ¶
type BOMReference string
func (BOMReference) MarshalXML ¶
func (b BOMReference) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*BOMReference) UnmarshalXML ¶
func (b *BOMReference) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Commit ¶
type Commit struct { UID string `json:"uid,omitempty" xml:"uid,omitempty"` URL string `json:"url,omitempty" xml:"url,omitempty"` Author *IdentifiableAction `json:"author,omitempty" xml:"author,omitempty"` Committer *IdentifiableAction `json:"committer,omitempty" xml:"committer,omitempty"` Message string `json:"message,omitempty" xml:"message,omitempty"` }
type Component ¶
type Component struct { BOMRef string `json:"bom-ref,omitempty" xml:"bom-ref,attr,omitempty"` MIMEType string `json:"mime-type,omitempty" xml:"mime-type,attr,omitempty"` Type ComponentType `json:"type" xml:"type,attr"` Supplier *OrganizationalEntity `json:"supplier,omitempty" xml:"supplier,omitempty"` Author string `json:"author,omitempty" xml:"author,omitempty"` Publisher string `json:"publisher,omitempty" xml:"publisher,omitempty"` Group string `json:"group,omitempty" xml:"group,omitempty"` Name string `json:"name" xml:"name"` Version string `json:"version" xml:"version"` Description string `json:"description,omitempty" xml:"description,omitempty"` Scope Scope `json:"scope,omitempty" xml:"scope,omitempty"` Hashes *[]Hash `json:"hashes,omitempty" xml:"hashes>hash,omitempty"` Licenses *Licenses `json:"licenses,omitempty" xml:"licenses,omitempty"` Copyright string `json:"copyright,omitempty" xml:"copyright,omitempty"` CPE string `json:"cpe,omitempty" xml:"cpe,omitempty"` PackageURL string `json:"purl,omitempty" xml:"purl,omitempty"` SWID *SWID `json:"swid,omitempty" xml:"swid,omitempty"` Modified *bool `json:"modified,omitempty" xml:"modified,omitempty"` Pedigree *Pedigree `json:"pedigree,omitempty" xml:"pedigree,omitempty"` ExternalReferences *[]ExternalReference `json:"externalReferences,omitempty" xml:"externalReferences>reference,omitempty"` Properties *[]Property `json:"properties,omitempty" xml:"properties>property,omitempty"` Components *[]Component `json:"components,omitempty" xml:"components>component,omitempty"` Evidence *Evidence `json:"evidence,omitempty" xml:"evidence,omitempty"` }
type ComponentType ¶
type ComponentType string
const ( ComponentTypeApplication ComponentType = "application" ComponentTypeContainer ComponentType = "container" ComponentTypeDevice ComponentType = "device" ComponentTypeFile ComponentType = "file" ComponentTypeFirmware ComponentType = "firmware" ComponentTypeFramework ComponentType = "framework" ComponentTypeLibrary ComponentType = "library" ComponentTypeOS ComponentType = "operating-system" )
type Composition ¶
type Composition struct { Aggregate CompositionAggregate `json:"aggregate" xml:"aggregate"` Assemblies *[]BOMReference `json:"assemblies,omitempty" xml:"assemblies>assembly,omitempty"` Dependencies *[]BOMReference `json:"dependencies,omitempty" xml:"dependencies>dependency,omitempty"` }
type CompositionAggregate ¶
type CompositionAggregate string
const ( CompositionAggregateComplete CompositionAggregate = "complete" CompositionAggregateIncomplete CompositionAggregate = "incomplete" CompositionAggregateIncompleteFirstPartyOnly CompositionAggregate = "incomplete_first_party_only" CompositionAggregateIncompleteThirdPartyOnly CompositionAggregate = "incomplete_third_party_only" CompositionAggregateUnknown CompositionAggregate = "unknown" CompositionAggregateNotSpecified CompositionAggregate = "not_specified" )
type Copyright ¶
type Copyright struct {
Text string `json:"text" xml:"-"`
}
func (Copyright) MarshalXML ¶
func (*Copyright) UnmarshalXML ¶
type DataClassification ¶
type Dependency ¶
type Dependency struct { Ref string `xml:"ref,attr"` Dependencies *[]Dependency `xml:"dependency,omitempty"` }
func (Dependency) MarshalJSON ¶
func (d Dependency) MarshalJSON() ([]byte, error)
func (*Dependency) UnmarshalJSON ¶
func (d *Dependency) UnmarshalJSON(bytes []byte) error
type Diff ¶
type Diff struct { Text *AttachedText `json:"text,omitempty" xml:"text,omitempty"` URL string `json:"url,omitempty" xml:"url,omitempty"` }
type ExternalReference ¶
type ExternalReference struct { URL string `json:"url" xml:"url"` Comment string `json:"comment,omitempty" xml:"comment,omitempty"` Hashes *[]Hash `json:"hashes,omitempty" xml:"hashes>hash,omitempty"` Type ExternalReferenceType `json:"type" xml:"type,attr"` }
type ExternalReferenceType ¶
type ExternalReferenceType string
const ( ERTypeAdvisories ExternalReferenceType = "advisories" ERTypeBOM ExternalReferenceType = "bom" ERTypeBuildMeta ExternalReferenceType = "build-meta" ERTypeBuildSystem ExternalReferenceType = "build-system" ERTypeChat ExternalReferenceType = "chat" ERTypeDistribution ExternalReferenceType = "distribution" ERTypeDocumentation ExternalReferenceType = "documentation" ERTypeLicense ExternalReferenceType = "license" ERTypeMailingList ExternalReferenceType = "mailing-list" ERTypeOther ExternalReferenceType = "other" ERTypeIssueTracker ExternalReferenceType = "issue-tracker" ERTypeSocial ExternalReferenceType = "social" ERTypeSupport ExternalReferenceType = "support" ERTypeVCS ExternalReferenceType = "vcs" ERTypeWebsite ExternalReferenceType = "website" )
type Hash ¶
type Hash struct { Algorithm HashAlgorithm `json:"alg" xml:"alg,attr"` Value string `json:"content" xml:",innerxml"` }
type HashAlgorithm ¶
type HashAlgorithm string
const ( HashAlgoMD5 HashAlgorithm = "MD5" HashAlgoSHA1 HashAlgorithm = "SHA-1" HashAlgoSHA256 HashAlgorithm = "SHA-256" HashAlgoSHA384 HashAlgorithm = "SHA-384" HashAlgoSHA512 HashAlgorithm = "SHA-512" HashAlgoSHA3_256 HashAlgorithm = "SHA3-256" HashAlgoSHA3_512 HashAlgorithm = "SHA3-512" HashAlgoBlake2b_256 HashAlgorithm = "BLAKE2b-256" HashAlgoBlake2b_384 HashAlgorithm = "BLAKE2b-384" HashAlgoBlake2b_512 HashAlgorithm = "BLAKE2b-512" HashAlgoBlake3 HashAlgorithm = "BLAKE3" )
type IdentifiableAction ¶
type Issue ¶
type Issue struct { ID string `json:"id" xml:"id"` Name string `json:"name" xml:"name"` Description string `json:"description" xml:"description"` Source *Source `json:"source,omitempty" xml:"source,omitempty"` References *[]string `json:"references,omitempty" xml:"references>url,omitempty"` Type IssueType `json:"type" xml:"type,attr"` }
type License ¶
type License struct { ID string `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name,omitempty" xml:"name,omitempty"` Text *AttachedText `json:"text,omitempty" xml:"text,omitempty"` URL string `json:"url,omitempty" xml:"url,omitempty"` }
type LicenseChoice ¶
type Licenses ¶
type Licenses []LicenseChoice
func (Licenses) MarshalXML ¶
func (*Licenses) UnmarshalXML ¶
type Metadata ¶
type Metadata struct { Timestamp string `json:"timestamp,omitempty" xml:"timestamp,omitempty"` Tools *[]Tool `json:"tools,omitempty" xml:"tools>tool,omitempty"` Authors *[]OrganizationalContact `json:"authors,omitempty" xml:"authors>author,omitempty"` Component *Component `json:"component,omitempty" xml:"component,omitempty"` Manufacture *OrganizationalEntity `json:"manufacture,omitempty" xml:"manufacture,omitempty"` Supplier *OrganizationalEntity `json:"supplier,omitempty" xml:"supplier,omitempty"` Licenses *Licenses `json:"licenses,omitempty" xml:"licenses,omitempty"` Properties *[]Property `json:"properties,omitempty" xml:"properties>property,omitempty"` }
type OrganizationalContact ¶
type OrganizationalEntity ¶
type OrganizationalEntity struct { Name string `json:"name" xml:"name"` URL *[]string `json:"url,omitempty" xml:"url,omitempty"` Contact *[]OrganizationalContact `json:"contact,omitempty" xml:"contact,omitempty"` }
type Pedigree ¶
type Pedigree struct { Ancestors *[]Component `json:"ancestors,omitempty" xml:"ancestors>component,omitempty"` Descendants *[]Component `json:"descendants,omitempty" xml:"descendants>component,omitempty"` Variants *[]Component `json:"variants,omitempty" xml:"variants>component,omitempty"` Commits *[]Commit `json:"commits,omitempty" xml:"commits>commit,omitempty"` Patches *[]Patch `json:"patches,omitempty" xml:"patches>patch,omitempty"` Notes string `json:"notes,omitempty" xml:"notes,omitempty"` }
type SWID ¶
type SWID struct { Text *AttachedText `json:"text,omitempty" xml:"text,omitempty"` URL string `json:"url,omitempty" xml:"url,attr,omitempty"` TagID string `json:"tagId" xml:"tagId,attr"` Name string `json:"name" xml:"name,attr"` Version string `json:"version,omitempty" xml:"version,attr,omitempty"` TagVersion *int `json:"tagVersion,omitempty" xml:"tagVersion,attr,omitempty"` Patch *bool `json:"patch,omitempty" xml:"patch,attr,omitempty"` }
type Service ¶
type Service struct { BOMRef string `json:"bom-ref,omitempty" xml:"bom-ref,attr,omitempty"` Provider *OrganizationalEntity `json:"provider,omitempty" xml:"provider,omitempty"` Group string `json:"group,omitempty" xml:"group,omitempty"` Name string `json:"name" xml:"name"` Version string `json:"version,omitempty" xml:"version,omitempty"` Description string `json:"description,omitempty" xml:"description,omitempty"` Endpoints *[]string `json:"endpoints,omitempty" xml:"endpoints>endpoint,omitempty"` Authenticated *bool `json:"authenticated,omitempty" xml:"authenticated,omitempty"` CrossesTrustBoundary *bool `json:"x-trust-boundary,omitempty" xml:"x-trust-boundary,omitempty"` Data *[]DataClassification `json:"data,omitempty" xml:"data>classification,omitempty"` Licenses *Licenses `json:"licenses,omitempty" xml:"licenses,omitempty"` ExternalReferences *[]ExternalReference `json:"externalReferences,omitempty" xml:"externalReferences>reference,omitempty"` Properties *[]Property `json:"properties,omitempty" xml:"properties>property,omitempty"` Services *[]Service `json:"services,omitempty" xml:"services>service,omitempty"` }
Click to show internal directories.
Click to hide internal directories.