+
    i              
          ^ RI t ^ RIHt R tR tR t]! R. RO4      t ! R R]4      t ! R R	4      t ! R
 R4      t	 ! R R4      t
RRRRRRRRRR/t] P                  ! RP                  ]! ] P                  ]4      4      4      tR tR tR# )    N)
namedtuplec                @    RRRRRRRRR	R
RR
RR/P                  W 4      # )zGet the Python type name for a given model type.

    >>> py_type_name('list')
    'list'
    >>> py_type_name('structure')
    'dict'

:rtype: string
blobbytes	characterstringdoublefloatlongintegermapdict	structure	timestampdatetimeget	type_names   &5/usr/lib/python3/dist-packages/botocore/docs/utils.pypy_type_namer      s=     	X'	vVZ 
c)     c                N    RRRRRRRRRR	R
RRRRRRRRR/
P                  V R4      # )zGet the Python default value for a given model type.

    >>> py_default('string')
    ''string''
    >>> py_default('list')
    '[...]'
    >>> py_default('unknown')
    '...'

:rtype: string
r	   z123.0r   123r   r   z'string'r   zb'bytes'booleanz
True|Falselistz[...]r   z{...}r   r   zdatetime(2015, 1, 1)z...r   r   s   &r   
py_defaultr   &   sO     	'5*
<wW+ 
c)Ur   c                d   V P                   P                  R4      pV P                   P                  RR4      pVP                  R4      '       d
   VR,          pVP                  R4      '       d
   VR,          pV'       d1   VP                  4       VP                  4       9  d   VRV R	2,          pV# )
zoGenerate the official name of an AWS Service

:param service_model: The service model representing the service
serviceFullNameserviceAbbreviation Amazon:   NNAWS:   NNz ())metadatar   
startswithlower)service_modelofficial_name
short_names   &  r   get_official_service_namer-   @   s    
 "**../@AM''++,A2FJX&&^
U##^
j&&(0C0C0EE2j\++r   DocumentedShapec                   :   a a ] tR t^]t oRtRV 3R lltRtVtV ;t# )r.   zBUse this class to inject new shapes into a model for documentationc           	     R   < Vf   . pVf   . pVf   . p\         SV `  V VVVVVV4      # N)super__new__)clsnamer   documentationr'   membersrequired_members	__class__s   &&&&&&&r   r3   DocumentedShape.__new__`   sL     H?G#!w
 	
r    )NNN)	__name__
__module____qualname____firstlineno____doc__r3   __static_attributes____classdictcell____classcell__)r9   __classdict__s   @@r   r.   r.   ]   s     L
 
r   c                   0   a  ] tR t^zt o RR ltR tRtV tR# )AutoPopulatedParamNc                8    Wn         W n        Vf
   RV n        R # R # )Nz{Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
r5   param_description)selfr5   rI   s   &&&r   __init__AutoPopulatedParam.__init__{   s%    	!2$ " %r   c                   VP                  R4      '       d   V P                  VP                  9   dl   VP                  V P                  4      pRVP                  9   d   VP	                  R4       VP                  R4      pVP                  V P                  4       R# R# VP                  R4      '       dL   VP                  R4      pV P                  VP                  9   d   VP	                  V P                  4       R# R# R# )zDocuments auto populated parameters

It will remove any required marks for the parameter, remove the
parameter from the example, and add a snippet about the parameter
being autopopulated in the description.
zdocs.request-paramszis-requiredparam-documentationzdocs.request-examplestructure-valueN)r(   r5   available_sectionsget_sectiondelete_sectionwritelnrI   rJ   
event_namesectionkwargsdescription_sections   &&&, r   document_auto_populated_param0AutoPopulatedParam.document_auto_populated_param   s       !677yyG666!--dii8 G$>$>>**=9&-&9&9)'# $++D,B,BC 7 ""#9::))*;<GyyG666&&tyy1 7 ;r   rH   r1   )r<   r=   r>   r?   rK   rY   rA   rB   rD   s   @r   rF   rF   z   s     2 2r   rF   c                   0   a  ] tR t^t o RtR tR tRtV tR# )HideParamFromOperationsa.  Hides a single parameter from multiple operations.

This method will remove a parameter from documentation and from
examples. This method is typically used for things that are
automatically populated because a user would be unable to provide
a value (e.g., a checksum of a serialized XML request body).c                    W n         \        4       V n        \        4       V n        RpRpV FI  pV P                  P	                  WAV3,          4       V P                  P	                  WQV3,          4       KK  	  R# )z
:type service_name: str
:param service_name: Name of the service to modify.

:type parameter_name: str
:param parameter_name: Name of the parameter to modify.

:type operation_names: list
:param operation_names: Operation names to modify.
z*docs.request-params.%s.%s.complete-sectionz+docs.request-example.%s.%s.complete-sectionN)_parameter_nameset_params_events_example_eventsadd)rJ   service_nameparameter_nameoperation_namesparam_templateexample_templater5   s   &&&&   r   rK    HideParamFromOperations.__init__   sl      .!e"uEH#D##ND5I$IJ  $$%5t8L%LM $r   c                    WP                   9   d   VP                  R 4      pMWP                  9  d   R# V P                  VP                  9   d   VP                  V P                  4       R# R# )rO   N)rb   rQ   ra   r_   rP   rR   )rJ   rU   rV   rW   s   &&&,r   
hide_param"HideParamFromOperations.hide_param   s[    ---))*;<G2227#=#==""4#7#78 >r   )rb   r_   ra   N)	r<   r=   r>   r?   r@   rK   rk   rA   rB   r[   s   @r   r]   r]      s     DN*9 9r   r]   c                   0   a  ] tR t^t o RtR tR tRtV tR# )AppendParamDocumentationz-Appends documentation to a specific parameterc                    Wn         W n        R # r1   )r_   _doc_string)rJ   re   
doc_strings   &&&r   rK   !AppendParamDocumentation.__init__   s    -%r   c                    V P                   VP                  9   dJ   VP                  V P                   4      pVP                  R 4      pVP                  V P                  4       R# R# )rN   N)r_   rP   rQ   rS   rp   rT   s   &&&, r   append_documentation-AppendParamDocumentation.append_documentation   sW    7#=#==))$*>*>?G")"5"56K"L''(8(89 >r   )rp   r_   N)	r<   r=   r>   r?   r@   rK   rt   rA   rB   r[   s   @r   rn   rn      s     7&: :r   rn   
z\nz\r	z\tz\bz\f|c                 :    \         V P                  ^ 4      ,          # )r   )	_CONTROLSgroup)matchs   &r   _CONTROLS_MATCH_HANDLERr      s    U[[^$$r   c                 6    \         P                  \        V 4      # r1   )_ESCAPE_CONTROLS_REsubr   )values   &r   escape_controlsr      s    ""#:EBBr   )r5   r   r6   r'   r7   r8   )recollectionsr   r   r   r-   _DocumentedShaper.   rF   r]   rn   r}   compilejoinr   escaper   r   r   r;   r   r   <module>r      s    
 " *4  
 
& 
:2 2B$9 $9N: : 	%%%%%	 jj#bii*C!DE %Cr   