
    Pe/                     p    d dl Z d dlZd dlmZmZ d dlmZmZ dZd Z		 d
dZ
	 d
dZd Z	 	 	 	 	 	 	 	 dd	Zy)    N)RequestExampleDocumenterResponseExampleDocumenter)RequestParamsDocumenterResponseParamsDocumenterz'https://docs.aws.amazon.com/goto/WebAPIc                     t        j                  |       }i }|D ]2  \  }}|j                  d      rt        j                  |      s.|||<   4 |S )a  Retrieves an objects public methods

    :param instance: The instance of the class to inspect
    :rtype: dict
    :returns: A dictionary that represents an instance's methods where
        the keys are the name of the methods and the
        values are the handler to the method.
    _)inspect
getmembers
startswithismethod)instanceinstance_membersinstance_methodsnamemembers        6/usr/lib/python3/dist-packages/botocore/docs/method.pyget_instance_public_methodsr      s[     ))(3( 0fs#')/ &0     c                 H   i }|j                   r|j                   j                  }t        |j                               }|"|D ]  }|j	                  |j
                          ||D ]  }||v s|j                  |        d}|rd}| j                  j                  ||       y)a;  Documents the signature of a model-driven method

    :param section: The section to write the documentation to.

    :param name: The name of the method

    :param operation_model: The operation model for the method

    :type include: Dictionary where keys are parameter names and
        values are the shapes of the parameter names.
    :param include: The parameter shapes to include in the documentation.

    :type exclude: List of the names of the parameters to exclude.
    :param exclude: The names of the parameters to exclude from
        documentation.
    N z**kwargs)	input_shapememberslistkeysappendr   removestylestart_sphinx_py_method)	sectionr   operation_modelincludeexcludeparamsparameter_namesr   signature_paramss	            r   document_model_driven_signaturer&   .   s    & F"" ,,446;;=)O 	0F""6;;/	0  	/F(&&v.	/ %MM((/?@r   c                    t        j                  |      }t        |t        j                        rt        t        |j                              }|j                  |   j                  }|t         j                  j                  k(  sJ |j                  j                         }||= |j                  |j                               }t        |      j                  d      }	|	j!                  d      }	| j"                  j%                  ||	       y)a3  Documents the signature of a custom method

    :param section: The section to write the documentation to.

    :param name: The name of the method

    :param method: The handle to the method being documented

    :type include: Dictionary where keys are parameter names and
        values are the shapes of the parameter names.
    :param include: The parameter shapes to include in the documentation.

    :type exclude: List of the names of the parameters to exclude.
    :param exclude: The names of the parameters to exclude from
        documentation.
    )
parameters()N)r	   	signature
isinstancetypesFunctionTypenextiterr(   kind	ParameterPOSITIONAL_OR_KEYWORDcopyreplacevaluesstrlstriprstripr   r   )
r   r   methodr!   r"   r+   
self_param	self_kind
new_paramsr%   s
             r   document_custom_signaturer>   V   s    & !!&)I &%,,-$y3345
((499	G--CCCCC))..0
z"%%1B1B1D%E	9~,,S1'..s3MM((/?@r   c                    | j                   j                  dd       | }t        | ||       | j                  d      }|j	                  d       t        j                  |      }||j                  j                  |       yy)zDocuments a non-data driven method

    :param section: The section to write the documentation to.

    :param method_name: The name of the method

    :param method: The handle to the method being documented
    	qualifierr   method-introN)	contextgetr>   add_new_sectionwritelnr	   getdocr   write_py_doc_string)r   method_namer:   full_method_namemethod_intro_section
doc_strings         r   document_custom_methodrL   y   s~     "//--k2>?}Mg'7@"22>B  $'J""66zB r   c                 .
   |rt        | ||||       | j                  d      }|j                  |       |j                  rE|j                  j                          |j                  d       |j                  j                          |j                  j                  j                  d      }|q|j                  j                          |j                  d       t         d| d|j                   }|j                  j                  d|	       |j                  d
       | j                  d      }|j                  j                          |j                  j!                  d       d|j#                         |j%                         |j'                         di}|j(                  rLt+        |j                  j,                  |j                  ||      j/                  ||j(                  |||       nH|j                  j                          |j                  j1                          |j                  |dz          | j                  d      }|j(                  rJt3        |j                  j,                  |j                  ||      j5                  ||j(                  ||       | j                  d      }|j                  j7                          |j8                  0|
r-|j                  d       |j                  j7                          |j                  d       |j                  j;                          |j                  j7                          |j'                         }|rV|j                  d      }|j                  j                          |j                  d       |j                  j7                          |j                  d      }|j                  j7                          |j                  j!                  d       |j                  j                          t=        |j                  j,                  |j                  ||      j/                  ||j8                  ||	       |j                  d      }|j                  j7                          |j                  j!                  d       |j                  j                          t?        |j                  j,                  |j                  ||      j5                  ||j8                  ||	       y|j                  d       y)a.  Documents an individual method

    :param section: The section to write to

    :param method_name: The name of the method

    :param operation_model: The model of the operation

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

    :param example_prefix: The prefix to use in the method example.

    :type include_input: Dictionary where keys are parameter names and
        values are the shapes of the parameter names.
    :param include_input: The parameter shapes to include in the
        input documentation.

    :type include_output: Dictionary where keys are parameter names and
        values are the shapes of the parameter names.
    :param include_input: The parameter shapes to include in the
        output documentation.

    :type exclude_input: List of the names of the parameters to exclude.
    :param exclude_input: The names of the parameters to exclude from
        input documentation.

    :type exclude_output: List of the names of the parameters to exclude.
    :param exclude_input: The names of the parameters to exclude from
        output documentation.

    :param document_output: A boolean flag to indicate whether to
        document the output.

    :param include_signature: Whether or not to include the signature.
        It is useful for generating docstrings.
    )r!   r"   rA   zThis operation is deprecated and may not function as expected. This operation should not be used going forward and is only kept for the purpose of backwards compatiblity.uidNz
See also: /zAWS API Documentation)titlelinkr   zrequest-examplezRequest Syntaxspecial_shape_types)streaming_input_shapestreaming_output_shapeeventstream_output_shape)service_nameoperation_nameevent_emitterrB   )prefixr!   r"   z()zrequest-paramsreturnz:rtype: dictz
:returns: zevent-streamzThe response of this operation contains an :class:`.EventStream` member. When iterated the :class:`.EventStream` will yield events based on the structure below, where only one of the top level keys will be present for any given event.zresponse-examplezResponse SyntaxdescriptionzResponse Structurez:returns: None) r&   rD   include_doc_string
deprecatedr   start_dangerrE   
end_dangerservice_modelmetadatarC   new_paragraphwriteAWS_DOC_BASEr   external_linkboldget_streaming_inputget_streaming_outputget_event_stream_outputr   r   rV   document_examplestart_codeblockr   document_paramsnew_lineoutput_shapeindentr   r   )r   rH   r    rX   method_descriptionexample_prefixinclude_inputinclude_outputexclude_inputexclude_outputdocument_outputinclude_signaturerJ   service_uidrQ   example_sectionrB   request_params_sectionreturn_sectionevent_stream_outputevent_sectionreturn_example_sectionreturn_description_sections                          r   document_model_driven_methodr      s   f '!!	
 #22>B++,>?!!""//1$$J	

 	""--/!//88<<UCK""002""<0qQ/C/C.DE""00) 	1 	
 	$$R( --.?@O'')/0 	%4%H%H%J&5&J&J&L(7(O(O(Q 
G "" (66CC*//'		

 
''!!!  
 	++---/nt34 %445EF""(66CC*//'		

 /"''!!	  
 ,,X6N!!###/O^,%%'\*##%%%' .EEG*::>JM--/7 ((* "0!?!?"
 	$$--/$$))*;<$$224!(66CC*//'		

 
"((""	  
 &4%C%C&
" 	#((113"((--.BC"((668 (66CC*//'		

 /&((""	  
 	-.r   )NN)NNNNNNTT)r	   r-   botocore.docs.exampler   r   botocore.docs.paramsr   r   rd   r   r&   r>   rL   r    r   r   <module>r      sa     
 9& ;?%AR 26 AFC. }/r   