Ë
    sPêjž3  ã                   ó  — d Z ddlmZ ddlmZmZmZ ddlZddl	m
Z
 ddlmZ ddlmZ dd	lmZmZmZmZmZ d
dlmZmZmZmZ d
dlmZ d
dlmZ d
dl m!Z! d
dl"m#Z#m$Z$m%Z% d
dl&m'Z'  ejP                  d¬«       G d„ de!«      «       Z)y)zÃ
This set of classes represents the data that is possible about known Services.

.. note::
    See the CycloneDX Schema extension definition https://cyclonedx.org/docs/1.7/xml/#type_servicesType
é    )ÚIterable)ÚAnyÚOptionalÚUnionN)Ú	SortedSeté   )Úbom_ref_from_str)ÚComparableTuple)ÚSchemaVersion1Dot3ÚSchemaVersion1Dot4ÚSchemaVersion1Dot5ÚSchemaVersion1Dot6ÚSchemaVersion1Dot7é   )ÚDataClassificationÚExternalReferenceÚPropertyÚXsUri)ÚBomRef)ÚOrganizationalEntity)Ú
Dependable)ÚLicenseÚLicenseRepositoryÚ%_LicenseRepositorySerializationHelper)ÚReleaseNotesT)Ú%ignore_unknown_during_deserializationc            !       óF  — e Zd ZdZdddddddddddddddœdedeeeef      dee   dee   dee   d	ee   d
ee	e
      dee   dee   dee	e      dee	e      dee	e      dee	e      dee	d       dee   ddf d„Ze ej(                  d«       ej*                  e«       ej,                  «        ej.                  d«      defd„«       «       «       «       «       Ze ej2                  d«      dee   fd„«       «       Zej6                  dee   ddfd„«       Ze ej2                  d«       ej8                  ej:                  j<                  «      dee   fd„«       «       «       Zej6                  dee   ddfd„«       Ze ej2                  d«       ej8                  ej:                  j<                  «      defd„«       «       «       Z e j6                  deddfd„«       Z e ej2                  d «       ej8                  ej:                  j<                  «      dee   fd!„«       «       «       Z!e!j6                  dee   ddfd"„«       Z!e ej2                  d#«       ej8                  ej:                  j<                  «      dee   fd$„«       «       «       Z"e"j6                  d	ee   ddfd%„«       Z"e ejF                  ejH                  jJ                  d&«       ej2                  d'«      dMd(„«       «       «       Z&e&j6                  d
e	e
   ddfd)„«       Z&e ej2                  d*«      dee   fd+„«       «       Z'e'j6                  dee   ddfd,„«       Z'e ej(                  d-«       ej.                  d-«       ej2                  d.«      dee   fd/„«       «       «       «       Z(e(j6                  dee   ddfd0„«       Z(e ejF                  ejH                  jJ                  d1«       ej2                  d2«      dNd3„«       «       «       Z)e)j6                  de	e   ddfd4„«       Z)e ej*                  e*«       ej2                  d5«      de+fd6„«       «       «       Z,e,j6                  de	e   ddfd7„«       Z,e ejF                  ejH                  jJ                  d8«       ej2                  d9«      dOd:„«       «       «       Z-e-j6                  de	e   ddfd;„«       Z-e ej\                  e/«       ej\                  e0«       ej\                  e1«       ej\                  e2«       ej\                  e3«       ejF                  ejH                  jJ                  d<«       ej2                  d=«      dPd>„«       «       «       «       «       «       «       «       Z4e4j6                  de	e   ddfd?„«       Z4e ejF                  ejH                  jJ                  d@«       ej2                  dA«      dQdB„«       «       «       Z5e5j6                  de	d    ddfdC„«       Z5e ej\                  e0«       ej\                  e1«       ej\                  e2«       ej\                  e3«       ej2                  dD«      dee   fdE„«       «       «       «       «       «       Z6e6j6                  dee   ddfdF„«       Z6de7fdG„Z8dHe9defdI„Z:dHe;defdJ„Z<de=fdK„Z>defdL„Z?y)RÚServicez±
    Class that models the `service` complex type in the CycloneDX schema.

    .. note::
        See the CycloneDX schema: https://cyclonedx.org/docs/1.7/xml/#type_service
    N)Úbom_refÚproviderÚgroupÚversionÚdescriptionÚ	endpointsÚauthenticatedÚx_trust_boundaryÚdataÚlicensesÚexternal_referencesÚ
propertiesÚservicesÚrelease_notesÚnamer   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   Úreturnc                ó  — t        |«      | _        || _        || _        || _        || _        || _        |xs g | _        || _        |	| _	        |
xs g | _
        |xs g | _        |xs g | _        |xs g | _        || _        |xs g | _        y ©N)Ú_bom_ref_from_strÚ_bom_refr    r!   r-   r"   r#   r$   r%   r&   r'   r(   r)   r+   r,   r*   )Úselfr-   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   s                   ú\/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/cyclonedx/model/service.pyÚ__init__zService.__init__;   s‘   € ô$ *¨'Ó2ˆŒØ ˆŒØˆŒ
ØˆŒ	ØˆŒØ&ˆÔØ"š bˆŒØ*ˆÔØ 0ˆÔØ’J˜BˆŒ	Ø š BˆŒØ#6Ò#<¸"ˆÔ Ø š BˆŒØ*ˆÔØ$Ò*¨ˆ�ó    zbom-refc                 ó   — | j                   S )a  
        An optional identifier which can be used to reference the service elsewhere in the BOM. Uniqueness is enforced
        within all elements and children of the root-level bom element.

        Returns:
           `BomRef` unique identifier for this Service
        )r2   ©r3   s    r4   r   zService.bom_ref]   s   € ð �}‰}Ðr6   r   c                 ó   — | j                   S )z‰
        Get the organization that provides the service.

        Returns:
            `OrganizationalEntity` if set else `None`
        ©Ú	_providerr8   s    r4   r    zService.providerl   s   € ð �~‰~Ðr6   c                 ó   — || _         y r0   r:   )r3   r    s     r4   r    zService.providerw   s	   € à!ˆ�r6   r   c                 ó   — | j                   S )a'  
        The grouping name, namespace, or identifier. This will often be a shortened, single name of the company or
        project that produced the service or domain name. Whitespace and special characters should be avoided.

        Returns:
            `str` if provided else `None`
        ©Ú_groupr8   s    r4   r!   zService.group{   s   € ð �{‰{Ðr6   c                 ó   — || _         y r0   r>   )r3   r!   s     r4   r!   zService.groupˆ   s	   € àˆ�r6   é   c                 ó   — | j                   S )zŠ
        The name of the service. This will often be a shortened, single name of the service.

        Returns:
            `str`
        ©Ú_namer8   s    r4   r-   zService.nameŒ   s   € ð �z‰zÐr6   c                 ó   — || _         y r0   rC   )r3   r-   s     r4   r-   zService.name˜   s	   € àˆ�
r6   é   c                 ó   — | j                   S )z]
        The service version.

        Returns:
            `str` if set else `None`
        ©Ú_versionr8   s    r4   r"   zService.versionœ   s   € ð �}‰}Ðr6   c                 ó   — || _         y r0   rH   )r3   r"   s     r4   r"   zService.version¨   s	   € àˆ�r6   é   c                 ó   — | j                   S )zq
        Specifies a description for the service.

        Returns:
            `str` if set else `None`
        ©Ú_descriptionr8   s    r4   r#   zService.description¬   s   € ð × Ñ Ð r6   c                 ó   — || _         y r0   rM   )r3   r#   s     r4   r#   zService.description¸   s
   € à'ˆÕr6   Úendpointé   c                 ó   — | j                   S )zo
        A list of endpoints URI's this service provides.

        Returns:
            Set of `XsUri`
        )Ú
_endpointsr8   s    r4   r$   zService.endpoints¼   s   € ð �‰Ðr6   c                 ó$   — t        |«      | _        y r0   )r   rS   )r3   r$   s     r4   r$   zService.endpointsÈ   s   € ä# IÓ.ˆ�r6   é   c                 ó   — | j                   S )a1  
        A boolean value indicating if the service requires authentication. A value of true indicates the service
        requires authentication prior to use.

        A value of false indicates the service does not require authentication.

        Returns:
            `bool` if set else `None`
        ©Ú_authenticatedr8   s    r4   r%   zService.authenticatedÌ   s   € ð ×"Ñ"Ð"r6   c                 ó   — || _         y r0   rW   )r3   r%   s     r4   r%   zService.authenticatedÚ   ó
   € à+ˆÕr6   zx-trust-boundaryé   c                 ó   — | j                   S )aV  
        A boolean value indicating if use of the service crosses a trust zone or boundary. A value of true indicates
        that by using the service, a trust boundary is crossed.

        A value of false indicates that by using the service, a trust boundary is not crossed.

        Returns:
            `bool` if set else `None`
        ©Ú_x_trust_boundaryr8   s    r4   r&   zService.x_trust_boundaryÞ   s   € ð ×%Ñ%Ð%r6   c                 ó   — || _         y r0   r]   )r3   r&   s     r4   r&   zService.x_trust_boundaryî   s
   € à!1ˆÕr6   Úclassificationé
   c                 ó   — | j                   S )zn
        Specifies the data classification.

        Returns:
            Set of `DataClassification`
        )Ú_datar8   s    r4   r'   zService.dataý   s   € ð �z‰zÐr6   c                 ó$   — t        |«      | _        y r0   )r   rc   )r3   r'   s     r4   r'   zService.data
  s   € ä˜t“_ˆ�
r6   é   c                 ó   — | j                   S )zˆ
        A optional list of statements about how this Service is licensed.

        Returns:
            Set of `LicenseChoice`
        )Ú	_licensesr8   s    r4   r(   zService.licenses  s   € ð �~‰~Ðr6   c                 ó$   — t        |«      | _        y r0   )r   rg   )r3   r(   s     r4   r(   zService.licenses  s   € ä*¨8Ó4ˆ�r6   Ú	referenceé   c                 ó   — | j                   S )z—
        Provides the ability to document external references related to the Service.

        Returns:
            Set of `ExternalReference`
        )Ú_external_referencesr8   s    r4   r)   zService.external_references  s   € ð ×(Ñ(Ð(r6   c                 ó$   — t        |«      | _        y r0   )r   rl   )r3   r)   s     r4   r)   zService.external_references+  s   € ä$-Ð.AÓ$BˆÕ!r6   Úpropertyé   c                 ó   — | j                   S )a  
        Provides the ability to document properties in a key/value store. This provides flexibility to include data not
        officially supported in the standard without having to use additional namespaces or create extensions.

        Return:
            Set of `Property`
        )Ú_propertiesr8   s    r4   r*   zService.properties/  s   € ð  ×ÑÐr6   c                 ó$   — t        |«      | _        y r0   )r   rq   )r3   r*   s     r4   r*   zService.propertiesA  s   € ä$ ZÓ0ˆÕr6   Úserviceé   c                 ó   — | j                   S )a  
        A list of services included or deployed behind the parent service.

        This is not a dependency tree.

        It provides a way to specify a hierarchical representation of service assemblies.

        Returns:
            Set of `Service`
        )Ú	_servicesr8   s    r4   r+   zService.servicesE  s   € ð �~‰~Ðr6   c                 ó$   — t        |«      | _        y r0   )r   rv   )r3   r+   s     r4   r+   zService.servicesU  s   € ä" 8Ó,ˆ�r6   é   c                 ó   — | j                   S )zj
        Specifies optional release notes.

        Returns:
            `ReleaseNotes` or `None`
        ©Ú_release_notesr8   s    r4   r,   zService.release_notesY  s   € ð ×"Ñ"Ð"r6   c                 ó   — || _         y r0   rz   )r3   r,   s     r4   r,   zService.release_notesh  rZ   r6   c                 óâ  — t        | j                  | j                  | j                  | j                  j
                  | j                  | j                  | j                  t        | j                  «      t        | j                  «      t        | j                  «      t        | j                  «      t        | j                  «      | j                  t        | j                  «      | j                   f«      S r0   )Ú_ComparableTupler!   r-   r"   r   Úvaluer    r#   r%   r'   r$   r)   r(   r*   r,   r+   r&   r8   s    r4   Ú__comparable_tuplezService.__comparable_tuplel  sª   € ÜØ�J‰J˜Ÿ	™	 4§<¡<Ø�L‰L×ÑØ�M‰M˜4×+Ñ+Ø×ÑÔ 0°·±Ó ;Ô=MÈdÏnÉnÓ=]Ü˜T×5Ñ5Ó6Ô8HÈÏÉÓ8WÜ˜TŸ_™_Ó-¨t×/AÑ/AÔCSÐTX×TaÑTaÓCbØ×!Ñ!ð!
ó ð 	r6   Úotherc                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S y)NF)Ú
isinstancer   Ú_Service__comparable_tuple©r3   r�   s     r4   Ú__eq__zService.__eq__w  s,   € Ü�eœWÔ%Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr6   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r0   )rƒ   r   r„   ÚNotImplementedr…   s     r4   Ú__lt__zService.__lt__|  s/   € Ü�eœWÔ%Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr6   c                 ó4   — t        | j                  «       «      S r0   )Úhashr„   r8   s    r4   Ú__hash__zService.__hash__�  s   € Ü�D×+Ñ+Ó-Ó.Ð.r6   c           	      óp   — d| j                   › d| j                  › d| j                  › d| j                  › d�	S )Nz<Service bom-ref=z, group=z, name=z
, version=ú>)r   r!   r-   r"   r8   s    r4   Ú__repr__zService.__repr__„  s9   € Ø" 4§<¡< .°¸¿¹¸ÀGÈDÏIÉIÈ;ÐV`Ðae×amÑamÐ`nÐnoÐpÐpr6   )r.   zSortedSet[XsUri])r.   zSortedSet[DataClassification])r.   zSortedSet[ExternalReference])r.   zSortedSet[Property])r.   zSortedSet['Service'])@Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   r   r   r   r   Úboolr   r   r   r   r   r5   rn   ÚserializableÚ	json_nameÚtype_mappingÚxml_attributeÚxml_namer   Úxml_sequencer    ÚsetterÚ
xml_stringÚXmlStringSerializationTypeÚNORMALIZED_STRINGr!   r-   r"   r#   Ú	xml_arrayÚXmlArraySerializationTypeÚNESTEDr$   r%   r&   r'   r   r   r(   r)   Úviewr   r   r   r   r   r*   r+   r,   r~   r„   Úobjectr†   r   r‰   ÚintrŒ   r�   © r6   r4   r   r   2   sC	  „ ñð 15Ø37Ø#Ø!%Ø%)Ø/3Ø(,Ø+/Ø7;Ø04ØEIØ37Ø26Ø04ò! +àð +ð ˜%  V Ñ,Ñ-ð +ð Ð/Ñ0ð	 +ð
 ˜‰}ð +ð ˜#‘ð +ð ˜c‘]ð +ð ˜H U™OÑ,ð +ð   ‘~ð +ð # 4™.ð +ð �xÐ 2Ñ3Ñ4ð +ð ˜8 GÑ,Ñ-ð +ð & hÐ/@Ñ&AÑBð +ð ˜X hÑ/Ñ0ð +ð ˜8 IÑ.Ñ/ð +ð    Ñ-ð! +ð" 
ó# +ðD Ø€\×Ñ˜IÓ&Ø€\×Ñ˜vÓ&Ø€\×ÑÓ!Ø€\×Ñ˜9Ó%ð˜ò ó &ó "ó 'ó 'ó ð
ð Ø€\×Ñ˜qÓ!ð˜(Ð#7Ñ8ò ó "ó ðð ‡_�_ð" Ð*>Ñ!?ð "ÀDò "ó ð"ð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð�x ‘}ò ó Xó "ó ðð ‡\�\ð˜8 C™=ð ¨Tò ó ðð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð�cò ó Xó "ó ðð 
‡[�[ð˜ð  ò ó ðð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð˜ #™ò ó Xó "ó ðð ‡^�^ð ˜x¨™}ð  °ò  ó ð ð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð!˜X c™]ò !ó Xó "ó ð!ð ×Ñð( x°¡}ð (¸ò (ó ð(ð Ø€\×Ñ˜L×BÑB×IÑIÈ:ÓVØ€\×Ñ˜qÓ!òó "ó Wó ðð ×Ñð/ 8¨E¡?ð /°tò /ó ð/ð Ø€\×Ñ˜qÓ!ð
#˜x¨™~ò 
#ó "ó ð
#ð ×Ñð,¨8°D©>ð ,¸dò ,ó ð,ð Ø€\×ÑÐ.Ó/Ø€\×ÑÐ-Ó.Ø€\×Ñ˜qÓ!ð
& (¨4¡.ò 
&ó "ó /ó 0ó ð
&ð ×Ñð2°¸$±ð 2ÀDò 2ó ð2ð Ø€\×Ñ˜L×BÑB×IÑIÐK[Ó\Ø€\×Ñ˜rÓ"òó #ó ]ó ðð 
‡[�[ð%˜Ð"4Ñ5ð %¸$ò %ó ð%ð Ø€\×ÑÐDÓEØ€\×Ñ˜rÓ"ðÐ+ò ó #ó Fó ðð ‡_�_ð5 ¨'Ñ!2ð 5°tò 5ó ð5ð Ø€\×Ñ˜L×BÑB×IÑIÈ;ÓWØ€\×Ñ˜rÓ"ò)ó #ó Xó ð)ð ×ÑðC°xÐ@QÑ7Rð CÐW[ò Có  ðCð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ:ÓVØ€\×Ñ˜rÓ"ò ó #ó Wó +ó +ó +ó +ó +ó ð ð ×Ñð1 X¨hÑ%7ð 1¸Dò 1ó ð1ð Ø€\×Ñ˜L×BÑB×IÑIÈ9ÓUØ€\×Ñ˜rÓ"òó #ó Vó ðð ‡_�_ð- ¨)Ñ!4ð -¸ò -ó ð-ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜rÓ"ð#˜x¨Ñ5ò #ó #ó +ó +ó +ó +ó ð#ð ×Ñð,¨8°LÑ+Að ,Àdò ,ó ð,ð	Ð$4ó 	ð˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ðq˜#ô qr6   r   )*r“   Úcollections.abcr   Útypingr   r   r   Úpy_serializabler–   Úsortedcontainersr   Ú_internal.bom_refr	   r1   Ú_internal.comparer
   r~   Úschema.schemar   r   r   r   r   Ú r   r   r   r   r   r   Úcontactr   Ú
dependencyr   Úlicenser   r   r   Úrelease_noter   Úserializable_classr   r¦   r6   r4   ú<module>r´      su   ðñ&õ %ß 'Ñ 'ã &Ý &å EÝ C÷õ ÷ EÓ DÝ Ý )Ý "ß VÑ VÝ &ð !€× Ñ ÀtÔLôRqˆjó Rqó MñRqr6   