Ë
    £ªði=+  ã                   óü   — 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 d dl	m
Z
 d dlmZ  e j                  e«      Z G d„ de«      Z G d„ d	e«      Z G d
„ de«      Zd„ Z G d„ d«      Z G d„ d«      Z G d„ d«      Zy)é    N)Ú
xform_name)ÚBotoCoreErrorÚConnectionErrorÚHTTPClientError)ÚOperationNotFoundError)ÚCachedPropertyc                   ó   — e Zd Zy)ÚEndpointDiscoveryExceptionN)Ú__name__Ú
__module__Ú__qualname__© ó    úi/var/www/acinvestment.org/public_html/aci/backend/venv/lib/python3.12/site-packages/botocore/discovery.pyr
   r
      s   „ Ør   r
   c                   ó   — e Zd ZdZdZy)ÚEndpointDiscoveryRequiredzBEndpoint Discovery is disabled but is required for this operation.zAEndpoint Discovery is not enabled but this operation requires it.N©r   r   r   Ú__doc__Úfmtr   r   r   r   r      s
   „ ÙLà
M�Cr   r   c                   ó   — e Zd ZdZdZy)ÚEndpointDiscoveryRefreshFailedz=Endpoint Discovery failed to the refresh the known endpoints.z<Endpoint Discovery failed to refresh the required endpoints.Nr   r   r   r   r   r   #   s
   „ ÙGà
H�Cr   r   c                 óX   — | j                   }|r|j                  d«      r
t        «       ‚y y )NÚrequired)Úendpoint_discoveryÚgetr   )ÚmodelÚkwargsr   s      r   Ú,block_endpoint_discovery_required_operationsr   )   s1   € Ø×1Ñ1ÐÙÐ0×4Ñ4°ZÔ@Ü'Ó)Ð)ð AÐr   c                   óL   — e Zd Zd„ Zed„ «       Zed„ «       Zd„ Zd„ Zd„ Z	d	d„Z
y)
ÚEndpointDiscoveryModelc                 ó   — || _         y ©N)Ú_service_model)ÚselfÚservice_models     r   Ú__init__zEndpointDiscoveryModel.__init__0   s
   € Ø+ˆÕr   c                 óX   — | j                   j                  }t        |j                  «      S r"   )r#   Úendpoint_discovery_operationr   Úname)r$   Údiscovery_operations     r   Údiscovery_operation_namez/EndpointDiscoveryModel.discovery_operation_name3   s&   € à"×1Ñ1×NÑNÐÜÐ-×2Ñ2Ó3Ð3r   c                 ó¨   — | j                   j                  }g }|j                  r-t        |j                  j                  j                  «       «      }|S r"   )r#   r(   Úinput_shapeÚlistÚmembersÚkeys)r$   r*   r0   s      r   Údiscovery_operation_keysz/EndpointDiscoveryModel.discovery_operation_keys8   sG   € à"×1Ñ1×NÑNÐØˆØ×*Ò*ÜÐ+×7Ñ7×?Ñ?×DÑDÓFÓGˆDØˆr   c                 ó�   — 	 | j                   j                  |«      }|j                  j                  dd«      S # t        $ r Y yw xY w)Nr   F)r#   Úoperation_modelr   r   r   )r$   Úoperation_namer3   s      r   Údiscovery_required_forz-EndpointDiscoveryModel.discovery_required_for@   sM   € ð	Ø"×1Ñ1×AÑAØóˆOð #×5Ñ5×9Ñ9¸*ÀeÓLÐLøÜ%ò 	Ùð	ús   ‚69 ¹	AÁAc                 óâ   — | j                   }|j                  d«      s$|j                  dd «       |j                  dd «       |j                  «       D ��ci c]  \  }}||v sŒ||“Œ c}}S c c}}w )NÚIdentifiersÚ	Operation)r1   r   ÚpopÚitems)r$   r   Ú
input_keysÚkÚvs        r   Údiscovery_operation_kwargsz1EndpointDiscoveryModel.discovery_operation_kwargsI   s]   € Ø×2Ñ2ˆ
à�z‰z˜-Ô(Ø�J‰J�{ DÔ)Ø�J‰J�} dÔ+Ø!'§¡£×C™˜˜A°1¸
²?��1‘ÓCÐCùÓCs   ÁA+Á"A+c                 ó:   — | j                  |j                  |«      S r"   )Ú_gather_idsr-   ©r$   Ú	operationÚparamss      r   Úgather_identifiersz)EndpointDiscoveryModel.gather_identifiersQ   s   € Ø×Ñ 	× 5Ñ 5°vÓ>Ð>r   Nc                 óð   — |€i }|j                   j                  «       D ]T  \  }}|j                  j                  d«      r	||   ||<   Œ*|j                  dk(  sŒ:||v sŒ?| j                  |||   |«       ŒV |S )NÚendpointdiscoveryidÚ	structure)r/   r:   Úmetadatar   Ú	type_namer@   )r$   ÚshaperC   ÚidsÚmember_nameÚmember_shapes         r   r@   z"EndpointDiscoveryModel._gather_idsT   sˆ   € ð ˆ;ØˆCØ).¯©×)<Ñ)<Ó)>ò 	IÑ%ˆK˜Ø×$Ñ$×(Ñ(Ð)>Ô?Ø#)¨+Ñ#6��KÒ à×&Ñ&¨+Ó5¸+ÈÒ:Oà× Ñ  ¨v°kÑ/BÀCÕHð	Ið ˆ
r   r"   )r   r   r   r&   r   r+   r1   r5   r>   rD   r@   r   r   r   r    r    /   sD   „ ò,ð ñ4ó ð4ð ñó ðòòDò?ôr   r    c                   óX   — e Zd Z	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zy)ÚEndpointDiscoveryManagerNc                 óä   — |€i }|| _         i | _        |€t        j                  }|| _        || _        t        j                  |«      | _        t        |j                  j                  «      | _        y r"   )Ú_cacheÚ_failed_attemptsÚtimeÚ_timeÚ_always_discoverÚweakrefÚproxyÚ_clientr    Úmetar%   Ú_model)r$   ÚclientÚcacheÚcurrent_timeÚalways_discovers        r   r&   z!EndpointDiscoveryManager.__init__d   sc   € ð ˆ=ØˆEØˆŒØ "ˆÔØÐÜŸ9™9ˆLØ!ˆŒ
Ø /ˆÔô —}‘} VÓ,ˆŒÜ,¨V¯[©[×-FÑ-FÓGˆ�r   c                 óv   — |d   }| j                  «       }|D ]  }|j                  d«      }||dz  z   |d<   Œ  |S )NÚ	EndpointsÚCachePeriodInMinutesé<   Ú
Expiration)rT   r   )r$   ÚresponseÚ	endpointsr]   ÚendpointÚ
cache_times         r   Ú_parse_endpointsz)EndpointDiscoveryManager._parse_endpointsu   sR   € Ø˜[Ñ)ˆ	Ø—z‘z“|ˆØ!ò 	DˆHØ!Ÿ™Ð&<Ó=ˆJØ%1°JÀ±OÑ%CˆH�\Ò"ð	Dð Ðr   c                 ój   — t        |t        «      r"t        t        |j	                  «       «      «      S |S r"   )Ú
isinstanceÚdictÚtupleÚsortedr:   )r$   Úvalues     r   Ú_cache_itemz$EndpointDiscoveryManager._cache_item}   s'   € Ü�eœTÔ"Üœ §¡£Ó.Ó/Ð/àˆLr   c                 ó’   ‡ —  ‰ j                   j                  di |¤Ž}t        ˆ fd„t        |j	                  «       «      D «       «      S )Nc              3   óF   •K  — | ]  \  }}‰j                  |«      –— Œ y ­wr"   )ro   )Ú.0r<   r=   r$   s      €r   ú	<genexpr>z=EndpointDiscoveryManager._create_cache_key.<locals>.<genexpr>…   s    øè ø€ ÒL©T¨Q°�T×%Ñ% a×(ÑLùs   ƒ!r   )rZ   r>   rl   rm   r:   )r$   r   s   ` r   Ú_create_cache_keyz*EndpointDiscoveryManager._create_cache_keyƒ   s8   ø€ Ø7�—‘×7Ñ7ÑA¸&ÑAˆÜÓL´V¸F¿L¹L»NÓ5KÔLÓLÐLr   c                 ó:   — | j                   j                  ||«      S r"   )rZ   rD   rA   s      r   rD   z+EndpointDiscoveryManager.gather_identifiers‡   s   € Ø�{‰{×-Ñ-¨i¸Ó@Ð@r   c                 ó`   —  | j                   di |¤Ž}|| j                  v r| j                  |= y y )Nr   )rt   rQ   )r$   r   Ú	cache_keys      r   Údelete_endpointsz)EndpointDiscoveryManager.delete_endpointsŠ   s4   € Ø*�D×*Ñ*Ñ4¨VÑ4ˆ	Ø˜Ÿ™Ñ#Ø—‘˜IÑ&ð $r   c                 óÎ   —  | j                   j                  di |¤Ž}| j                   j                  }t        | j                  |«      }t
        j                  d|«        |di |¤ŽS )Nz%Discovering endpoints with kwargs: %sr   )rZ   r>   r+   ÚgetattrrX   ÚloggerÚdebug)r$   r   r4   r*   s       r   Ú_describe_endpointsz,EndpointDiscoveryManager._describe_endpoints�   sZ   € ð 8�—‘×7Ñ7ÑA¸&ÑAˆØŸ™×=Ñ=ˆÜ% d§l¡l°NÓCÐÜ�‰Ð<¸fÔEÙ"Ñ, VÑ,Ð,r   c                 ó–   — || j                   vry | j                  «       }| j                   |   D �cg c]  }||d   k  sŒ|‘Œ c}S c c}w )Nrc   )rQ   rT   )r$   ÚkeyÚnowÚes       r   Ú_get_current_endpointsz/EndpointDiscoveryManager._get_current_endpoints˜   sD   € Ø�d—k‘kÑ!ØØ�j‰j‹lˆØŸ;™; sÑ+ÖE�a¨s°Q°|±_Ó/D’ÒEÐEùÒEs
   ±A¿Ac                 ó2  —  | j                   di |¤Ž}	  | j                  di |¤Ž}| j                  |«      }|| j                  |<   | j                  j                  |d «       |S # t        t        f$ r# | j                  «       dz   | j                  |<   Y y w xY w)Nrb   r   )	rt   r}   rh   rQ   rR   r9   r   r   rT   )r$   r   rw   rd   re   s        r   Ú_refresh_current_endpointsz3EndpointDiscoveryManager._refresh_current_endpointsž   s�   € Ø*�D×*Ñ*Ñ4¨VÑ4ˆ	ð	Ø/�t×/Ñ/Ñ9°&Ñ9ˆHØ×-Ñ-¨hÓ7ˆIØ%.ˆD�K‰K˜	Ñ"Ø×!Ñ!×%Ñ% i°Ô6ØÐøÜ¤Ð1ò 	Ø/3¯z©z«|¸bÑ/@ˆD×!Ñ! )Ñ,Ùð	ús   ”AA$ Á$/BÂBc                 ó€   — || j                   v r0| j                  «       }|| j                   |   k  ry| j                   |= y)NTF)rR   rT   )r$   rw   r€   s      r   Ú_recently_failedz)EndpointDiscoveryManager._recently_failedª   sB   € Ø˜×-Ñ-Ñ-Ø—*‘*“,ˆCØ�T×*Ñ*¨9Ñ5Ò5ØØ×%Ñ% iÐ0Ør   c                 ó   — |d   d   S )Nr   ÚAddressr   )r$   re   s     r   Ú_select_endpointz)EndpointDiscoveryManager._select_endpoint²   s   € Ø˜‰|˜IÑ&Ð&r   c                 óZ  — |d   }| j                   j                  |«      }| j                  s|st        j	                  d|«       y  | j
                  di |¤Ž}| j                  |«      }|r| j                  |«      S | j                  |«      }|s% | j                  di |¤Ž}|r| j                  |«      S t        j	                  d|«       | j                  j                  |d «      }|r| j                  |«      S |r1|r% | j                  di |¤Ž}|r| j                  |«      S t        «       ‚y )Nr8   zAOptional discovery disabled. Skipping discovery for Operation: %sz%Endpoint Discovery has failed for: %sr   )rZ   r5   rU   r{   r|   rt   r‚   r‰   r†   r„   rQ   r   r   )r$   r   rB   Údiscovery_requiredrw   re   Úrecently_failedÚstale_entriess           r   Údescribe_endpointz*EndpointDiscoveryManager.describe_endpointµ   s/  € Ø˜;Ñ'ˆ	Ø!Ÿ[™[×?Ñ?À	ÓJÐà×$Ò$Ñ-?ä�L‰LØSØôð ð +�D×*Ñ*Ñ4¨VÑ4ˆ	Ø×/Ñ/°	Ó:ˆ	ÙØ×(Ñ(¨Ó3Ð3à×/Ñ/°	Ó:ˆÙà7˜×7Ñ7ÑA¸&ÑAˆIÙØ×,Ñ,¨YÓ7Ð7ä�‰Ð<¸fÔEØŸ™Ÿ™¨	°4Ó8ˆÙà×(Ñ(¨Ó7Ð7Ùñ à;˜D×;Ñ;ÑE¸fÑE�	ÙØ×0Ñ0°Ó;Ð;ä0Ó2Ð2àr   )NNT)r   r   r   r&   rh   ro   rt   rD   rx   r}   r‚   r„   r†   r‰   rŽ   r   r   r   rO   rO   c   sE   „ àEIóHò"òòMòAò'ò
-òFò
òò'ó)r   rO   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚEndpointDiscoveryHandlerc                 ó   — || _         y r"   )Ú_manager)r$   Úmanagers     r   r&   z!EndpointDiscoveryHandler.__init__â   s	   € Øˆ�r   c                 ó¾   — |j                  d|› �| j                  «       |j                  d|› �| j                  «       |j                  d|› �| j                  «       y )Nzbefore-parameter-build.zrequest-created.zneeds-retry.)ÚregisterrD   Úregister_firstÚdiscover_endpointÚhandle_retries)r$   ÚeventsÚ
service_ids      r   r•   z!EndpointDiscoveryHandler.registerå   s_   € Ø�‰Ø% j \Ð2°D×4KÑ4Kô	
ð 	×ÑØ˜z˜lÐ+¨T×-CÑ-Cô	
ð 	�‰˜, z lÐ3°T×5HÑ5HÕIr   c                 óh   — |j                   }|€y | j                  j                  ||«      }d|i|d<   y )NÚidentifiersÚ	discovery)r   r’   rD   )r$   rC   r   Úcontextr   r   rK   s          r   rD   z+EndpointDiscoveryHandler.gather_identifiersî   s<   € Ø"×5Ñ5ÐàÐ%ØØ�m‰m×.Ñ.¨u°fÓ=ˆØ -¨sÐ3ˆ�Òr   c                 ó0  — |j                   j                  di «      j                  d«      }|€y | j                  j                  ||¬«      }|€t        j                  d«       y |j                  d«      sd|z   }t        j                  d|«       ||_        y )Nr�   rœ   ©r8   r7   z&Failed to discover and inject endpointÚhttpzhttps://z!Injecting discovered endpoint: %s)rž   r   r’   rŽ   r{   r|   Ú
startswithÚurl)r$   Úrequestr4   r   rK   rf   s         r   r—   z*EndpointDiscoveryHandler.discover_endpointö   s�   € Ø�o‰o×!Ñ! +¨rÓ2×6Ñ6°}ÓEˆØˆ;ØØ—=‘=×2Ñ2Ø$°#ð 3ó 
ˆð ÐÜ�L‰LÐAÔBØØ×"Ñ" 6Ô*Ø! HÑ,ˆHÜ�‰Ð8¸(ÔCØˆ�r   c                 óh  — |€y |\  }}|j                  di «      j                  d«      }|j                  di «      j                  d«      }|dk7  r|dk7  ry |j                  di «      }|j                  di «      j                  d	«      }	|	€y | j                  j                  |j                  |	¬
«       y)NÚResponseMetadataÚHTTPStatusCodeÚErrorÚCodei¥  ÚInvalidEndpointExceptionrž   r�   rœ   r    r   )r   r’   rx   r)   )
r$   Úrequest_dictrd   rB   r   Ú_ÚstatusÚ
error_coderž   rK   s
             r   r˜   z'EndpointDiscoveryHandler.handle_retries  sº   € ØÐØà‰ˆˆ8Ø—‘Ð0°"Ó5×9Ñ9Ð:JÓKˆØ—\‘\ '¨2Ó.×2Ñ2°6Ó:ˆ
Ø�SŠ=˜ZÐ+EÒEØà×"Ñ" 9¨bÓ1ˆØ�k‰k˜+ rÓ*×.Ñ.¨}Ó=ˆØˆ;Øð
 	�‰×&Ñ&Ø—n‘n°#ð 	'ô 	
ð r   N)r   r   r   r&   r•   rD   r—   r˜   r   r   r   r�   r�   á   s   „ ò òJò4òór   r�   )ÚloggingrS   rV   Úbotocorer   Úbotocore.exceptionsr   r   r   Úbotocore.modelr   Úbotocore.utilsr   Ú	getLoggerr   r{   r
   r   r   r   r    rO   r�   r   r   r   ú<module>rµ      s‚   ðó Û Û å ß OÑ OÝ 1Ý )à	ˆ×	Ñ	˜8Ó	$€ô	 ô 	ôNÐ :ô NôIÐ%?ô Iò*÷1ñ 1÷h{ñ {÷|9ò 9r   