Ë
    eQêj¢+  ã                  óÖ   — d Z ddlmZ ddlZddlZddl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mZmZ ddlmZmZ ddlmZ dd	lmZ d
Zdd„Zdd„Zdd„Zdd„Z  G d„ de«      Z!y)a   
    Kubernetes

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

    The version of the OpenAPI document: release-1.37
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
é    )ÚannotationsN)ÚMapping)ÚAliasChoicesÚ	BaseModelÚ
ConfigDictÚFieldÚ	StrictStr)ÚAnyÚClassVarÚDictÚListÚOptionalÚcast)r   ÚSet)ÚSelf)Úto_jsonable_pythonÚ_openapi_generator_to_dictc                óâ   — t        | dd «      }t        t        | «      dd «      }t        |«      rt        |dd «      |ury t        |t        d «      }t        |«      rt        |t        d «      |ury |S )NÚto_dictÚ__func__)ÚgetattrÚtypeÚcallableÚ_OPENAPI_GENERATOR_TO_DICT)Úvaluer   Útype_to_dictÚopenapi_to_dicts       úy/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/kubernetes/client/models/v1_node_allocatable_mapping.pyÚ_get_openapi_to_dictr      s‚   € ô �e˜Y¨Ó-€GÜœ4 ›;¨	°4Ó8€Lä�WÔÜ�7˜J¨Ó-°\ÑAàäØÔ0°$ó€Oô �_Ô%ÜØÜ&Øó
ð ñ	ð ØÐó    c                ó‚   — t        | dd «      }t        | «      �t        |«      r	 ||¬«      S t        |«      r |«       S | S )Nr   )Ú	serialize)r   r   r   )r   r"   r   s      r   Ú_to_legacy_itemr#   :   sB   € Ü�e˜Y¨Ó-€GÜ˜EÓ"Ð.´8¸GÔ3DÙ Ô+Ð+Ü�ÔÙ‹yÐØ€Lr    c           	     ó   — t        | t        «      r| D �cg c]  }t        ||«      ‘Œ c}S t        | t        «      r.| j	                  «       D ��ci c]  \  }}|t        ||«      “Œ c}}S t        | |«      S c c}w c c}}w )N)Ú
isinstanceÚlistr#   ÚdictÚitems)r   r"   ÚitemÚkeys       r   Ú_to_legacy_valuer+   C   s}   € ô �%œÔØ=BÖC°T”  iÕ0ÒCÐCÜ�%œÔð #Ÿ[™[›]÷
á��Tð ”  yÓ1Ñ1ó
ð 	
ô ˜5 )Ó,Ð,ùò Dùó
s   •A5ÁA:c                óP  — t        | t        «      r| D �cg c]  }t        |«      ‘Œ c}S t        | t        «      r-| j	                  «       D ��ci c]  \  }}|t        |«      “Œ c}}S t        | «      }|� || «      S t        | dd «      }t        |«      r |«       S | S c c}w c c}}w )Nr   )r%   r&   Ú_to_openapi_valuer'   r(   r   r   r   )r   r)   r*   Úto_openapi_dictr   s        r   r-   r-   P   s™   € Ü�%œÔØ49Ö:¨DÔ! $Õ'Ò:Ð:Ü�%œÔØ>C¿k¹k»m×L±°°d�Ô& tÓ,Ñ,ÓLÐLä*¨5Ó1€OØÐ"Ù˜uÓ%Ð%ä�e˜Y¨Ó-€GÜ�ÔÙ‹yÐØ€Lùò ;ùãLs   •BÁB"c                  ó¢  — e Zd ZU dZ ed edd«      dd¬«      Zded<    ed edd	«      dd
¬«      Zded	<    ed edd«      dd¬«      Z	ded<   ddddœZ
ded<   ddddœZded<   g d¢Zded<   e	 d$	 	 	 	 	 d%d„«       Z eddddd¬«      Zd&d„Zd&d„Zd'd„Zd'd„Zd&d„Zed(d „«       Zd)d*d!„Zd+d"„Z eeee«        eeee«       [ed,d#„«       Zy)-ÚV1NodeAllocatableMappinga  
    NodeAllocatableMapping defines how a DRA allocation directly translates into a node allocatable resource quantity. The mapping can be derived from either the count of allocated devices (via deviceMultiplier) or the specific capacity consumed (via capacityKey and capacityMultiplier). These options are mutually exclusive. Kubelet adds this mapped resource quantity from claim to both requests and limits at the pod-level cgroup, and to limits at the container-level cgroup for each container referencing the claim.

    Attributes:
      openapi_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    NÚcapacityKeyÚcapacity_keya  CapacityKey references a capacity name defined as a key in the `spec.devices[*].capacity` map. When this field is set, the value associated with this key in the `status.allocation.devices.results[*].consumedCapacity` map (for a specific claim allocation) determines the base quantity for the node allocatable resource. `capacityMultiplier` must also be set and is multiplied with the base quantity. For example, if `spec.devices[*].capacity` has an entry "dra.example.com/memory": "128Gi", and this field is set to "dra.example.com/memory", then for a claim allocation that consumes { "dra.example.com/memory": "4Gi" } the base quantity for the node allocatable resource mapping will be "4Gi". The final node allocatable resource amount is `consumedCapacity[capacityKey]` * `capacityMultiplier`.)ÚdefaultÚvalidation_aliasÚserialization_aliasÚdescriptionzOptional[StrictStr]ÚcapacityMultiplierÚcapacity_multipliera  CapacityMultiplier is used as a multiplier for the allocated capacity consumed. It is only valid if `capacityKey` is set. The final node allocatable resource amount is `consumedCapacity[capacityKey]` * `capacityMultiplier`. For example, if a Device's capacity "dra.example.com/cores" is consumed, and each "core" provides 2 "cpu"s, the mapping would be: {ResourceName: "cpu", capacityKey: "dra.example.com/cores", capacityMultiplier: "2"}. If a claim consumes 8 "dra.example.com/cores", the CPU footprint is 8 * 2 = 16.ÚdeviceMultiplierÚdevice_multiplieraù  DeviceMultiplier is used as a multiplier for the allocated device count in the claim. The final node allocatable resource amount is `deviceCount` * `deviceMultiplier`. For example, a DRA driver representing each cache complex (CCX) as a device would have {ResourceName: "cpu", deviceMultiplier: "8"} in its `nodeAllocatableResources`. If 2 devices (CCX) are allocated to the claim, 2 * 8 = 16 CPUs would be considered as allocated. It is only valid when `capacityKey` and `capacityMultiplier` are not set.Ústr)r2   r8   r:   zClassVar[Dict[str, str]]Úopenapi_typesÚattribute_map©r1   r7   r9   zClassVar[List[str]]Ú%_V1NodeAllocatableMapping__propertiesTc                ó  — t        |t        «      s|S t        |«      }d|vrd|v r|d   |d<   |j                  dd «       d|vrd|v r|d   |d<   |j                  dd «       d|vrd|v r|d   |d<   |j                  dd «       |S )Nr1   r2   r7   r8   r9   r:   )r%   Ú_Mappingr'   Úpop)ÚclsÚobjÚremove_hidden_storage_namess      r   Ú__preprocess_input_namesz1V1NodeAllocatableMapping.__preprocess_input_namesz   s­   € ô ˜#œxÔ(ØˆJÜ�3‹iˆØ Ñ#¨¸#Ñ(=Ø!$ ^Ñ!4ˆC�ÑØ�‰� Ô%Ø sÑ*Ð/DÈÑ/KØ(+Ð,AÑ(BˆCÐ$Ñ%Ø�‰Ð% tÔ,Ø SÑ(Ð-@ÀCÑ-GØ&)Ð*=Ñ&>ˆCÐ"Ñ#Ø�‰Ð# TÔ*Øˆ
r    Úforbid© )Úvalidate_by_nameÚvalidate_by_aliasÚvalidate_assignmentÚextraÚprotected_namespacesc                óH   — t        j                  | j                  «       «      S )z.Returns the string representation of the model)ÚpprintÚpformatr   ©Úselfs    r   Úto_strzV1NodeAllocatableMapping.to_str—   s   € ä�~‰~˜dŸl™l›nÓ-Ð-r    c                ó"   — | j                  «       S )zFor print and pprint)rS   rQ   s    r   Ú__repr__z!V1NodeAllocatableMapping.__repr__›   s   € à�{‰{‹}Ðr    c                óf   — t        |t        «      sy| j                  «       |j                  «       k(  S )z&Returns true if both objects are equalF)r%   r0   r   ©rR   Úothers     r   Ú__eq__zV1NodeAllocatableMapping.__eq__Ÿ   s'   € ä˜%Ô!9Ô:Øà�|‰|‹~ §¡£Ñ0Ð0r    c                ó0   — t        |t        «      sy| |k(   S )z*Returns true if both objects are not equalT)r%   r0   rW   s     r   Ú__ne__zV1NodeAllocatableMapping.__ne__¦   s   € ä˜%Ô!9Ô:Øà˜E‘MÐ"Ð"r    c                ó¼   — t        | «      }|�$t        j                  t         || «      «      «      S t        j                  t        | j	                  «       «      «      S )z8Returns the JSON representation of the model using alias)r   ÚjsonÚdumpsr   r   )rR   r.   s     r   Úto_jsonz V1NodeAllocatableMapping.to_json®   sG   € ä.¨tÓ4ˆØÐ&Ü—:‘:Ô0±ÀÓ1FÓGÓHÐHÜ�z‰zÔ,¨T¯\©\«^Ó<Ó=Ð=r    c                óJ   — | j                  t        j                  |«      «      S )zACreate an instance of V1NodeAllocatableMapping from a JSON string)Ú	from_dictr]   Úloads)rC   Újson_strs     r   Ú	from_jsonz"V1NodeAllocatableMapping.from_jsonµ   s   € ð �}‰}œTŸZ™Z¨Ó1Ó2Ð2r    c                ó¨   — |rdndt        t        | dd«      |«      |rdndt        t        | dd«      |«      |rdndt        t        | dd«      |«      iS )z<Return all declared model fields using public or wire names.r1   r2   Nr7   r8   r9   r:   )r+   r   )rR   r"   s     r   r   z V1NodeAllocatableMapping.to_dictº   s’   € ñ (‰]¨^Ô>NÌwÐW[Ð]kÐmqÓOrÐt}Ó>~Ù%.Ñ!Ð4IÔL\Ô]dÐeið  lAð  CGó  ^Hð  JSó  MTÙ#,ÑÐ2EÔHXÔY`ÐaeÐgzð  }Aó  ZBð  DMó  INð
ð 	
r    c                óD   — t        g «      }| j                  d|d¬«      }|S )ac  Return the dictionary representation of the model using alias.

        This has the following differences from calling pydantic's
        `self.model_dump(by_alias=True)`:

        * `None` is only added to the output dict for nullable fields that
          were set at model initialization. Other fields with value `None`
          are ignored.
        T)Úby_aliasÚexcludeÚexclude_none)ÚsetÚ
model_dump)rR   Úexcluded_fieldsÚ_dicts      r   Ú%__openapi_generator_modern_projectionz>V1NodeAllocatableMapping.__openapi_generator_modern_projectionÂ   s8   € ô %(ð )
ó %ˆð —‘ØØ#Øð  ó 
ˆð
 ˆr    c                ó.  — |€yt        |t        «      s| j                  |«      S t        t        t
        t        f   | j                  |d¬«      «      }| j                  |j                  d«      |j                  d«      |j                  d«      dœ«      }|S )z:Create an instance of V1NodeAllocatableMapping from a dictNT)rE   r1   r7   r9   r>   )	r%   r'   Úmodel_validateÚ_castr   r;   r
   Ú1_V1NodeAllocatableMapping__preprocess_input_namesÚget)rC   rD   Ú_objs      r   ra   z"V1NodeAllocatableMapping.from_dictâ   s™   € ð ˆ;Øä˜#œtÔ$Ø×%Ñ% cÓ*Ð*äÜ””c�‰NØ×(Ñ(ØØ,0ð )ó ó
ˆð ×!Ñ!ØŸ7™7 =Ó1Ø"%§'¡'Ð*>Ó"?Ø #§¡Ð(:Ó ;ñ#
ó ˆð
 ˆr    )T)rD   r
   rE   ÚboolÚreturnr
   )rv   r;   )rX   Úobjectrv   ru   )rc   r;   rv   úOptional[Self])F)r"   ru   rv   úDict[str, Any])rv   ry   )rD   zOptional[Dict[str, Any]]rv   rx   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r2   Ú__annotations__r8   r:   r<   r=   r?   Úclassmethodrr   r   Úmodel_configrS   rU   rY   r[   r_   rd   r   Ú>_V1NodeAllocatableMapping__openapi_generator_modern_projectionÚsetattrr   ra   rH   r    r   r0   r0   `   s¬  … ññ ).°dÉ\ÐZgÐiwÓMxð  O\ð  jSô  )T€LÐ%ó  TÙ/4¸TÑT`Ðauð  xMó  UNð  dxð  F]ô  0^ÐÐ,ó  ^Ù-2¸4ÑR^Ð_qð  tGó  SHð  ^pð  ~}
ô  .~
ÐÐ*ó  ~
àØ$Ø"ñ/€MÐ+ó ð &Ø3Ø/ñ/€MÐ+ó ò
 )b€LÐ%Óaàð -1ðàðð &*ðð 
ò	ó ðñ& ØØØ ØØô€Ló.óó1ó#ó>ð ò3ó ð3ô
óñ( ØØ"Ø-ôñ
 Ø-Ø"Øôð
 	.àòó ñr    r0   )r   r
   rv   r
   )r   r
   r"   ru   rv   r
   )"r}   Ú
__future__r   rO   Úrer]   Úcollections.abcr   rA   Úpydanticr   r   r   r   r	   Útypingr
   r   r   r   r   r   rq   r   Útyping_extensionsr   Úpydantic_corer   r   r   r#   r+   r-   r0   rH   r    r   ú<module>rŠ      sZ   ðñ	õ #Û Û 	Û å /ß JÕ Jß E× Eß  Ý "Ý ,ð :Ð óó6ó
-óô X˜yõ Xr    