o
    6׾g>,                     @   s   d dl 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
 d dlmZ d dlmZmZ G d	d
 d
e
Z	dddZ	dddZ	dddZdS )    N)
xform_name)DocumentStructure)get_instance_public_methods)DocumentedShape)NestedDocumenter)%document_model_driven_resource_method)add_resource_type_overviewget_resource_ignore_paramsc                   @   s   e Zd Zdd Zdd ZdS )CollectionDocumenterc           	      C   s   | j jjj}g }t|dddd || jd< |D ]S}||j t|jdd}|	d}|j
| jd	 |d
|j  ||j |j	|jd| j did}| || tj| j| j | j }|||j qd S )NCollectionszUCollections provide an interface to iterate over and manipulate groups of resources. guide_collections)sectionresource_typedescription
intro_linkcollectionshtml)target
breadcrumbindexz / Collection / 	qualifier.)context)	_resourcemetaresource_modelr   r   
member_mapappendnamer   add_new_sectionstyleref_resource_class_namewriteadd_title_section
class_name_document_collectionospathjoin_root_docs_path_service_name_resource_sub_pathwrite_to_file)	selfr   r   collections_list
collectioncollection_docbreadcrumb_sectioncollection_sectioncollections_dir_path r5   _/var/www/html/backend_erp/backend_erp_env/lib/python3.10/site-packages/boto3/docs/collection.pydocument_collections   s8   
	
z)CollectionDocumenter.document_collectionsc              	   C   s   t t| j|j}t|| i }|jD ]}|||j< qt|D ]8}||}||v rBt|| j	| jj
jj
j|| || jj
jj
jd qt|| j	|| jj
jj
j|| jj
jj
jd qd S )N)r   resource_nameevent_emitterbatch_action_modelcollection_modelservice_model)r   r8   action_namer9   r;   r<   )r   getattrr   r   document_collection_objectbatch_actionssortedr   document_batch_action_resource_namer   clienteventsr<   document_collection_method)r.   r   r0   methodsr@   batch_actionmethodmethod_sectionr5   r5   r6   r&   A   s6   


	z)CollectionDocumenter._document_collectionN)__name__
__module____qualname__r7   r&   r5   r5   r5   r6   r
      s    $r
   Tc                 C   sX   |r| j dd |j }| j| | d|jj d | d|jj d dS )a
  Documents a collection resource object

    :param section: The section to write to

    :param collection_model: The model of the collection

    :param include_signature: Whether or not to include the signature.
        It is useful for generating docstrings.
    r    zA collection of z resources.zA z Collection will include all resources by default, and extreme caution should be taken when performing actions on all resources.N)r   getr   r    start_sphinx_py_attrinclude_doc_stringresourcetype)r   r;   include_signaturefull_collection_namer5   r5   r6   r?   `   s   r?   c                 C   s   | |jj}t|jj}d}	|jrt|jj}	t|}
|j|kr#|}
|	 d|
 d|j	 d|j	 }t
| |j	|||j||||d	 dS )ai  Documents a collection's batch action

    :param section: The section to write to

    :param resource_name: The name of the resource

    :param action_name: The name of collection action. Currently only
        can be all, filter, limit, or page_size

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

    :param batch_action_model: The model of the batch action

    :param collection_model: The model of the collection

    :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   )	r   method_nameoperation_modelr9   method_descriptionexample_prefixexclude_inputresource_action_modelrT   N)rX   request	operationr	   paramsrR   r   rS   service_namer   r   documentation)r   r8   r9   r:   r<   r;   rT   rX   ignore_paramsexample_return_valueexample_resource_namerZ   r5   r5   r6   rB   }   s0   

rB   c              
   C   sf  | |jj}g }|jr|jj}t|}	|j|kr|}	d|jj dt|jj d|	 d|j	 d|dd|jj d|jj dt|jj d|	 d|j	 d	t
|jjdd
|jj dt|jj d|	 d|j	 dtddddg|dd|jj dt|jj d|	 d|j	 dtddddg|dd}
||
v r|
| }td| |||||d| dS dS )a#  Documents a collection method

    :param section: The section to write to

    :param resource_name: The name of the resource

    :param action_name: The name of collection action. Currently only
        can be all, filter, limit, or page_size

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

    :param collection_model: The model of the collection

    :param service_model: The model of the service

    :param include_signature: Whether or not to include the signature.
        It is useful for generating docstrings.
    zCreates an iterable of all z resources in the collection.z_iterator = r   z.all)rY   rZ   r[   zD resources in the collection filtered by kwargs passed to method. A z collection will include all resources by default if no filters are provided, and extreme caution should be taken when performing actions on all resources.z.filterz0Creates an iterable up to a specified amount of z.limitcountintegerz5The limit to the number of resources in the iterable.)r   	type_namera   )rY   rZ   include_inputr[   zs resources in the collection, but limits the number of items returned by each service call by the specified amount.z
.page_sizez1The number of items returned by each service call)allfilterlimit	page_size)r   rW   rX   r9   r\   rT   Nr5   )rX   r]   r^   input_shapemembersr   r`   rR   rS   r   r	   r_   r   r   )r   r8   r=   r9   r;   r<   rT   rX   underlying_operation_membersrd   custom_action_info_dictaction_infor5   r5   r6   rF      sr   


	<
rF   )T)r'   botocorer   botocore.docs.bcdoc.restdocr   botocore.docs.methodr   botocore.docs.utilsr   boto3.docs.baser   boto3.docs.methodr   boto3.docs.utilsr   r	   r
   r?   rB   rF   r5   r5   r5   r6   <module>   s   G
$
@