4141from .bom_ref import BomRef
4242from .component import Component
4343from .contact import OrganizationalContact , OrganizationalEntity
44+ from .definition import DefinitionRepository , _DefinitionRepositoryHelper
4445from .dependency import Dependable , Dependency
4546from .license import License , LicenseExpression , LicenseRepository
4647from .service import Service
@@ -317,6 +318,7 @@ def __init__(
317318 dependencies : Optional [Iterable [Dependency ]] = None ,
318319 vulnerabilities : Optional [Iterable [Vulnerability ]] = None ,
319320 properties : Optional [Iterable [Property ]] = None ,
321+ definitions : Optional [DefinitionRepository ] = None ,
320322 ) -> None :
321323 """
322324 Create a new Bom that you can manually/programmatically add data to later.
@@ -333,6 +335,7 @@ def __init__(
333335 self .vulnerabilities = vulnerabilities or [] # type:ignore[assignment]
334336 self .dependencies = dependencies or [] # type:ignore[assignment]
335337 self .properties = properties or [] # type:ignore[assignment]
338+ self .definitions = definitions or DefinitionRepository ()
336339
337340 @property
338341 @serializable .type_mapping (UrnUuidHelper )
@@ -520,6 +523,23 @@ def vulnerabilities(self) -> 'SortedSet[Vulnerability]':
520523 def vulnerabilities (self , vulnerabilities : Iterable [Vulnerability ]) -> None :
521524 self ._vulnerabilities = SortedSet (vulnerabilities )
522525
526+ @property
527+ @serializable .type_mapping (_DefinitionRepositoryHelper )
528+ @serializable .view (SchemaVersion1Dot6 )
529+ @serializable .xml_sequence (90 )
530+ def definitions (self ) -> Optional [DefinitionRepository ]:
531+ """
532+ The repository for definitions
533+
534+ Returns:
535+ `DefinitionRepository`
536+ """
537+ return self ._definitions
538+
539+ @definitions .setter
540+ def definitions (self , definitions : DefinitionRepository ) -> None :
541+ self ._definitions = definitions
542+
523543 # @property
524544 # ...
525545 # @serializable.view(SchemaVersion1Dot5)
0 commit comments