o
    g                     @   sh   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 G dd deZ		dd
dZdS )    )
xform_name)get_service_module_name)document_model_driven_method)BaseDocumenter)get_resource_ignore_params)add_resource_type_overviewc                       s$   e Zd Z fddZdd Z  ZS )WaiterResourceDocumenterc                    s   t t| | || _d S )N)superr   __init___service_waiter_model)selfresourceservice_waiter_model	__class__ O/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/boto3/docs/waiter.pyr
      s   
z!WaiterResourceDocumenter.__init__c              	   C   st   | j jjj}t|dddd g }|| jd< |D ] }||j}||j t	|| j
| j jjjj| j|| jd qd S )NWaiterszNWaiters provide an interface to wait for a resource to reach a specific state.waiters_intro)sectionresource_typedescription
intro_linkwaiters)r   resource_nameevent_emitterservice_modelresource_waiter_modelr   )	_resourcemetaresource_modelr   r   
member_mapadd_new_sectionnameappenddocument_resource_waiter_resource_nameclientevents_service_modelr   )r   r   r   waiter_listwaiterwaiter_sectionr   r   r   document_resource_waiters   s*   
z2WaiterResourceDocumenter.document_resource_waiters)__name__
__module____qualname__r
   r-   __classcell__r   r   r   r   r      s    r   Tc              
   C   s   | |j}||j}t|j}	t|}
d|d|j	ddd  |
t
|j|
t
|j|j|jf }dt
||jf }t| |j|||||	|d d| jv rc| d}|  |  |d d S d S )	NzWaits until this %s is %s. This method calls :py:meth:`%s.Waiter.%s.wait` which polls. :py:meth:`%s.Client.%s` every %s seconds until a successful state is reached. An error is returned after %s failed checks. _   z%s.%s)r   method_nameoperation_modelr   example_prefixmethod_descriptionexclude_inputinclude_signaturereturnz:returns: None)
get_waiterwaiter_namer6   	operationr   paramsr   joinr#   splitr   delaymax_attemptsr   available_sectionsget_section
clear_textremove_all_sectionswrite)r   r   r   r   r   r   r:   waiter_modelr6   ignore_paramsservice_module_namer   r7   return_sectionr   r   r   r%   3   sH   


	
r%   N)T)botocorer   botocore.utilsr   botocore.docs.methodr   boto3.docs.baser   boto3.docs.utilsr   r   r   r%   r   r   r   r   <module>   s   