+
     Ii  c            
       s   ^ 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                s@    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
blobZbytesZ	characterstringdoubleZfloatlongintegermapZdict	structure	timestampZdatetimeget	type_name   &8/usr/lib/python3.14/site-packages/botocore/docs/utils.pypy_type_namer      s=     	X'	vVZ 
c)     c                sN    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   Z123r   r   z'string'r   zb'bytes'Zbooleanz
True|FalseZlistz[...]r   z{...}r   r	   zdatetime(2015, 1, 1)z...r
   r   r   r   
py_defaultr   &   sO     	'5*
<wW+ 
c)Ur   c                sd   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
ZserviceFullNameZserviceAbbreviationZ ZAmazon:i   NNZAWS:i   NNz (Z))metadatar   
startswithZlower)Zservice_modelZofficial_nameZ
short_names   &  r   get_official_service_namer   @   s    
 "**../@AM''++,A2FJX&&^
U##^
j&&(0C0C0EE2j\++r   DocumentedShapec                   s:   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           	     sR   < Vf   . pVf   . pVf   . p\         SV `  V VVVVVV4      # N)Zsuper__new__)Zclsnamer   documentationr   membersrequired_members	__class__s   &&&&&&&r   r   ZDocumentedShape.__new__`   sL     H?G#!w
 	
r    )NNN)	__name__
__module____qualname____firstlineno____doc__r   __static_attributes____classdictcell__Z__classcell__)r   __classdict__s   @@r   r   r   ]   s     L
 
r   c                   s0   a  ] tR t^zt o RR ltR tRtV tR# )AutoPopulatedParamNc                s8    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
r   param_description)selfr   r)      &&&r   __init__ZAutoPopulatedParam.__init__{   s%    	!2$ " %r   c                s   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   r   available_sectionsget_sectiondelete_sectionwritelnr)   r*   
event_namesectionkwargsZdescription_section   &&&, r   document_auto_populated_paramZ0AutoPopulatedParam.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   r(   r   )r   r    r!   r"   r,   r8   r$   r%   r&      @r   r'   r'   z   s     2 2r   r'   c                   s0   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                s    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_nameZset_params_events_example_eventsZadd)r*   Zservice_nameparameter_nameZoperation_namesZparam_templateZexample_templater   s   &&&&   r   r,   Z HideParamFromOperations.__init__   sl      .!e"uEH#D##ND5I$IJ  $$%5t8L%LM $r   c                s    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# )r.   N)r>   r0   r=   r<   r/   r1   )r*   r4   r5   r6   s   &&&,r   
hide_paramZ"HideParamFromOperations.hide_param   s[    ---))*;<G2227#=#==""4#7#78 >r   )r>   r<   r=   N)	r   r    r!   r"   r#   r,   r@   r$   r%   r9   r:   r   r;   r;      s     DN*9 9r   r;   c                   s0   a  ] tR t^t o RtR tR tRtV tR# )AppendParamDocumentationz-Appends documentation to a specific parameterc                s    Wn         W n        R # r   )r<   _doc_string)r*   r?   Z
doc_stringr+   r   r,   Z!AppendParamDocumentation.__init__   s    -%r   c                s    V P                   VP                  9   dJ   VP                  V P                   4      pVP                  R 4      pVP                  V P                  4       R# R# )r-   N)r<   r/   r0   r2   rB   r3   r7   r   append_documentationZ-AppendParamDocumentation.append_documentation   sW    7#=#==))$*>*>?G")"5"56K"L''(8(89 >r   )rB   r<   N)	r   r    r!   r"   r#   r,   rC   r$   r%   r9   r:   r   rA   rA      s     7&: :r   rA   Z
z\nZz\rZ	z\tZz\bZz\fZ|c                 s:    \         V P                  ^ 4      ,          # )r    )	_CONTROLSZgroup)Zmatchr   r   _CONTROLS_MATCH_HANDLERrE      s    U[[^$$r   c                 s6    \         P                  \        V 4      # r   )_ESCAPE_CONTROLS_REZsubrE   )Zvaluer   r   escape_controlsrG      s    ""#:EBBr   )r   r   r   r   r   r   )ZreZcollectionsr   r   r   r   Z_DocumentedShaper   r'   r;   rA   rD   ZcompileZjoinr   ZescaperF   rE   rG   r   r   r   <module>rH      s    
 " *4  
 
& 
:2 2B$9 $9N: : 	%%%%%	 jj#bii*C!DE %Cr   