o
    .&ßa 	  ã                   @   s   d d„ Z G dd„ deƒZdS )c                 C   s   t ƒ  | ¡ d S )N)ÚEC2PageSizeInjectorÚregister)Úevent_emitter© r   úD/usr/lib/python3/dist-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   ÚOwnerIdsÚRestorableByUserIds)zdescribe-volumeszdescribe-snapshots)Ú	NextTokenÚ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_OPERATIONSÚregister_lastÚinject)Úselfr   Úevent_templateÚ	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   ÚPageSizeÚ.éÿÿÿÿ)ÚpaginateÚgetÚsplitr   ÚUNIVERSAL_WHITELISTÚDEFAULT_PAGE_SIZE)	r   Ú
event_nameÚparsed_globalsÚcall_parametersÚkwargsÚpagination_configÚoperation_nameÚ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   