class
CycloneDX::Component
- CycloneDX::Component
- Reference
- Object
Overview
Represents a component in the CycloneDX Bill of Materials (BOM). This class is responsible for defining the structure and serialization of a software component, including its type, name, version, and PURL.
Included Modules
- JSON::Serializable
Defined in:
cyclonedx/component.crConstant Summary
-
DEFAULT_TYPE =
"library" -
VALID_SCOPES =
["required", "optional", "excluded"] -
VALID_TYPES =
["application", "framework", "library", "container", "platform", "operating-system", "device", "device-driver", "firmware", "file", "machine-learning-model", "data", "cryptographic-asset"]
Constructors
- .new(pull : JSON::PullParser)
- .new(name : String, version : String | Nil = nil, component_type : String = DEFAULT_TYPE, purl : String | Nil = nil, description : String | Nil = nil, author : String | Nil = nil, licenses : Array(License | LicenseExpression) | Nil = nil, external_references : Array(ExternalReference) | Nil = nil, bom_ref : String | Nil = nil, scope : String | Nil = nil, hashes : Array(Hash) | Nil = nil, properties : Array(Property) | Nil = nil, group : String | Nil = nil, copyright : String | Nil = nil, cpe : String | Nil = nil, supplier : OrganizationalEntity | Nil = nil, manufacturer : OrganizationalEntity | Nil = nil, publisher : String | Nil = nil, mime_type : String | Nil = nil, components : Array(Component) | Nil = nil, tags : Array(String) | Nil = nil, omnibor_id : Array(String) | Nil = nil, swhid : Array(String) | Nil = nil, pedigree : Pedigree | Nil = nil, evidence : Evidence | Nil = nil, authors : Array(OrganizationalContact) | Nil = nil, swid : Swid | Nil = nil, release_notes : ReleaseNotes | Nil = nil, model_card : ModelCard | Nil = nil, data : Array(ComponentData) | Nil = nil, crypto_properties : CryptoProperties | Nil = nil)
Instance Method Summary
- #author : String | Nil
- #authors : Array(OrganizationalContact) | Nil
- #bom_ref : String | Nil
- #component_type : String
- #components : Array(Component) | Nil
- #copyright : String | Nil
- #cpe : String | Nil
- #crypto_properties : CryptoProperties | Nil
- #data : Array(ComponentData) | Nil
- #description : String | Nil
- #evidence : Evidence | Nil
- #external_references : Array(ExternalReference) | Nil
- #group : String | Nil
- #hashes : Array(Hash) | Nil
- #licenses : Array(License | LicenseExpression) | Nil
- #manufacturer : OrganizationalEntity | Nil
- #mime_type : String | Nil
- #model_card : ModelCard | Nil
- #name : String
- #omnibor_id : Array(String) | Nil
- #pedigree : Pedigree | Nil
- #properties : Array(Property) | Nil
- #publisher : String | Nil
- #purl : String | Nil
- #release_notes : ReleaseNotes | Nil
- #scope : String | Nil
- #supplier : OrganizationalEntity | Nil
- #swhid : Array(String) | Nil
- #swid : Swid | Nil
- #tags : Array(String) | Nil
- #to_xml(xml : XML::Builder) : Nil
-
#version : String | Nil
Optional in every CycloneDX version (1.4 onwards).
Constructor Detail
def self.new(name : String, version : String | Nil = nil, component_type : String = DEFAULT_TYPE, purl : String | Nil = nil, description : String | Nil = nil, author : String | Nil = nil, licenses : Array(License | LicenseExpression) | Nil = nil, external_references : Array(ExternalReference) | Nil = nil, bom_ref : String | Nil = nil, scope : String | Nil = nil, hashes : Array(Hash) | Nil = nil, properties : Array(Property) | Nil = nil, group : String | Nil = nil, copyright : String | Nil = nil, cpe : String | Nil = nil, supplier : OrganizationalEntity | Nil = nil, manufacturer : OrganizationalEntity | Nil = nil, publisher : String | Nil = nil, mime_type : String | Nil = nil, components : Array(Component) | Nil = nil, tags : Array(String) | Nil = nil, omnibor_id : Array(String) | Nil = nil, swhid : Array(String) | Nil = nil, pedigree : Pedigree | Nil = nil, evidence : Evidence | Nil = nil, authors : Array(OrganizationalContact) | Nil = nil, swid : Swid | Nil = nil, release_notes : ReleaseNotes | Nil = nil, model_card : ModelCard | Nil = nil, data : Array(ComponentData) | Nil = nil, crypto_properties : CryptoProperties | Nil = nil)
#
Instance Method Detail
def version : String | Nil
#
Optional in every CycloneDX version (1.4 onwards). nil means "not known",
which is what the schema expresses by omitting the field; it must never be
stood in for with a placeholder string like "unknown", since that asserts a
version that does not exist and defeats downstream version matching.