
                         l    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e      Z	 dd	Zy
)    )
xform_name)get_service_module_name)document_model_driven_method)BaseDocumenter)get_resource_ignore_params)add_resource_type_overviewc                   $     e Zd Z fdZd Z xZS )WaiterResourceDocumenterc                 :    t         t        |   |       || _        y )N)superr
   __init___service_waiter_model)selfresourceservice_waiter_model	__class__s      $lib/third_party/boto3/docs/waiter.pyr   z!WaiterResourceDocumenter.__init__   s    &6x@%9"    c           	         | j                   j                  j                  j                  }t	        |ddd       g }|| j
                  d<   |D ]  }|j                  |j                        }|j                  |j                         t        || j                  | j                   j                  j                  j                  j                  | j                  || j                          y )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_sections         r   document_resource_waitersz2WaiterResourceDocumenter.document_resource_waiters   s    ..%%44<<"#.&	( %0	"F$44V[[ANv{{+$&"11"nn1188==DD"11&,%)%?%? r   )__name__
__module____qualname__r   r0   __classcell__)r   s   @r   r
   r
      s    :r   r
   c                    |j                  |j                        }|j                  |j                        }t	        |j
                        }	t        |      }
d|ddj                  |j                  j                  d      dd        d|
dt        |j                        d|
d	t        |j                        d
|j                  d|j                  d}t        |      d|j                  }t        | |j                  |||||	|       d| j                  v rC| j                  d      }|j!                          |j#                          |j%                  d       y y )NzWaits until this z is  _   z. This method calls :py:meth:`z.Waiter.z.wait` which polls. :py:meth:`z.Client.z` every zI seconds until a successful state is reached. An error is returned after z failed checks..)r   method_nameoperation_modelr   example_prefixmethod_descriptionexclude_inputinclude_signaturereturnz:returns: None)
get_waiterwaiter_namer;   	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_modelr;   ignore_paramsservice_module_namer   r<   return_sections                 r   r(   r(   3   sI    (22))+L#33 O //D/K/KLM1-@ 388$9$>$>$D$DS$I!"$MN,889|--. 9 9
	;  	=!#8#=#=?N %:%?%?'#%&#+ 7--- !,,X6!!#**,-. .r   N)T)botocorer   botocore.utilsr   botocore.docs.methodr   boto3.docs.baser   boto3.docs.utilsr   r   r
   r(    r   r   <module>rX      s1      2 = * 7 7~ > FJ(/r   