+
    Žvj…  ã                  óô  a € 0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
Ht ^ RI
Ht ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH t! ^ RI"H#t# ^ RI$H%t% ^ RI&H't' ]'       d   ^ RIH(t( ]PR                  RA8¼  d   ^ RIH*t* M^ RI+H*t* . RBOt,]-].,          ]/].].3,          ,          R,          t0R#]1R$&   ]2]3]3,          ]4],          ,          ]3,          R,          t5R#]1R%&   ]RC,          t6R#]1R&&   ^<t7R']1R(&   ]! R)R*/4      t8R+]1R,&   ]! R)R-/4      t9R+]1R.&   ]Pt                  ! ];4      t< ! R/ R]=4      t> ! R0 R]>4      t? ! R1 R!]>4      t@ ! R2 R]>4      tA ! R3 R]>4      tB ! R4 R]>4      tC ! R5 R"]>4      tD ! R6 R]>4      tERDR7 R8 lltFRER9 R: lltG]! R;R;R<7       ! R= R4      4       tH]! R;R>7       ! R? R 4      4       tI ! R@ R4      tJR# )FzôMailjet API v3, v3.1, and v1 Python wrapper.

This module provides the main client and helper classes for interacting
with the Mailjet API. It handles authentication, secure URL construction,
dynamic endpoint resolution, and request execution.
)ÚannotationsN)Úsuppress)Ú	dataclass)Úfield)ÚMappingProxyType)ÚTYPE_CHECKING)ÚAny)ÚClassVar)ÚFinal)ÚLiteral)Ú	TypeAlias)Úcast)Úquote)ÚHTTPAdapter)ÚConnectionError)ÚRequestException)ÚTimeout)ÚRetry)Ú__version__)ÚSecurityGuard)ÚTracebackType)ÚSelfÚActionDeniedErrorÚApiErrorÚApiRateLimitErrorÚAuthorizationErrorÚClientÚConfigÚCriticalApiErrorÚDoesNotExistErrorÚEndpointÚTimeoutErrorÚValidationErrorr   ÚTimeoutTypeÚPayloadTypeÚ
HttpMethodz
Final[int]Ú_DEFAULT_TIMEOUTzContent-Typezapplication/jsonr
   Ú_JSON_HEADERSz
text/plainÚ_TEXT_HEADERSc                  ó   € ] tR t^TtRtRtR# )r   z.Base class for all API-related network errors.© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r*   ó    ÚW/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/mailjet_rest/client.pyr   r   T   s   † Ý8r2   c                  ó   € ] tR t^XtRtRtR# )r   z2Error raised for critical API connection failures.r*   Nr+   r*   r2   r3   r   r   X   s   † Ý<r2   c                  ó   € ] tR t^\tRtRtR# )r!   z+Error raised when an API request times out.r*   Nr+   r*   r2   r3   r!   r!   \   s   † Ý5r2   c                  ó   € ] tR t^ctRtRtR# )r   zJDeprecated: The SDK natively returns the requests.Response object for 401.r*   Nr+   r*   r2   r3   r   r   c   ó   † ÝTr2   c                  ó   € ] tR t^gtRtRtR# )r   zJDeprecated: The SDK natively returns the requests.Response object for 403.r*   Nr+   r*   r2   r3   r   r   g   r7   r2   c                  ó   € ] tR t^ktRtRtR# )r   zJDeprecated: The SDK natively returns the requests.Response object for 404.r*   Nr+   r*   r2   r3   r   r   k   r7   r2   c                  ó   € ] tR t^otRtRtR# )r"   zJDeprecated: The SDK natively returns the requests.Response object for 400.r*   Nr+   r*   r2   r3   r"   r"   o   r7   r2   c                  ó   € ] tR t^stRtRtR# )r   zJDeprecated: The SDK natively returns the requests.Response object for 429.r*   Nr+   r*   r2   r3   r   r   s   r7   r2   c               ó$   € V ^8„  d   QhRRRRRR/# )é   Úto_fileÚboolÚ_kwargsr   Úreturnúlogging.Loggerr*   )Úformats   "r3   Ú__annotate__rD   ~   s!   € ÷ ñ ˜Tð °cð ¸nñ r2   c                óf  € Rp\         P                  ! V\        ^R7       \        P                  ! R4      pVP                  \        P                  4       \        P                  ! R4      p\        P                  ! \        P                  4      pVP                  V4       VP                  V4       V# )a&  Deprecated: Custom logging handler.

Args:
    to_file (bool): Deprecated flag. Output is no longer written to files natively.
    **_kwargs (Any): Absorbs any other legacy keyword arguments.

Returns:
    logging.Logger: A legacy logger instance to prevent AttributeError in old integrations.
z¢logging_handler is deprecated and will be removed in future releases. Logging is now integrated cleanly and automatically via Python's standard `logging` library.©Ú
stacklevelÚmailjet_legacyz%(levelname)s | %(message)s)ÚwarningsÚwarnÚDeprecationWarningÚloggingÚ	getLoggerÚsetLevelÚDEBUGÚ	FormatterÚStreamHandlerÚsysÚstdoutÚsetFormatterÚ
addHandler)r>   r@   ÚmsgÚlegacy_loggerÚ	formatterÚstdout_handlers   &,    r3   Úlogging_handlerrZ   ~   sŒ   € ð	gð ô ‡M‚M�#Ô)°aÕ8ä×%Ò%Ð&6Ó7€MØ×Ñœ7Ÿ=™=Ô)Ü×!Ò!Ð"?Ó@€IÜ×*Ò*¬3¯:©:Ó6€NØ×Ñ 	Ô*Ø×Ñ˜^Ô,ð Ðr2   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r=   Úresponseúrequests.ResponseÚlogr   Údebugr?   r@   rA   r*   )rC   s   "r3   rD   rD   ™   s:   € ÷ %ñ %Øð%à	ð%ð ð%ð ð	%ð
 	ñ%r2   c           
     óR  € Rp\         P                  ! V\        ^R7        V P                  4       pV'       d¾   \	        V4      '       d­   \        \        4      ;_uu_ 4        \        R\        RV! 4       4      4      pVP                  RV P                  P                  4       VP                  RV P                  4       \        P                  ! 4       P                  P                  4        RRR4       V# V#   + '       g   i     T# ; i  \          d    T P"                  u # i ; i)aN  Deprecated: Extract JSON or text from response.

Args:
    response (requests.Response): The HTTP response.
    log (Any, optional): Deprecated logging callable.
    debug (bool): Deprecated debug flag.
    **_kwargs (Any): Absorbs any other legacy keyword arguments.

Returns:
    Any: The parsed JSON dictionary or raw text string.
zšparse_response is deprecated and will be removed in future releases. Please use response.json() or response.text directly on the requests.Response object.rF   rB   ÚobjectzREQUEST: %szRESPONSE_CODE: %sN)rI   rJ   rK   ÚjsonÚcallabler   Ú	Exceptionr   r_   ÚrequestÚurlÚstatus_coderL   rM   ÚhandlersÚclearÚ
ValueErrorÚtext)r\   r^   r_   r@   rV   ÚdataÚlgrs   &&&,   r3   Úparse_responsern   ™   sâ   € ð$	`ð ô ‡M‚M�#Ô)°aÕ8ðØ�}‰}‹ˆ÷
 ”X˜c—]’]Üœ)×$Õ$ÜÐ+¬T°(¹C»EÓ-BÓC�à—	‘	˜-¨×)9Ñ)9×)=Ñ)=Ô>Ø—	‘	Ð-¨x×/CÑ/CÔDÜ×!Ò!Ó#×,Ñ,×2Ñ2Ô4÷ %ð ˆˆtˆ÷ %Ö$ð ˆûô ô Ø�}‰}Òðús   ¡D Á!BC8Ã8D		ÄD&Ä%D&T)ÚslotsÚkw_onlyc                  ó€   € ] tR t^Æt$ RtRtR]R&   RtR]R&   RtR]R	&   R
]	 2t
R]R&   ]tR]R&   R R ltR R ltRtR# )r   a”  Configuration settings for interacting with the Mailjet API.

Attributes:
    ALLOWED_ROOT_DOMAIN (ClassVar[str]): The permitted root domain to prevent SSRF.
    version (str): The API version to use (e.g., 'v3', 'v3.1', 'v1').
    api_url (str): The base URL for the Mailjet API.
    user_agent (str): The User-Agent string sent with API requests.
    timeout (TimeoutType): Request timeout in seconds.
zmailjet.comzClassVar[str]ÚALLOWED_ROOT_DOMAINÚv3ÚstrÚversionzhttps://api.mailjet.com/Úapi_urlzmailjet-apiv3-python/vÚ
user_agentr#   Útimeoutc               ó   € V ^8„  d   QhRR/# ©r=   rA   ÚNoner*   )rC   s   "r3   rD   ÚConfig.__annotate__Ù   s   € ÷ ?ñ ?˜tñ ?r2   c                ó  € \         P                  ! V P                  V P                  R7       V P                  P	                  R4      '       g   V ;P                  R,          un        R R lpV P
                  e‘   \        V P
                  \        4      '       dS   \        V P
                  4      ^8w  d   RV P
                   R2p\        V4      hV P
                   F  pV! V4       K  	  R# V! \        RV P
                  4      4       R# R# )	z±Validate configuration for secure transport and resource limits (OWASP Input Validation).

Raises:
    ValueError: If the URL scheme is insecure or timeout bounds are violated.
)Úallowed_root_domainÚ/c               ó    € V ^8„  d   QhRRRR/# )r=   ÚtÚfloatrA   r{   r*   )rC   s   "r3   rD   Ú*Config.__post_init__.<locals>.__annotate__ä   s   € ÷ 	*ñ 	* ð 	*¨4ñ 	*r2   c                óD   € V ^ 8:  g   V R8”  d   RV  R2p\        V4      hR# )é    i,  z?Timeout values must be strictly between 1 and 300 seconds, got Ú.N)rj   )r�   Úerr_msgs   & r3   Ú_validate_timeoutÚ/Config.__post_init__.<locals>._validate_timeoutä   s0   € Ø�AŒv˜˜SœØ[Ð\]Ð[^Ð^_Ð`�Ü  Ó)Ð)ñ !r2   Nz5Timeout tuple must contain exactly two elements, got r†   r‚   )r   Úvalidate_config_urlrv   rr   Úendswithrx   Ú
isinstanceÚtupleÚlenrj   r   )Úselfrˆ   rV   Út_vals   &   r3   Ú__post_init__ÚConfig.__post_init__Ù   sÅ   € ô 	×)Ò)¨$¯,©,ÈD×LdÑLdÕeà�|‰|×$Ñ$ S×)Ò)Ø�LŠL˜CÕ�Lõ	*ð
 �<‰<Ò#Ü˜$Ÿ,™,¬×.Ò.ä�t—|‘|Ó$¨Ô)ØQÐRV×R^ÑR^ÐQ_Ð_`Ða�CÜ$ S›/Ð)Ø!Ÿ\œ\�EÙ% eÖ,ó *ñ "¤$ w°·±Ó"=Ö>ñ $r2   c               ó    € V ^8„  d   QhRRRR/# )r=   Úkeyrt   rA   ztuple[str, dict[str, str]]r*   )rC   s   "r3   rD   r|   ô   s   € ÷ ñ ˜sð Ð'Añ r2   c                óZ  € VP                  R^R7      ^ ,          pVP                  4       pVR8X  d   V P                   V P                   R2pM§VP	                  R
4      '       d   V P                   V P                   RV 2pMrVP                  4       P                  R4      '       d1   VP                  RR4      pV P                   V P                   RV 2pMV P                   V P                   R	V 2pVP	                  R4      '       d   \        \        4      M\        \        4      pWF3# )zßRetrieve the base API endpoint URL and default headers for a given key.

Args:
    key (str): The raw endpoint key name.

Returns:
    tuple[str, dict[str, str]]: A tuple containing the base URL and the headers dictionary.
Ú_)ÚmaxsplitÚsendú/sendÚ_csvdataú/DATA/Údata_r   ú/REST/©rš   Ú	_csverror)
ÚsplitÚlowerrv   ru   r‹   Ú
startswithÚreplaceÚdictr(   r'   )r�   r”   ÚactionÚ
name_lowerrf   Úaction_pathÚheaderss   &&     r3   Ú__getitem__ÚConfig.__getitem__ô   sÿ   € ð —‘˜3¨�Ó+¨AÕ.ˆØ—Y‘Y“[ˆ
à˜ÔØ—\‘\�N 4§<¡< .°Ð6‰CØ× Ñ Ð!:×;Ò;Ø—\‘\�N 4§<¡< .°°v°hÐ?‰CØ�Y‰Y‹[×#Ñ# G×,Ò,ØŸ+™+ c¨3Ó/ˆKØ—\‘\�N 4§<¡< .°°+°Ð?‰Cà—\‘\�N 4§<¡< .°°v°hÐ?ˆCð *4×)<Ñ)<¸Z×)HÒ)H”$”}Ô%ÌdÔS`ÓNaˆàˆ|Ðr2   r*   N)r,   r-   r.   r/   r0   rr   Ú__annotations__ru   rv   r   rw   r&   rx   r‘   r©   r1   r*   r2   r3   r   r   Æ   sR   ‡ ñð *7Ð˜Ó6à€GˆSÓØ-€GˆSÓ-Ø.¨{¨mÐ<€J�Ó<Ø+€Gˆ[Ó+õ?÷6ñ r2   )ro   c                  ó  € ] tR tRt$ RtR]R&   R]R&   ]! RR7      tR]R	&   ]! RR7      tR
]R&   ]! RR7      t	R]R&   R R lt
]R R l4       tR!R R lltR"R R lltR#R R lltR$R R lltR%R R lltR&R R lltR"R R lltR tR# )'r    i  z½A class representing a specific Mailjet API endpoint.

This class provides methods to execute standard HTTP operations (GET, POST, PUT, DELETE)
dynamically based on the requested resource.
r   Úclientrt   ÚnameF)ÚinitÚ_name_lowerú	list[str]Ú_action_partsÚ_resource_lowerc               ó   € V ^8„  d   QhRR/# rz   r*   )rC   s   "r3   rD   ÚEndpoint.__annotate__#  s   € ÷ >ñ >˜tñ >r2   c                óž  € V P                   P                  4       V n        V P                   P                  R4      pV^ ,          P                  4       V n        V P                  .V n        \        V4      ^8”  dU   VR,           FE  pRP                  R V 4       4      pV P
                  P                  VP                  R4      4       KG  	  R# R# )zBPre-compute routing strings ONCE instead of on every network call.r–   ºé   NNÚ c              3  ó~   "  € T F3  qP                  4       '       d   R VP                  4       ,           MTx € K5  	  R# 5i)Ú-N)Úisupperr¡   )Ú.0Úcs   & r3   Ú	<genexpr>Ú)Endpoint.__post_init__.<locals>.<genexpr>0  s)   é € Ð UÑPTÈ1·I±I·K²K  q§w¡w£y¦ÀQÔ!FÓPTùs   ‚;=r»   N)
r®   r¡   r°   r    r³   r²   rŽ   ÚjoinÚappendÚlstrip)r�   ÚpartsÚpartÚdasheds   &   r3   r‘   ÚEndpoint.__post_init__#  s¡   € àŸ9™9Ÿ?™?Ó,ˆÔØ—	‘	—‘ Ó$ˆð  % Q�xŸ~™~Ó/ˆÔØ"×2Ñ2Ð3ˆÔô ˆu‹:˜Œ>Ø˜bŸ	˜	�àŸ™Ñ UÑPTÓ UÓU�Ø×"Ñ"×)Ñ)¨&¯-©-¸Ó*<Ö=ó "ñ r2   c               ó0   € V ^8„  d   QhRRRRRRRRRRRR/# )	r=   Úbase_urlrt   ru   Úresourcer¦   Úid_valúint | str | NonerA   r*   )rC   s   "r3   rD   rµ   4  s8   € ÷ ñ  ð ¨sð ¸cð Èsð Ð\lð Ðqtñ r2   c                ó¢   € V  RV RV 2pVeA   \        \        V4      RR7      pVP                  R4      '       d   RMRpVRV RV 2,          pV# )aM  Construct the URL for CSV data endpoints.

Args:
    base_url (str): The base API URL.
    version (str): The API version.
    resource (str): The base resource name.
    name_lower (str): The lowercase endpoint name.
    id_val (int | str | None): The primary resource ID.

Returns:
    str: The fully constructed CSV endpoint URL.
r   r›   ú@+©Úsaferš   zCSVData/text:plainzCSVError/text:csv)r   rt   r‹   )rÉ   ru   rÊ   r¦   rË   rf   Úsafe_idÚsuffixs   &&&&&   r3   Ú_build_csv_urlÚEndpoint._build_csv_url3  se   € ð �
˜!˜G˜9 F¨8¨*Ð5ˆØÒÜœC ›K¨dÔ3ˆGØ-7×-@Ñ-@À×-LÒ-LÑ)ÐReˆFØ�Q�w�i˜q  Ð)Õ)ˆCØˆ
r2   Nc               ó$   € V ^8„  d   QhRRRRRR/# )r=   rË   rÌ   Ú	action_idrA   rt   r*   )rC   s   "r3   rD   rµ   H  s$   € ÷ -ñ -Ð!1ð -ÐEUð -Ðadñ -r2   c                óD  € V P                   P                  P                  P                  R4      pV P                   P                  P                  pV P
                  pV P                  pV P                  pV^ ,          p\        P                  ! WEV4       VR8X  d	   V RV R2# VP                  R4      '       d   V P                  W4W…V4      # VR8X  d   RP                  V4      p	V RV RV	 2p
M
V RV RV 2p
Ve#   \        \        V4      RR7      pV
RV 2,          p
\        V4      ^8”  dK   VR8w  dD   VR8X  d   RP                  VR	,          4      MR
P                  VR	,          4      pV
RV 2,          p
Ve#   \        \        V4      RR7      pV
RV 2,          p
V
# )zÐConstruct the URL for the specific API request.

Args:
    id_val (int | str | None): The primary resource ID.
    action_id (int | str | None): The sub-action ID.

Returns:
    str: The fully qualified URL.
r   r˜   r™   rl   r�   rÎ   rÏ   Úv1r·   r»   r¹   rž   )r­   Úconfigrv   Úrstripru   r°   r²   r³   r   Úvalidate_dx_routingr‹   rÓ   rÁ   r   rt   rŽ   )r�   rË   rÖ   rÉ   ru   r¦   Úaction_partsÚresource_lowerrÊ   r§   rf   rÑ   Ú
sub_actionÚsafe_action_ids   &&&           r3   Ú
_build_urlÚEndpoint._build_urlH  s�  € ð —;‘;×%Ñ%×-Ñ-×4Ñ4°SÓ9ˆØ—+‘+×$Ñ$×,Ñ,ˆð ×%Ñ%ˆ
Ø×)Ñ)ˆØ×-Ñ-ˆØ •?ˆä×)Ò)¨'¸~ÔNà˜ÔØ�Z˜q  	¨Ð/Ð/à×ÑÐ8×9Ò9Ø×&Ñ& x¸(ÐPVÓWÐWà˜VÔ#ØŸ(™( <Ó0ˆKØ�J˜a ˜y¨¨+¨Ð7‰Cà�J˜a ˜y¨¨x¨jÐ9ˆCàÒÜœC ›K¨dÔ3ˆGØ�Q�w�i�=Õ ˆCäˆ|Ó˜qÔ  ^°vÔ%=Ø7>À$´˜Ÿ™ ,¨rÕ"2Ô3ÈCÏHÉHÐUaÐbdÕUeÓLfˆJØ�Q�z�lÐ#Õ#ˆCàÒ Ü"¤3 y£>¸Ô;ˆNØ�Q�~Ð&Ð'Õ'ˆCàˆ
r2   c               ó    € V ^8„  d   QhRRRR/# )r=   Úcustom_headersúdict[str, str] | NonerA   zdict[str, str]r*   )rC   s   "r3   rD   rµ   w  s   € ÷ "ñ "Ð-Bð "Ènñ "r2   c                óº   € V P                   P                  R4      '       d   \        M\        pV'       d   \        P
                  ! V4       / VCVC# \        V4      # )z¸Build headers based on the endpoint requirements.

Args:
    custom_headers (dict[str, str] | None): Custom headers to merge.

Returns:
    dict[str, str]: The finalized HTTP headers.
rš   )r°   r‹   r(   r'   r   Úvalidate_crlf_headersr¤   )r�   rã   Úbase_headerss   && r3   Ú_build_headersÚEndpoint._build_headersw  sN   € ð )-×(8Ñ(8×(AÑ(AÀ*×(MÒ(M•}ÔS`ˆçÜ×/Ò/°Ô?Ø5�lÐ5 nÐ5Ð5ä�LÓ!Ð!r2   c               óD   € V ^8„  d   QhRRRRRRRRR	R
RR
RRRRRRRRRR/# )r=   Úmethodr%   Úfiltersúdict[str, Any] | Nonerl   r$   r¨   rä   ÚidrÌ   rÖ   rx   r#   Úensure_asciiúbool | NoneÚdata_encodingú
str | NoneÚkwargsr   rA   r]   r*   )rC   s   "r3   rD   rµ   ‰  sx   € ÷ 1
ñ 1
àð1
ð 'ð1
ð ð	1
ð
 'ð1
ð ð1
ð $ð1
ð ð1
ð "ð1
ð "ð1
ð ð1
ð 
ñ1
r2   c
                ób  € Vf	   Ve   TpRpVf   RV
9   d   V
P                  R4      pMRV
9   d   V
P                  R4       V P                  P                  ! RRTRV P                  WVR7      RTRTRV P	                  V4      R	Ve   TMV P                  P
                  P                  R
VRV	/V
B # )aˆ  Execute the API call directly.

Args:
    method (HttpMethod, optional): The HTTP method. Defaults to "GET".
    filters (dict[str, Any] | None, optional): Query parameters to append to the URL.
    data (PayloadType, optional): The payload for the request body.
    headers (dict[str, str] | None, optional): Additional HTTP headers to send.
    id (int | str | None, optional): The primary resource ID.
    action_id (int | str | None, optional): The secondary ID or action string for nested resources.
    timeout (TimeoutType, optional): Custom timeout for this request.
    ensure_ascii (bool | None, optional): Deprecated. Ensure ASCII serialization.
    data_encoding (str | None, optional): Deprecated. Target encoding string for the payload.
    **kwargs (Any): Additional parameters passed to `requests.Session.request`.

Returns:
    requests.Response: The HTTP response from the Mailjet API.
NÚfilterrë   rf   )rË   rÖ   rì   rl   r¨   rx   rï   rñ   r*   )Úpopr­   Úapi_callrà   rè   rÙ   rx   )r�   rë   rì   rl   r¨   rî   rÖ   rx   rï   rñ   ró   s   &&&&&&&&&&,r3   Ú__call__ÚEndpoint.__call__‰  sà   € ð< Š:˜)Ò/ØˆBØˆIàŠ?˜x¨6Ô1Ø—j‘j Ó*‰GØ˜ÔØ�J‰J�xÔ à�{‰{×#Ò#ñ 

Øð

à—‘ r�Ó?ð

ð ð

ð ð	

ð
 ×'Ñ'¨Ó0ð

ð  'Ò2‘G¸¿¹×8JÑ8J×8RÑ8Rð

ð &ð

ð (ð

ð ñ

ð 
	
r2   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r=   rî   rÌ   rì   rí   rÖ   ró   r   rA   r]   r*   )rC   s   "r3   rD   rµ   ¼  sC   € ÷ Yñ YàðYð 'ðYð $ð	Yð
 ðYð 
ñYr2   c                ó"   € V ! RRRRVRVRV/VB # )a?  Perform a GET request to retrieve resources.

Args:
    id (int | str | None): The primary resource ID.
    filters (dict[str, Any] | None): Query parameters.
    action_id (int | str | None): The sub-action ID.
    **kwargs (Any): Additional arguments.

Returns:
    requests.Response: The HTTP response from the API.
rë   ÚGETrî   rì   rÖ   r*   r*   )r�   rî   rì   rÖ   ró   s   &&&&,r3   ÚgetÚEndpoint.get¼  s'   € ñ$ ÑX˜5ÐX RÐX°ÐXÀIÐXÐQWÑXÐXr2   c               ó4   € V ^8„  d   QhRRRRRRRRRR	R
RRR/# )r=   rl   r$   rî   rÌ   rÖ   rï   rð   rñ   rò   ró   r   rA   r]   r*   )rC   s   "r3   rD   rµ   Ð  sP   € ÷ $
ñ $
àð$
ð ð$
ð $ð	$
ð
 "ð$
ð "ð$
ð ð$
ð 
ñ$
r2   c                óx   € Vf   Ve    Rp\         P                  ! V\        ^R7       V ! R
RRRVRVRVRVR	V/VB # )aÁ  Perform a POST request to create a new resource.

Args:
    data (PayloadType): Request payload.
    id (int | str | None): The primary resource ID.
    action_id (int | str | None): The sub-action ID.
    ensure_ascii (bool | None): Ensure ASCII serialization (Deprecated).
    data_encoding (str | None): Data encoding string (Deprecated).
    **kwargs (Any): Additional arguments.

Returns:
    requests.Response: The HTTP response from the API.
ú™'ensure_ascii' and 'data_encoding' are deprecated and will be removed in future releases. The underlying requests library handles serialization natively.rF   rë   ÚPOSTrl   rî   rÖ   rï   rñ   r*   ©rI   rJ   rK   )r�   rl   rî   rÖ   rï   rñ   ró   rV   s   &&&&&&, r3   ÚcreateÚEndpoint.createÐ  s|   € ð, Ò# }Ò'@ðRð ô �MŠM˜#Ô1¸aÕ@Ùñ 
Øð
àð
ð ð
ð  ð	
ð
 &ð
ð (ð
ð ñ
ð 	
r2   c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# )r=   rî   ú	int | strrl   r$   rÖ   rÌ   rï   rð   rñ   rò   ró   r   rA   r]   r*   )rC   s   "r3   rD   rµ   ö  sP   € ÷ $
ñ $
àð$
ð ð$
ð $ð	$
ð
 "ð$
ð "ð$
ð ð$
ð 
ñ$
r2   c                óx   € Vf   Ve    Rp\         P                  ! V\        ^R7       V ! R
RRRVRVRVRVR	V/VB # )a¿  Perform a PUT request to update an existing resource.

Args:
    id (int | str): The primary resource ID.
    data (PayloadType): Updated payload.
    action_id (int | str | None): The sub-action ID.
    ensure_ascii (bool | None): Ensure ASCII serialization (Deprecated).
    data_encoding (str | None): Data encoding string (Deprecated).
    **kwargs (Any): Additional arguments.

Returns:
    requests.Response: The HTTP response from the API.
r  rF   rë   ÚPUTrî   rl   rÖ   rï   rñ   r*   r  )r�   rî   rl   rÖ   rï   rñ   ró   rV   s   &&&&&&, r3   ÚupdateÚEndpoint.updateö  s|   € ð, Ò# }Ò'@ðRð ô �MŠM˜#Ô1¸aÕ@Ùñ 
Øð
àð
ð ð
ð  ð	
ð
 &ð
ð (ð
ð ñ
ð 	
r2   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r=   rî   r  rÖ   rÌ   ró   r   rA   r]   r*   )rC   s   "r3   rD   rµ     s1   € ÷ Kñ K˜ð KÐ/?ð KÐRUð KÐZkñ Kr2   c           	     ó   € V ! RRRRVRV/VB # )a  Perform a DELETE request to remove a resource.

Args:
    id (int | str): The primary resource ID.
    action_id (int | str | None): The sub-action ID.
    **kwargs (Any): Additional arguments.

Returns:
    requests.Response: The HTTP response from the API.
rë   ÚDELETErî   rÖ   r*   r*   )r�   rî   rÖ   ró   s   &&&,r3   ÚdeleteÚEndpoint.delete  s!   € ñ ÑJ˜8ÐJ¨ÐJ°iÐJÀ6ÑJÐJr2   )r²   r°   r³   ©NN)N)	rü   NNNNNNNN)NNN)NNNNN)NNNN)r,   r-   r.   r/   r0   r«   r   r°   r²   r³   r‘   ÚstaticmethodrÓ   rà   rè   rø   rý   r  r
  r  r1   r*   r2   r3   r    r      sˆ   ‡ ñð ƒNØ
ƒIÙ %Ô(€K�Ó(Ù$¨%Ô0€M�9Ó0Ù  eÔ,€O�SÓ,õ>ð  ôó ð÷(-÷^"÷$1
÷fY÷($
÷L$
÷LKó Kr2   c                  ó6  a € ] tR tRt$ Rt]! ^^. R*ORR.RR7      tR]R&   R+tR	]R
&   R]R&   R]R&   R]R&   R,R R llt	R R lt
R R ltR R ltR R ltR R ltR V 3R lltR R  ltR-R! R" llt]R# R$ l4       t]R% R& l4       t]R' R( l4       tR)tV ;t# ).r   i/  a;  The primary client for interacting with the Mailjet API.

Handles authentication, session management, configuration, and dynamic
endpoint resolution via magic methods (`__getattr__`).

Examples:
    >>> client = Client(auth=(API_KEY, API_SECRET), version='v3.1')
    >>> response = client.send.create(data=payload)
rü   ÚOPTIONST)ÚtotalÚbackoff_factorÚstatus_forcelistÚallowed_methodsÚrespect_retry_after_headerzClassVar[Retry]Ú_RETRY_STRATEGYzClassVar[tuple[str, ...]]Ú_DYNAMIC_ENDPOINTSr   rÙ   zrequests.SessionÚsessionzdict[str, Endpoint]Ú_endpoint_cachec               ó(   € V ^8„  d   QhRRRRRRRR/# )	r=   Úauthztuple[str, str] | str | NonerÙ   zConfig | Noneró   r   rA   r{   r*   )rC   s   "r3   rD   ÚClient.__annotate__t  s8   € ÷ 1Lñ 1Là*ð1Lð ð1Lð ð	1Lð
 
ñ1Lr2   c                ó²  € T;'       g    \        R/ VB V n        \        P                  ! 4       V n        / V n        \        V P                  ^d^dR7      pV P                  P                  RV4       VEe(   \        V\        4      '       dn   \        V4      ^8w  d   Rp\        V4      h\        V^ ,          4      P                  4       \        V^,          4      P                  4       3V P                  n        M¤\        V\        4      '       dl   VP                  4       pV'       g   Rp\        V4      hRV9   g   RV9   d   Rp\        V4      hV P                  P                   P#                  R	R
V 2/4       M#R\%        V4      P&                   2p\)        V4      hV P                  P                   P#                  RV P                  P*                  /4       R# )ab  Initialize a new Mailjet API Client instance.

Args:
    auth (tuple[str, str] | str | None, optional): Authentication credentials.
        Use a tuple `(API_KEY, API_SECRET)` for Basic Auth (Email API).
        Use a string `TOKEN` for Bearer Auth (Content API v1).
    config (Config | None, optional): A pre-configured `Config` instance.
    **kwargs (Any): Configuration overrides if `config` is not provided
        (e.g., `version='v3.1'`, `timeout=10`).

Raises:
    ValueError: If the provided `auth` credentials are invalid or empty.
    TypeError: If the `auth` type is neither a tuple nor a string.
)Úmax_retriesÚpool_connectionsÚpool_maxsizezhttps://NzJBasic auth tuple must contain exactly two elements: (API_KEY, API_SECRET).z'Bearer token cannot be an empty string.Ú
ÚzABearer token contains invalid characters (Header Injection risk).ÚAuthorizationzBearer z5Invalid auth type: expected tuple, str, or None, got z
User-Agentr*   )r   rÙ   ÚrequestsÚSessionr  r  r   r  ÚmountrŒ   r�   rŽ   rj   rt   Ústripr  r¨   r
  Útyper,   Ú	TypeErrorrw   )r�   r  rÙ   ró   ÚadapterrV   Úclean_tokenr‡   s   &&&,    r3   Ú__init__ÚClient.__init__t  sx  € ð( ×0Ð0¤Ñ 0¨Ñ 0ˆŒÜ×'Ò'Ó)ˆŒð 57ˆÔô ¨$×*>Ñ*>ÐQTÐcfÔgˆØ�‰×Ñ˜: wÔ/àÓÜ˜$¤×&Ò&Ü�t“9 ”>Øf�CÜ$ S›/Ð)Ü%(¨¨a­£\×%7Ñ%7Ó%9¼3¸tÀA½w»<×;MÑ;MÓ;OÐ$P�—‘Õ!Ü˜D¤#×&Ò&Ø"Ÿj™j›l�ß"ØG�GÜ$ WÓ-Ð-Ø˜;Ô&¨$°+Ô*=Øa�GÜ$ WÓ-Ð-Ø—‘×$Ñ$×+Ñ+¨_ÀÈÀ}Ð>UÐ,VÕWàMÌdÐSWËj×NaÑNaÐMbÐc�Ü “nÐ$à�‰×Ñ×#Ñ# \°4·;±;×3IÑ3IÐ$JÖKr2   c               ó   € V ^8„  d   QhRR/# )r=   rA   r   r*   )rC   s   "r3   rD   r   §  s   € ÷ ñ ˜4ñ r2   c                ó   € V # )zKEnter the context manager.

Returns:
    Self: The active Client instance.
r*   ©r�   s   &r3   Ú	__enter__ÚClient.__enter__§  s	   € ð ˆr2   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r=   Úexc_typeztype[BaseException] | NoneÚexc_valzBaseException | NoneÚexc_tbzTracebackType | NonerA   r{   r*   )rC   s   "r3   rD   r   ¯  s2   € ÷ ñ à,ðð &ðð %ð	ð
 
ñr2   c                ó&   € V P                  4        R# )zÖExit the context manager and clean up resources.

Args:
    exc_type (type[BaseException] | None): Exception type.
    exc_val (BaseException | None): Exception value.
    exc_tb (TracebackType | None): Traceback.
N)Úclose)r�   r8  r9  r:  s   &&&&r3   Ú__exit__ÚClient.__exit__¯  s   € ð 	�
‰
Žr2   c               ó    € V ^8„  d   QhRRRR/# )r=   r®   rt   rA   r    r*   )rC   s   "r3   rD   r   ¾  s   € ÷ *ñ * ð *¨ñ *r2   c                óÎ   € \         P                  ! V P                  P                  V4       WP                  9  d   \        W4      V P                  V&   V P                  V,          # )zŸDynamically access API endpoints as attributes.

Args:
    name (str): Endpoint name.

Returns:
    Endpoint: An Endpoint instance for the requested resource.
)r   Úvalidate_attribute_accessÚ	__class__r.   r  r    )r�   r®   s   &&r3   Ú__getattr__ÚClient.__getattr__¾  sP   € ô 	×/Ò/°·±×0KÑ0KÈTÔRà×+Ñ+Ô+Ü)1°$Ó)=ˆD× Ñ  Ñ&à×#Ñ# DÕ)Ð)r2   c               ó   € V ^8„  d   QhRR/# ©r=   rA   rt   r*   )rC   s   "r3   rD   r   Î  s   € ÷ [ñ [˜#ñ [r2   c                ód   € RV P                   P                   RV P                   P                   R2# )zŸOWASP Secrets Management: Redact sensitive information from object representation.

Returns:
    str: A redacted string representation of the client instance.
z<Client API Version='z' URL='z'>)rÙ   ru   rv   r4  s   &r3   Ú__repr__ÚClient.__repr__Î  s0   € ð ' t§{¡{×':Ñ':Ð&;¸7À4Ç;Á;×CVÑCVÐBWÐWYÐZÐZr2   c               ó   € V ^8„  d   QhRR/# rF  r*   )rC   s   "r3   rD   r   Ö  s   € ÷ 9ñ 9˜ñ 9r2   c                ó6   € RV P                   P                   R2# )zˆOWASP Secrets Management: Redact sensitive information from string representation.

Returns:
    str: A redacted string representation.
zMailjet Client (Ú))rÙ   ru   r4  s   &r3   Ú__str__ÚClient.__str__Ö  s   € ð " $§+¡+×"5Ñ"5Ð!6°aÐ8Ð8r2   c               ó   € V ^8„  d   QhRR/# )r=   rA   r±   r*   )rC   s   "r3   rD   r   Þ  s   € ÷ Kñ K˜ñ Kr2   c                óŽ   <€ \        \        SV `	  4       4      p\        \	        V\        V P
                  4      ,           4      4      # )z¢Override __dir__ to expose dynamic endpoints for IDE autocompletion.

Returns:
    list[str]: A sorted list of all standard attributes and dynamic API endpoints.
)ÚlistÚsuperÚ__dir__ÚsortedÚsetr  )r�   Ústandard_attrsrB  s   & €r3   rS  ÚClient.__dir__Þ  s6   ø€ ô œe™g™oÓ/Ó0ˆÜ”c˜.¬4°×0GÑ0GÓ+HÕHÓIÓJÐJr2   c               ó   € V ^8„  d   QhRR/# rz   r*   )rC   s   "r3   rD   r   é  s   € ÷ !ñ !�tñ !r2   c                óÌ   € V P                   '       dR   RV P                   n        V P                   P                  P                  4        V P                   P	                  4        R# R# )zAClose the underlying requests.Session and purge memory (CWE-316).N)r  r  r¨   ri   r<  r4  s   &r3   r<  ÚClient.closeé  sB   € à�<�<ˆ<Ø $ˆD�L‰LÔØ�L‰L× Ñ ×&Ñ&Ô(Ø�L‰L×ÑÖ ñ r2   c               ó@   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRR/
# )r=   rë   r%   rf   rt   rì   rí   rl   r$   r¨   rä   rx   r#   rï   rð   rñ   rò   ró   r   rA   r]   r*   )rC   s   "r3   rD   r   ð  sz   € ÷ \ñ \àð\ð ð\ð 'ð	\ð
 ð\ð 'ð\ð ð\ð "ð\ð "ð\ð ð\ð 
ñ\r2   c	                óø  € V P                  WGV4      p
Ve   TMV P                  P                  pV'       g   \        P                  ! R\
        ^R7       V P                  WE4      p\        P                  ! V	4       V	P                  RR4       V	P                  RR4       V	P                  R4      '       g5   \        P                  ! RV4       \        P                  ! R	\        ^R7       \        P                  ! R
W4       \        P                  RWV4        V P                   P"                  ! RRVRVRVRV
RVRV/V	B pT P5                  YÑY,4       T#   \$         d.   p\        P'                  RYT4       RT 2p\)        T4      ThRp?i\*         d.   p\        P-                  RYâT4       RT 2p\/        T4      ThRp?i\0         d.   p\        P-                  RYâT4       RT 2p\3        T4      ThRp?ii ; i)aù  Perform the actual network request using the persistent HTTP session.

This method acts as the core orchestrator, handling telemetry extraction,
payload serialization, security guardrails, and centralized logging.

Args:
    method (HttpMethod): The HTTP method.
    url (str): The fully constructed API URL.
    filters (dict[str, Any] | None, optional): Query parameters.
    data (PayloadType, optional): Request payload.
    headers (dict[str, str] | None, optional): Custom HTTP headers.
    timeout (TimeoutType, optional): Request timeout.
    ensure_ascii (bool | None, optional): Deprecated. Ensure ASCII encoding.
    data_encoding (str | None, optional): Deprecated. Data encoding string.
    **kwargs (Any): Additional arguments passed to `requests.Session.request`.

Returns:
    requests.Response: The HTTP response from the Mailjet API.

Raises:
    TimeoutError: If the API request times out.
    CriticalApiError: If a connection failure occurs.
    ApiError: For other unhandled network exceptions.
Nz”Passing 'timeout=None' allows infinite socket blocking and is deprecated (CWE-400). Explicit timeouts will be strictly enforced in Mailjet SDK v2.0.rF   Úallow_redirectsFÚverifyTzmailjet.api.tls_disabledzDMailjet API TLS verification is disabled. This permits MITM attacks.zmailjet.api.requestzSending Request: %s %s%srë   rf   Úparamsrl   r¨   rx   zTimeout Error: %s %s%sz"Request to Mailjet API timed out: z Connection Error: %s | URL: %s%sz"Connection to Mailjet API failed: z!Request Exception: %s | URL: %s%sz2An unexpected Mailjet API network error occurred: r*   )Ú_prepare_payloadrÙ   rx   rI   rJ   rK   Ú_extract_telemetryr   Úcheck_request_securityÚ
setdefaultrý   rR   ÚauditÚRuntimeWarningÚloggerr_   r  re   ÚRequestsTimeoutÚ	exceptionr!   ÚRequestsConnectionErrorÚcriticalr   r   r   Ú_log_response)r�   rë   rf   rì   rl   r¨   rx   rï   rñ   ró   Úrequest_dataÚtimeout_valÚ	trace_strr\   ÚerrorrV   s   &&&&&&&&&,      r3   r÷   ÚClient.api_callð  sù  € ðH ×,Ñ,¨TÀÓOˆØ!(Ò!4‘g¸$¿+¹+×:MÑ:Mˆ÷ Ü�MŠMðSä"Øõ	ð ×+Ñ+¨DÓ:ˆ	ä×,Ò,¨VÔ4ð 	×ÑÐ+¨UÔ3Ø×Ñ˜( DÔ)ð �z‰z˜(×#Ò#Ü�IŠIÐ0°#Ô6Ü�MŠMØVÔXfÐstõô
 	�	Š	Ð'¨Ô5ä�‰Ð/°¸iÔHð	+Ø—|‘|×+Ò+ñ Øðàðð ðð "ð	ð
  ðð $ðð ñˆHð, 	×Ñ˜8¨SÔ<Øˆøô ô 	/Ü×ÑÐ5°vÀIÔNØ6°u°gÐ>ˆCÜ˜sÓ#¨Ð.ûÜ&ô 	3Ü�O‰OÐ>ÀÈIÔVØ6°u°gÐ>ˆCÜ" 3Ó'¨UÐ2ûÜô 	+Ü�O‰OÐ?ÀÈYÔWØFÀuÀgÐNˆCÜ˜3“- UÐ*ûð	+ús<   Ä(E ÅG9Å (FÆG9ÆG9Æ(F>Æ>G9ÇG9Ç(G4Ç4G9c               ó(   € V ^8„  d   QhRRRRRRRR/# )r=   rl   r   rï   rð   rñ   rò   rA   r*   )rC   s   "r3   rD   r   Q  s)   € ÷ ñ ˜sð °+ð Èjð Ð]`ñ r2   c                óÚ   € \        V \        \        34      '       g   V # / pVe   WR&   \        P                  ! V 3/ VB pVe(   \        V\
        4      '       d   VP                  V4      # V# )a  Format request payload, supporting deprecated legacy serialization.

Args:
    data (Any): Input data.
    ensure_ascii (bool | None): ASCII serialization flag.
    data_encoding (str | None): Target encoding string.

Returns:
    Any: The formatted payload as string, bytes, or None.
rï   )rŒ   r¤   rQ  rb   Údumpsrt   Úencode)rl   rï   rñ   Údump_kwargsrl  s   &&&  r3   r`  ÚClient._prepare_payloadP  si   € ô ˜$¤¤t ×-Ò-ØˆKà&(ˆØÒ#Ø*6˜Ñ'ä—z’z $Ñ6¨+Ñ6ˆàÒ$¬°LÄ#×)FÒ)Fà×&Ñ& }Ó5Ð5àÐr2   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r=   r\   r]   rë   rt   rf   rn  rA   r{   r*   )rC   s   "r3   rD   r   l  s2   € ÷ ñ Ð 1ð ¸3ð ÀSð ÐUXð Ð]añ r2   c                ó  €  V P                   R8¬  pV'       d2   \        P                  RV P                   VVV\	        V RR4      4       R# \        P                  R\	        V R^È4      VVV4       R#   \         d    Rp Lni ; i)	zÐCentralized logging for API responses.

Args:
    response (requests.Response): The response object.
    method (str): HTTP method.
    url (str): Target URL.
    trace_str (str): Formatted telemetry string.
i�  Fz%API Error %s | %s %s%s | Response: %srk   r¹   zAPI Success %s | %s %s%srg   N)rg   r-  rf  ro  Úgetattrr_   )r\   rë   rf   rn  Úis_errors   &&&& r3   rk  ÚClient._log_responsek  s…   € ð	Ø×+Ñ+¨sÑ2ˆH÷ Ü�L‰LØ7Ø×$Ñ$ØØØÜ˜ &¨"Ó-öô �L‰LØ*Ü˜ -°Ó5ØØØöøô ô 	ØŠHð	ús   ‚A0 Á0B Á?B c               ó$   € V ^8„  d   QhRRRRRR/# )r=   rl   r   r¨   rä   rA   rt   r*   )rC   s   "r3   rD   r   �  s'   € ÷  Iñ  I ð  IÐ/Dð  IÈñ  Ir2   c           	     ó~  € . p\        \        4      ;_uu_ 4        \        V \        4      '       EdA   V P	                  R/ .4      p\        V\
        4      '       d   V'       d
   V^ ,          M/ pVP	                  R4      ;p'       d)   VP                  R\        P                  ! V4       24       VP	                  R4      ;p'       d)   VP                  R\        P                  ! V4       24       V P	                  R4      ;p'       d)   VP                  R\        P                  ! V4       24       V P	                  R4      ;p'       d)   VP                  R\        P                  ! V4       24       V'       dŒ   VP                  4        Fw  w  ršV	P                  4       pVR	8X  d+   VP                  R\        P                  ! V
4       24       KF  VR
8X  g   KO  VP                  R\        P                  ! V
4       24       Ky  	  RRR4       V'       d   RRP                  V4       R2# R#   + '       g   i     L/; i)zÇExtract tracing identifiers for safe logging.

Args:
    data (Any): The request payload.
    headers (dict[str, str] | None): Request headers.

Returns:
    str: A formatted telemetry trace suffix.
ÚMessagesÚCustomIDz	CustomID=Ú
TemplateIDzTemplateID=zX-MJ-CustomIDzX-Mailjet-Campaignz	Campaign=zx-mj-customidzx-mailjet-campaignNz | Trace: [Ú Ú]r¹   )r   rd   rŒ   r¤   rý   rQ  rÂ   r   Úsanitize_log_traceÚitemsr¡   rÁ   )rl   r¨   Ú	trace_ctxÚmessagesrV   ÚcidÚtidÚcid_rawÚcampr”   ÚvalÚk_lows   &&          r3   ra  ÚClient._extract_telemetryŒ  sÌ  € ð ˆ	Ü”i× Õ Ü˜$¤×%Ó%ØŸ8™8 J°°Ó5�Ü%/°¼$×%?Ò%?ÇH�h˜q–kÐRT�ØŸ'™' *Ó-Ð-�3Ö-Ø×$Ñ$ y´×1QÒ1QÐRUÓ1VÐ0WÐ%XÔYØŸ'™' ,Ó/Ð/�3Ö/Ø×$Ñ$ {´=×3SÒ3SÐTWÓ3XÐ2YÐ%ZÔ[Ø"Ÿh™h Ó7Ð7�7Ö7Ø×$Ñ$ y´×1QÒ1QÐRYÓ1ZÐ0[Ð%\Ô]ØŸ8™8Ð$8Ó9Ð9�4Ö9Ø×$Ñ$ y´×1QÒ1QÐRVÓ1WÐ0XÐ%YÔZçØ '§¡¦‘H�CØŸI™I›K�EØ Ô/Ø!×(Ñ(¨9´]×5UÒ5UÐVYÓ5ZÐ4[Ð)\Ö]ØÐ"6Ö6Ø!×(Ñ(¨9´]×5UÒ5UÐVYÓ5ZÐ4[Ð)\Ö]ñ !0÷ !÷* 8A�˜SŸX™X iÓ0Ð1°Ð3ÐHÀbÐH÷+ !× ús:   šAH,Á##H,ÂA H,ÃA H,Ä	A H,Å
/H,Å:AH,Ç,H,È,H<	)r  rÙ   r  )i­  iô  iö  i÷  iø  ))r˜   ÚcontactÚcontactdataÚcontactmetadataÚcontactslistÚcontact_managemanycontactsÚcontactfilterÚ	csvimportÚlistrecipientÚcampaignÚcampaigndraftÚcampaigndraft_scheduleÚcampaigndraft_sendÚcampaigndraft_testÚcampaigndraft_detailcontentÚ
newsletterÚmessageÚmessagehistoryÚmessageinformationÚtemplateÚ	templatesÚtemplate_detailcontentÚtemplates_contentsÚtokenÚdata_imagesÚstatcountersÚcontactstatisticsÚliststatisticsÚstatistics_linkClickÚstatistics_recipientEspÚgeostatisticsÚtoplinkclickedÚeventcallbackurlÚ
parserouteÚdnsÚ	dns_checkÚsenderÚsender_validateÚapikeyÚuserÚ	myprofiler  )NNNNNN)r,   r-   r.   r/   r0   r   r  r«   r  r0  r5  r=  rC  rH  rM  rS  r<  r÷   r  r`  rk  ra  r1   Ú__classcell__)rB  s   @r3   r   r   /  sË   ø‡ ññ (-ØØÚ2Ø 	Ð*Ø#'ô(€O�_ó ð*5ÐÐ1ó *ðX ƒNØÓØ(Ó(÷1Lõfõõ*õ [õ9÷Kð Kõ!÷\ð@ ôó ðð4 ôó ðð@ ô Ió ö Ir2   )é   é   )r   r   r   r   r   r   r   r   r    r!   r"   rZ   rn   )rü   r  r	  r  )F)NF)KÚ__conditional_annotations__r0   Ú
__future__r   rb   rL   rR   rI   Ú
contextlibr   Údataclassesr   r   Útypesr   Útypingr   r   r	   r
   r   r   r   Úurllib.parser   r(  Úrequests.adaptersr   Úrequests.exceptionsr   ri  r   r   rg  Úurllib3.util.retryr   Úmailjet_rest._versionr   Úmailjet_rest.utils.guardrailsr   r   Úversion_infor   Útyping_extensionsÚ__all__Úintr‚   r�   r#   r«   r¤   rt   rQ  r$   r%   r&   r'   r(   rM   r,   rf  rd   r   r   r!   r   r   r   r"   r   rZ   rn   r   r    r   )r¹  s   @r3   Ú<module>rÉ     så  øðôõ #ã Û Û 
Û Ý Ý !Ý Ý "Ý  Ý Ý Ý Ý Ý Ý Ý ã Ý )Ý JÝ 0Ý :Ý $å -Ý 7÷ Ý#ð ×Ñ�wÔÞå&ò€ð( ˜u� u¨U°E¨\Õ':Õ:¸TÕA€ˆYÓ AØ˜c 3˜h�¨$¨s­)Õ3°cÕ9¸DÕ@€ˆYÓ @ØÐ >Õ?€
ˆIÓ ?à!Ð �*Ó !Ù'¨Ð9KÐ(LÓM€ˆuÓ MÙ'¨¸Ð(FÓG€ˆuÓ Gà	×	Ò	˜8Ó	$€ô9ˆyô 9ô=�xô =ô6�8ô 6ôU˜ô UôU˜ô UôU˜ô UôU�hô UôU˜ô U÷÷6%ñZ �˜tÔ$÷Fð Fó %ðFñ\ �Ô÷QKð QKó ðQK÷r~Ió ~Ir2   