o
    ܀c                      @   s   d dl mZ d dlmZ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mZmZ G dd	 d	e
Z	
dddZ	
dddZdS )    )
xform_name)document_custom_methoddocument_model_driven_method)OperationModel)get_service_module_name)BaseDocumenter)%document_model_driven_resource_method)add_resource_type_overviewget_resource_ignore_paramsget_resource_public_actionsc                   @   s   e Zd Zdd ZdS )ActionDocumenterc              	   C   s   | j j}i }|D ]}|||j< qt| jj}t|| jd< t|dddd t|D ]B}|	|}|dv rL| j j
rLt||| j| jjjjj| j j
| jd q)||v rct|| j| jjjjj|| | jd q)t||||  q)d S )	NactionsActionszActions call operations on resources.  They may automatically handle the passing in of arguments set from identifiers and some attributes.actions_intro)sectionresource_typedescription
intro_link)loadreload)r   action_nameresource_nameevent_emitter
load_modelservice_model)r   r   r   action_modelr   )_resource_modelr   namer   	_resource	__class__sorted
member_mapr	   add_new_sectionr   document_load_reload_action_resource_namemetaclientevents_service_modeldocument_actionr   )selfr   modeled_actions_listmodeled_actionsmodeled_actionresource_actionsr   action_section r0   </usr/local/lib/python3.10/dist-packages/boto3/docs/action.pydocument_actions   sJ   

z!ActionDocumenter.document_actionsN)__name__
__module____qualname__r2   r0   r0   r0   r1   r      s    r   Tc                 C   sx   | |jj}t|jj}d}|jrt|jj}t|}	|j|kr#|}	d	||	|j
}
t| |j
|||j|
|||d	 dS )a  Documents a resource action

    :param section: The section to write to

    :param resource_name: The name of the resource

    :param event_emitter: The event emitter to use to emit events

    :param action_model: The model of the action

    :param service_model: The model of the service

    :param include_signature: Whether or not to include the signature.
        It is useful for generating docstrings.
    responsez
{} = {}.{})	r   method_nameoperation_modelr   method_descriptionexample_prefixexclude_inputresource_action_modelinclude_signatureN)r8   request	operationr
   paramsresourcer   typeservice_nameformatr   r   documentation)r   r   r   r   r   r=   r8   ignore_paramsexample_return_valueexample_resource_namer:   r0   r0   r1   r)   L   s0   

r)   c           
   	   C   s^   d t|t|jj|}t|}|j|kr|}| d| }	t| |ti ||||	|d dS )a  Documents the resource load action

    :param section: The section to write to

    :param action_name: The name of the loading action should be load or reload

    :param resource_name: The name of the resource

    :param event_emitter: The event emitter to use to emit events

    :param load_model: The model of the load action

    :param service_model: The model of the service

    :param include_signature: Whether or not to include the signature.
        It is useful for generating docstrings.
    zCalls :py:meth:`{}.Client.{}` to update the attributes of the {} resource. Note that the load and reload methods are the same method and can be used interchangeably..)r   r7   r8   r   r9   r:   r=   N)rD   r   r   r>   r?   rC   r   r   )
r   r   r   r   r   r   r=   r   rH   r:   r0   r0   r1   r#   ~   s(   
	

r#   N)T)botocorer   botocore.docs.methodr   r   botocore.modelr   botocore.utilsr   boto3.docs.baser   boto3.docs.methodr   boto3.docs.utilsr	   r
   r   r   r)   r#   r0   r0   r0   r1   <module>   s   4
9