cyclonedx.model.tool
====================

.. py:module:: cyclonedx.model.tool


Classes
-------

.. autoapisummary::

   cyclonedx.model.tool.Tool
   cyclonedx.model.tool.ToolRepository


Module Contents
---------------

.. py:class:: Tool(*, vendor: Optional[str] = None, name: Optional[str] = None, version: Optional[str] = None, hashes: Optional[collections.abc.Iterable[cyclonedx.model.HashType]] = None, external_references: Optional[collections.abc.Iterable[cyclonedx.model.ExternalReference]] = None)

   This is our internal representation of the `toolType` complex type within the CycloneDX standard.

   Tool(s) are the things used in the creation of the CycloneDX document.

   Tool might be deprecated since CycloneDX 1.5, but it is not deprecated in this library.
   In fact, this library will try to provide a compatibility layer if needed.

   .. note::
       See the CycloneDX Schema for toolType: https://cyclonedx.org/docs/1.7/xml/#type_toolType


   .. py:property:: vendor
      :type: Optional[str]


      The name of the vendor who created the tool.

      Returns:
          `str` if set else `None`



   .. py:property:: name
      :type: Optional[str]


      The name of the tool.

      Returns:
           `str` if set else `None`



   .. py:property:: version
      :type: Optional[str]


      The version of the tool.

      Returns:
           `str` if set else `None`



   .. py:property:: hashes
      :type: SortedSet[HashType]


      The hashes of the tool (if applicable).

      Returns:
          Set of `HashType`



   .. py:property:: external_references
      :type: SortedSet[ExternalReference]


      External References provides a way to document systems, sites, and information that may be relevant but which
      are not included with the BOM.

      Returns:
          Set of `ExternalReference`



   .. py:method:: from_component(component: cyclonedx.model.component.Component) -> Tool
      :classmethod:



   .. py:method:: from_service(service: cyclonedx.model.service.Service) -> Tool
      :classmethod:



.. py:class:: ToolRepository(*, components: Optional[collections.abc.Iterable[cyclonedx.model.component.Component]] = None, services: Optional[collections.abc.Iterable[cyclonedx.model.service.Service]] = None, tools: Optional[collections.abc.Iterable[Tool]] = None)

   The repository of tool formats


   .. py:property:: components
      :type: SortedSet[Component]


      Returns:
          A SortedSet of Components



   .. py:property:: services
      :type: SortedSet[Service]


      Returns:
          A SortedSet of Services



   .. py:property:: tools
      :type: SortedSet[Tool]



