
    /                     v    S SK r S SKrS SKJrJr  S SKJrJr  SrS r	 S
S jr
 S
S jrS r        SS	 jrg)    N)RequestExampleDocumenterResponseExampleDocumenter)RequestParamsDocumenterResponseParamsDocumenterz'https://docs.aws.amazon.com/goto/WebAPIc                     [         R                  " U 5      n0 nU H>  u  p4UR                  S5      (       a  M  [         R                  " U5      (       d  M:  XBU'   M@     U$ )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        'lib/third_party/botocore/docs/method.pyget_instance_public_methodsr      sW     ))(3(s##'')/& )     c                 j   0 nUR                   (       a  UR                   R                  n[        UR                  5       5      nUb$  U H  nUR	                  UR
                  5        M      Ub!  U H  nXv;   d  M
  UR                  U5        M     SnU(       a  SnU R                  R                  X5        g)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F""6;;/  F(&&v.  %MM((@r   c                    [         R                  " U5      n[        U[        R                  5      (       a  [        [        UR                  5      5      nUR                  U   R                  nU[         R                  R                  :X  d   eUR                  R                  5       nX	 UR                  UR                  5       S9n[        U5      R                  S5      n	U	R!                  S5      n	U R"                  R%                  X5        g)a  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
"%%1B1B1D%E	9~,,S1'..s3MM((@r   c                 
   U R                   R                  SS5       U 3n[        XU5        U R                  S5      nUR	                  S5        [
        R                  " U5      nUb  UR                  R                  U5        gg)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@"22>B  $'J""66zB r   c                 2
   U(       a  [        U UUUUS9  U R                  S5      nUR                  U5        UR                  (       aE  UR                  R                  5         UR                  S5        UR                  R                  5         UR                  R                  R                  S5      nUbn  UR                  R                  5         UR                  S5        [         SU SUR                   3nUR                  R                  SUS	9  UR                  S
5        U R                  S5      nUR                  R                  5         UR                  R!                  S5        SUR#                  5       UR%                  5       UR'                  5       S.0nUR(                  (       aF  [+        UR                  R,                  UR                  UUS9R/                  UUR(                  UUUS9  OHUR                  R                  5         UR                  R1                  5         UR                  US-   5        U R                  S5      nUR(                  (       aD  [3        UR                  R,                  UR                  UUS9R5                  UUR(                  UUS9  U R                  S5      nUR                  R7                  5         UR8                  Gb.  U
(       Ga&  UR                  S5        UR                  R7                  5         UR                  S5        UR                  R;                  5         UR                  R7                  5         UR'                  5       nU(       aV  UR                  S5      nUR                  R                  5         UR                  S5        UR                  R7                  5         UR                  S5      nUR                  R7                  5         UR                  R!                  S5        UR                  R                  5         [=        UR                  R,                  UR                  UUS9R/                  UUR8                  UU	S9  UR                  S5      nUR                  R7                  5         UR                  R!                  S5        UR                  R                  5         [?        UR                  R,                  UR                  UUS9R5                  UUR8                  UU	S9  gUR                  S5        g)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   