o
    Ü!d 	  ã                   @   s   d d„ Z G dd„ deƒZdS )c                 C   s   t ƒ  | ¡ d S )N)ÚEC2PageSizeInjectorÚregister)Úevent_emitter© r   úFusr/lib/python3.10/site-packages/awscli/customizations/ec2/paginate.pyÚregister_ec2_page_size_injector   s   r   c                   @   s6   e Zd Zg ddgdœZg d¢ZdZdd„ Zdd	„ Zd
S )r   ZOwnerIdsZRestorableByUserIds)zdescribe-volumeszdescribe-snapshots)Z	NextTokenZDryRunÚPaginationConfigiè  c                 C   s*   d}| j D ]}|| }| || j¡ qdS )z,Register `inject` for each target operation.zcalling-command.ec2.%sN)ÚTARGET_OPERATIONSZregister_lastÚinject)Úselfr   Zevent_templateZ	operationÚeventr   r   r   r   #   s
   
þzEC2PageSizeInjector.registerc           	      K   s€   |j sdS | di ¡}d|v rdS | d¡d }| j |¡}|du r$dS || j }|D ]	}||vr4 dS q+| j|d< ||d< dS )zConditionally inject PageSize.Nr   ZPageSizeÚ.éÿÿÿÿ)ZpaginateÚgetÚsplitr   ÚUNIVERSAL_WHITELISTÚDEFAULT_PAGE_SIZE)	r
   Z
event_nameZparsed_globalsZcall_parametersÚkwargsZpagination_configZoperation_nameZwhitelisted_paramsÚparamr   r   r   r	   *   s    
ÿ
zEC2PageSizeInjector.injectN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r	   r   r   r   r   r      s    þr   N)r   Úobjectr   r   r   r   r   Ú<module>   s   