4141from .bom_ref import BomRef
4242from .component import Component
4343from .contact import OrganizationalContact , OrganizationalEntity
44+ from .definition import Definitions
4445from .dependency import Dependable , Dependency
4546from .license import License , LicenseExpression , LicenseRepository
4647from .lifecycle import Lifecycle , LifecycleRepository , _LifecycleRepositoryHelper
@@ -327,6 +328,7 @@ def __init__(
327328 dependencies : Optional [Iterable [Dependency ]] = None ,
328329 vulnerabilities : Optional [Iterable [Vulnerability ]] = None ,
329330 properties : Optional [Iterable [Property ]] = None ,
331+ definitions : Optional [Definitions ] = None ,
330332 ) -> None :
331333 """
332334 Create a new Bom that you can manually/programmatically add data to later.
@@ -343,6 +345,7 @@ def __init__(
343345 self .vulnerabilities = vulnerabilities or [] # type:ignore[assignment]
344346 self .dependencies = dependencies or [] # type:ignore[assignment]
345347 self .properties = properties or [] # type:ignore[assignment]
348+ self .definitions = definitions or Definitions ()
346349
347350 @property
348351 @serializable .type_mapping (UrnUuidHelper )
@@ -552,6 +555,22 @@ def vulnerabilities(self, vulnerabilities: Iterable[Vulnerability]) -> None:
552555 # def formulation(self, ...) -> None:
553556 # ... # TODO Since CDX 1.5
554557
558+ @property
559+ @serializable .view (SchemaVersion1Dot6 )
560+ @serializable .xml_sequence (110 )
561+ def definitions (self ) -> Optional [Definitions ]:
562+ """
563+ The repository for definitions
564+
565+ Returns:
566+ `Definitions`
567+ """
568+ return self ._definitions if len (self ._definitions .standards ) > 0 else None
569+
570+ @definitions .setter
571+ def definitions (self , definitions : Definitions ) -> None :
572+ self ._definitions = definitions
573+
555574 def get_component_by_purl (self , purl : Optional ['PackageURL' ]) -> Optional [Component ]:
556575 """
557576 Get a Component already in the Bom by its PURL
0 commit comments