403Webshell
Server IP : 178.105.222.151  /  Your IP : 216.73.216.38
Web Server : nginx/1.28.3
System : Linux MNK 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.5.4
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/botocore/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/botocore/__pycache__/model.cpython-314.pyc
+
��i[~���Rt^RIHt^RIHtHt^RIHt^RIH	t	^RI
HtHtH
t
^RIHtHtHtHt]!4t!RR]4t!R	R
]4t!RR]4t!R
R]4t!RR]4t!RR4t!RR]4t!RR]4t!RR]4t!RR]4t !RR]4t!!RR]4t"!RR ]4t#!R!R"4t$!R#R$4t%!R%R&4t&!R'R(4t'!R)R*4t(!R+R,4t)R-#).z-Abstractions to interact with service models.)�defaultdict)�
NamedTuple�Union)�resolve_auth_type)�OrderedDict)�MissingServiceIdError�UndefinedModelAttributeError� UnsupportedServiceProtocolsError)�$PRIORITY_ORDERED_SUPPORTED_PROTOCOLS�CachedProperty�hyphenize_service_id�instance_cachec��]tRt^#tRtR#)�NoShapeFoundError�N��__name__�
__module__�__qualname__�__firstlineno__�__static_attributes__r��0/usr/lib/python3/dist-packages/botocore/model.pyrr#���rrc��]tRt^'tRtR#)�InvalidShapeErrorrNrrrrrr'rrrc��]tRt^+tRtR#)�OperationNotFoundErrorrNrrrrrr+rrrc��]tRt^/tRtR#)�InvalidShapeReferenceErrorrNrrrrrr/rrrc�&a�]tRt^3toRtRtVtR#)�	ServiceIdc��\V4#�N)r��selfs&r�	hyphenize�ServiceId.hyphenize4s
��#�D�)�)rrN)rrrrr&r�__classdictcell__��
__classdict__s@rr!r!3s����*�*rr!c�a�]tRt^8toRt.ROt.ROt]tR
Rlt	]
R4t]
R4t]
R4t
RtRt]R	4tR
tVtR#)�Shapez3Object representing a shape from the service model.Nc��WnVR,VnVPRR4VnW nVf\4pW0n/VnR#)a�

:type shape_name: string
:param shape_name: The name of the shape.

:type shape_model: dict
:param shape_model: The shape model.  This would be the value
    associated with the key in the "shapes" dict of the
    service model (i.e ``model['shapes'][shape_name]``)

:type shape_resolver: botocore.model.ShapeResolver
:param shape_resolver: A shape resolver object.  This is used to
    resolve references to other shapes.  For scalar shape types
    (string, integer, boolean, etc.), this argument is not
    required.  If a shape_resolver is not provided for a complex
    type, then a ``ValueError`` will be raised when an attempt
    to resolve a shape is made.

�type�
documentation�N)�name�	type_name�getr/�_shape_model�UnresolvableShapeMap�_shape_resolver�_cache)r%�
shape_name�shape_model�shape_resolvers&&&&r�__init__�Shape.__init__fsK��(�	�$�V�,���(�_�_�_�b�A���'���!�2�3�N�-����rc��VPp/pVPFpW0P9gKW,W#&K!	RV9dVPR4VR&V#)a�Serialization information about the shape.

This contains information that may be needed for input serialization
or response parsing.  This can include:

    * name
    * queryName
    * flattened
    * location
    * payload
    * streaming
    * xmlNamespace
    * resultWrapper
    * xmlAttribute
    * jsonvalue
    * timestampFormat

:rtype: dict
:return: Serialization information about the shape.

�locationNamer1)r4�SERIALIZED_ATTRS�pop)r%�model�
serialization�attrs&   rrB�Shape.serialization�s_��.�!�!���
��)�)�D��(�(�(�&+�k�
�#�*��]�*�$1�$5�$5�n�$E�M�&�!��rc��VPp/pVPFpW0P9gKW,W#&K!	V#)aMMetadata about the shape.

This requires optional information about the shape, including:

    * min
    * max
    * pattern
    * enum
    * sensitive
    * required
    * idempotencyToken
    * document
    * union
    * contextParam
    * clientContextParams
    * requiresLength

:rtype: dict
:return: Metadata about the shape.

)r4�METADATA_ATTRS)r%rA�metadatarCs&   rrG�Shape.metadata�s@��.�!�!�����'�'�D��(�(�(�!&����(��rc�:�VPPR.4#)z�A list of members that are required.

A structure shape can define members that are required.
This value will return a list of required members.  If there
are no required members an empty list is returned.

�required�rGr3r$s&r�required_members�Shape.required_members�s���}�}� � ��R�0�0rc�8�VPPV4#r#�r6�resolve_shape_ref�r%�	shape_refs&&r�_resolve_shape_ref�Shape._resolve_shape_ref�����#�#�5�5�i�@�@rc�P�RVPPRVPR2#)�<�(z)>��	__class__rr1r$s&r�__repr__�Shape.__repr__�s&���4�>�>�*�*�+�1�T�Y�Y�K�r�:�:rc��R#r#rr$s&r�event_stream_name�Shape.event_stream_name�s��r)r7r4r6r/r1r2)r>�	queryName�	flattened�location�payload�	streaming�timestampFormat�xmlNamespace�
resultWrapper�xmlAttribute�eventstream�event�eventheader�eventpayload�	jsonvaluere�	hostLabel)rJ�min�max�pattern�	sensitive�enum�idempotencyToken�error�	exception�endpointdiscoveryid�	retryable�document�union�contextParam�clientContextParams�requiresLengthr#)rrrr�__doc__r?rFr�MAP_TYPEr;rrBrGrLrSr[�propertyr^rr(r)s@rr,r,8s�����=���&�N�$�H� �D����@����:�1��1�A�;����rr,c�pa�]tRt^�to]R4t]R4t]R4t]R4t]R4t	Rt
VtR#)�StructureShapec���VPPRVP44pVP4pVP4Fwr4VP	V4W#&K	V#)�members)r4r3r�itemsrS)r%r��
shape_membersr1rRs&    rr��StructureShape.members�sX���#�#�'�'�	�4�=�=�?�C���
�
��
�&�}�}��O�D�"&�"9�"9�)�"D�M�� /��rc��VPP4F*wrVPPR4'gK(Vu#	R#)riN)r�r�rBr3)r%�member_name�members&  rr^� StructureShape.event_stream_name�s>��#'�<�<�#5�#5�#7��K��#�#�'�'�
�6�6�"�"�$8�rc���VPPRR4'gR#VPPR/4pVPR4pV'dV#VP#)rvFNru�code)rGr3r1)r%�error_metadatar�s&  r�
error_code�StructureShape.error_code�sT���}�}� � ��e�4�4�����*�*�7�B�7���!�!�&�)����K��y�y�rc�:�VPPRR4#)ryFrKr$s&r�is_document_type�StructureShape.is_document_type�s���}�}� � ��U�3�3rc�:�VPPRR4#)rzFrKr$s&r�is_tagged_union�StructureShape.is_tagged_unions���}�}� � ��%�0�0rrN)rrrrrr�r^r�r�r�rr(r)s@rr�r��sg�����������������4��4��1��1rr�c�0a�]tRtRto]R4tRtVtR#)�	ListShapeic�F�VPVPR,4#)r��rSr4r$s&rr��ListShape.members���&�&�t�'8�'8��'B�C�CrrN)rrrrrr�rr(r)s@rr�r�s�����D��Drr�c�@a�]tRtRto]R4t]R4tRtVtR#)�MapShapei
c�F�VPVPR,4#)�keyr�r$s&rr��MapShape.keys���&�&�t�'8�'8��'?�@�@rc�F�VPVPR,4#)�valuer�r$s&rr��MapShape.values���&�&�t�'8�'8��'A�B�BrrN)	rrrrrr�r�rr(r)s@rr�r�
s/�����A��A��C��Crr�c�0a�]tRtRto]R4tRtVtR#)�StringShapeic�:�VPPR.4#)rsrKr$s&rrs�StringShape.enums���}�}� � ���,�,rrN)rrrrrrsrr(r)s@rr�r�s�����-��-rr�c�,a�]tRtRtoV3RltRtVtR#)�StaticContextParameteric�H<�V^8�dQh/S[;R&S[S[S[3,;R&#)�r1r�)�strr�bool)�formatr*s"�r�__annotate__�#StaticContextParameter.__annotate__s#����

�I����s����rrN�rrrr�__annotate_func__rr(r)s@rr�r������rr�c�,a�]tRtRtoV3RltRtVtR#)�ContextParameteri"c�2<�V^8�dQh/S[;R&S[;R&#)r�r1r��r�)r�r*s"�rr��ContextParameter.__annotate__"s����

�I����rrNr�r)s@rr�r�"r�rr�c�,a�]tRtRtoV3RltRtVtR#)�ClientContextParameteri'c�><�V^8�dQh/S[;R&S[;R&S[;R&#)r�r1r.r/r�)r�r*s"�rr��#ClientContextParameter.__annotate__'s&����

�I��

�I����rrNr�r)s@rr�r�'r�rr�c�a�]tRtRtoRtRRltRRltRt]R4t	Rt
]R	4t]R
4t]
R4t]R4t]R
4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4tRt]R4t]P>R4t]R4t Rt!Rt"Vt#R#) �ServiceModeli-zI

:ivar service_description: The parsed service description dictionary.

Nc��WnVPR/4Vn\VPR/44Vn\
VnW n/VnR#)a

:type service_description: dict
:param service_description: The service description model.  This value
    is obtained from a botocore.loader.Loader, or from directly loading
    the file yourself::

        service_description = json.load(
            open('/path/to/service-description-model.json'))
        model = ServiceModel(service_description)

:type service_name: str
:param service_name: The name of the service.  Normally this is
    the endpoint prefix defined in the service_description.  However,
    you can override this value to provide a more convenient name.
    This is done in a few places in botocore (ses instead of email,
    emr instead of elasticmapreduce).  If this value is not provided,
    it will default to the endpointPrefix defined in the model.

rG�shapesN)	�_service_descriptionr3rG�
ShapeResolverr6�NOT_SET�_signature_version�
_service_name�_instance_cache)r%�service_description�service_names&&&rr;�ServiceModel.__init__4sS��*%8�!�+�/�/�
�B�?��
�,��#�#�H�b�1� 
���#*���)��!��rc�8�VPPW4#r#)r6�get_shape_by_name�r%r8�
member_traitss&&&r�	shape_for�ServiceModel.shape_forSs���#�#�5�5��
�	
rc�:�VPPVR4#r#)�_error_code_cacher3)r%r�s&&r�shape_for_error_code�!ServiceModel.shape_for_error_codeXs���%�%�)�)�*�d�;�;rc�P�/pVPFpVPpW!V&K	V#r#)�error_shapesr�)r%�error_code_cache�error_shaper�s&   rr��ServiceModel._error_code_cache[s3�����,�,�K��)�)�D�%0�T�"�-� �rc�8�VPPV4#r#rOrQs&&rrP�ServiceModel.resolve_shape_refcrUrc�L�\VPPR/44#)r���listr�r3r$s&r�shape_names�ServiceModel.shape_namesfs ���D�-�-�1�1�(�B�?�@�@rc��.pVPFIpVPV4pVPPRR4'gK8VP	V4KK	V#)rvF)r�r�rGr3�append)r%r�r8r�s&   rr��ServiceModel.error_shapesjsT�����*�*�J��.�.��4�K��#�#�'�'��U�;�;��#�#�K�0�+��rc��VPR,V,p\Y T4# \d
\T4hi;i��
operations)r��KeyErrorr�OperationModel)r%�operation_namerAs&& r�operation_model�ServiceModel.operation_modelssG��	9��-�-�l�;�N�K�E��e�>�:�:���	9�(��8�8�	9�s�(�?c�:�VPPRR4#�r/r0)r�r3r$s&rr/�ServiceModel.documentation{s���(�(�,�,�_�b�A�Arc�L�\VPPR.44#r�r�r$s&r�operation_names�ServiceModel.operation_namess ���D�-�-�1�1�,��C�D�Drc�N�VPe
VP#VP#)asThe name of the service.

This defaults to the endpointPrefix defined in the service model.
However, this value can be overriden when a ``ServiceModel`` is
created.  If a service_name was not provided when the ``ServiceModel``
was created and if there is no endpointPrefix defined in the
service model, then an ``UndefinedModelAttributeError`` exception
will be raised.

)r��endpoint_prefixr$s&rr��ServiceModel.service_name�s(�����)��%�%�%��'�'�'rc��\VPR44# \d\TPR7hi;i)�	serviceId)r�)r!�_get_metadata_propertyrrr�r$s&r�
service_id�ServiceModel.service_id�s@��	I��T�8�8��E�F�F��+�	I�'�T�5G�5G�H�H�	I�s��">c�\�VPPR4pVf
VPpV#)z�The name to use when computing signatures.

If the model does not define a signing name, this
value will be the endpoint prefix defined in the model.
�signingName)rGr3r�)r%�signing_names& rr��ServiceModel.signing_name�s/���}�}�(�(��7�����/�/�L��rc�$�VPR4#)�
apiVersion�r�r$s&r�api_version�ServiceModel.api_version�s���*�*�<�8�8rc�$�VPR4#)�protocolr�r$s&rr�ServiceModel.protocol�s���*�*�:�6�6rc�$�VPR4#)�	protocolsr�r$s&rr�ServiceModel.protocols�s���*�*�;�7�7rc���VPPR4'dH\FpWP9gKVu#	\	\VPVP
R7hVP#)r)�botocore_supported_protocols�service_supported_protocols�service)rGr3r
rr	r�r)r%rs& r�resolved_protocol�ServiceModel.resolved_protocol�sa��
�=�=���[�)�)�@���~�~�-�#�O�A�3�-Q�,0�N�N��)�)��
��}�}�rc�$�VPR4#)�endpointPrefixr�r$s&rr��ServiceModel.endpoint_prefix�s���*�*�+;�<�<rc�z�VPF*pVPV4pVP'gK(Vu#	R#r#)r�r��is_endpoint_discovery_operation�r%�	operationrAs&  r�endpoint_discovery_operation�)ServiceModel.endpoint_discovery_operation�s3���-�-�I��(�(��3�E��4�4�4���.rc��VPFHpVPV4pVPfK$VPPR4'gKGR#	R#)NrJTF)r�r��endpoint_discoveryr3rs&  r�endpoint_discovery_required�(ServiceModel.endpoint_discovery_required�sM���-�-�I��(�(��3�E��(�(�4��,�,�0�0��<�<��
.�rc
���VPPR/4pVP4UUu.uF!wr#\VVR,VR,R7NK#	upp#uuppi)r|r.r/)r1r.r/)r�r3r�r�)r%�params�
param_name�	param_vals&   r�client_context_parameters�&ServiceModel.client_context_parameters�sg���*�*�.�.�/D�b�I��*0����

�*8�%�
�
#���v�&�'��8�
�
*8�

�	
��
s�'Ac�j�VPV,# \d\RTRT24hi;i)�"z," not defined in the metadata of the model: )rGr�r�r%r1s&&rr��#ServiceModel._get_metadata_property�sC��	��=�=��&�&���	�.��D�6�E�d�V�L��
�	�s��2c��VP\Jd"VPPR4pWnVP#)�signatureVersion)r�r�rGr3)r%�signature_versions& rr'�ServiceModel.signature_version�s8���"�"�g�-� $�
�
� 1� 1�2D� E��&7�#��&�&�&rc��WnR#r#)r�)r%r�s&&rr'r(�s��"'�rc� �RVP9#)�awsQueryCompatible)rGr$s&r�is_query_compatible� ServiceModel.is_query_compatible�s��#�t�}�}�4�4rc�N�VPPRVPR2#)rX�))rZrr�r$s&rr[�ServiceModel.__repr__s'���.�.�)�)�*�!�D�,=�,=�+>�a�@�@r)r�r�r�r6r�rGr#)$rrrrr~r;r�r�rr�rPr�r�r
r�r/r�r�r�r�rrrrr�rrrr�r�r'�setterr,r[rr(r)s@rr�r�-s������"�>
�
<�� �� �A��A��A������;��;��B��B��E��E��(��(� �I��I��	��	��9��9��7��7��8��8�����"�=��=����������	
��	
���'��'����(��(��5��5�A�Arr�c��a�]tRtRtoR&Rlt]R4t]R4t]R4t	]R4t
]R4t]R	4t]R
4t
]R4t]R4t]R
4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4t]R4tRtRt Rt!]R4t"]R 4t#R!t$R"t%R#t&R$t'R%t(Vt)R#)'r�iNc��WnW nW0nVPR4VnVP
VnVPR/4VnR#)a�

:type operation_model: dict
:param operation_model: The operation model.  This comes from the
    service model, and is the value associated with the operation
    name in the service model (i.e ``model['operations'][op_name]``).

:type service_model: botocore.model.ServiceModel
:param service_model: The service model associated with the operation.

:type name: string
:param name: The operation name.  This is the operation name exposed to
    the users of this model.  This can potentially be different from
    the "wire_name", which is the operation name that *must* by
    provided over the wire.  For example, given::

       "CreateCloudFrontOriginAccessIdentity":{
         "name":"CreateCloudFrontOriginAccessIdentity2014_11_06",
          ...
      }

   The ``name`` would be ``CreateCloudFrontOriginAccessIdentity``,
   but the ``self.wire_name`` would be
   ``CreateCloudFrontOriginAccessIdentity2014_11_06``, which is the
   value we must send in the corresponding HTTP request.

r1�httpN)�_operation_model�_service_model�	_api_namer3�
_wire_namerGr4)r%r��
service_modelr1s&&&&rr;�OperationModel.__init__sJ��8!0��+����*�-�-�f�5���%�.�.��
�#�'�'���3��	rc�N�VPe
VP#VP#r#)r7�	wire_namer$s&rr1�OperationModel.name+s ���>�>�%��>�>�!��>�>�!rc�8�VPPR4#)a"The wire name of the operation.

In many situations this is the same value as the
``name``, value, but in some services, the operation name
exposed to the user is different from the operation name
we send across the wire (e.g cloudfront).

Any serialization code should use ``wire_name``.

r1�r5r3r$s&rr<�OperationModel.wire_name2s���$�$�(�(��0�0rc��VP#r#)r6r$s&rr9�OperationModel.service_model@s���"�"�"rc�:�VPPRR4#r�r?r$s&rr/�OperationModel.documentationDs���$�$�(�(��"�=�=rc�:�VPPRR4#)�
deprecatedFr?r$s&rrF�OperationModel.deprecatedHs���$�$�(�(��u�=�=rc�:�VPPRR4#)�endpointdiscoveryNr?r$s&rr�!OperationModel.endpoint_discoveryLs���$�$�(�(�)<�d�C�Crc�:�VPPRR4#)�endpointoperationFr?r$s&rr�.OperationModel.is_endpoint_discovery_operationRs���$�$�(�(�)<�e�D�Drc��RVP9dR#VPPVPR,4#)�inputN�r5r6rPr$s&r�input_shape�OperationModel.input_shapeVs<���$�/�/�/���"�"�4�4��!�!�'�*�
�	
rc��RVP9dR#VPPVPR,4#)�outputNrPr$s&r�output_shape�OperationModel.output_shape`s<���4�0�0�0���"�"�4�4��!�!�(�+�
�	
rc���VPpV'g.#VPP4UUu.uF5wr#RVP9gKVPR,'gK3VNK7	upp#uuppi)rt)rQr�r�rG)r%rQr1�shapes&   r�idempotent_members�!OperationModel.idempotent_membersksr���&�&����I�"-�!4�!4�!:�!:�!<�
�!<�
��!�U�^�^�3�
����1�2�2�
�D�!<�
�	
��
s�A3�A3�)A3c
��VPPR/4pVP4UUu.uF wr#\W#PR4R7NK"	upp#uuppi)�staticContextParamsr�)r1r�)r5r3r�r�)r%rr1�propss&   r�static_context_parameters�(OperationModel.static_context_parametersxsX���&�&�*�*�+@�"�E�� &�|�|�~�
�-���
#��I�I�g�4F�G�-�
�	
��
s�&Ac	�F�VP'g.#VPPP4UUu.uFWwrRVP9gKRVPR,9gK2\	VPR,R,VR7NKY	upp#uuppi)r{r1)r1r�)rQr�r�rGr�)r%r1rXs&  r�context_parameters�!OperationModel.context_parameters�s��������I� $�/�/�7�7�=�=�?�
�
 @�������/�
��%�.�.��8�8�

���^�^�N�3�F�;� �
� @�
�	
��
s�B�B�0)Bc�:�VPPR.4#)�operationContextParamsr?r$s&r�operation_context_parameters�+OperationModel.operation_context_parameters�s���$�$�(�(�)A�2�F�Frc�8�VPPR4#)�requestcompressionr?r$s&r�request_compression�"OperationModel.request_compression�s���$�$�(�(�)=�>�>rc�8�VPPR4#)�authr?r$s&rrl�OperationModel.auth�s���$�$�(�(��0�0rc�8�VPPR4#)�authtyper?r$s&r�	auth_type�OperationModel.auth_type�����$�$�(�(��4�4rc�h�VP'd\VP4#VP#r#)rlrrpr$s&r�resolved_auth_type�!OperationModel.resolved_auth_type�s$���9�9�9�$�T�Y�Y�/�/��~�~�rc�8�VPPR4#)�unsignedPayloadr?r$s&r�unsigned_payload�OperationModel.unsigned_payload�s���$�$�(�(�):�;�;rc�fa�SPPR.4p\V3RlV44#)�errorsc3�Z<"�TF pSPPV4x�K"	R#5ir#)r6rP)�.0�sr%s& �r�	<genexpr>�.OperationModel.error_shapes.<locals>.<genexpr>�s%����M�f��D�'�'�9�9�!�<�<�f�s�(+)r5r3r�)r%r�sf rr��OperationModel.error_shapes�s,����&�&�*�*�8�R�8���M�f�M�M�Mrc�8�VPPR4#)�endpointr?r$s&rr��OperationModel.endpoint�rrrc�:�VPPRR4#)�httpChecksumRequiredFr?r$s&r�http_checksum_required�%OperationModel.http_checksum_required�s���$�$�(�(�)?��G�Grc�:�VPPR/4#)�httpChecksumr?r$s&r�
http_checksum�OperationModel.http_checksum�s���$�$�(�(���<�<rc�&�VP4RJ#r#)�get_event_stream_inputr$s&r�has_event_stream_input�%OperationModel.has_event_stream_input�s���*�*�,�D�8�8rc�&�VP4RJ#r#)�get_event_stream_outputr$s&r�has_event_stream_output�&OperationModel.has_event_stream_output�s���+�+�-�T�9�9rc�8�VPVP4#r#)�_get_event_streamrQr$s&rr��%OperationModel.get_event_stream_input�s���%�%�d�&6�&6�7�7rc�8�VPVP4#r#)r�rUr$s&rr��&OperationModel.get_event_stream_output�s���%�%�d�&7�&7�8�8rc�`�VfR#VPpV'dVPV,#R#)zAReturns the event stream member's shape if any or None otherwise.N)r^r�)r%rX�
event_names&& rr�� OperationModel._get_event_stream�s*���=���,�,�
���=�=��,�,�rc�&�VP4RJ#r#)�get_streaming_inputr$s&r�has_streaming_input�"OperationModel.has_streaming_input�s���'�'�)��5�5rc�&�VP4RJ#r#)�get_streaming_outputr$s&r�has_streaming_output�#OperationModel.has_streaming_output�s���(�(�*�$�6�6rc�8�VPVP4#r#)�_get_streaming_bodyrQr$s&rr��"OperationModel.get_streaming_input�s���'�'��(8�(8�9�9rc�8�VPVP4#r#)r�rUr$s&rr��#OperationModel.get_streaming_output�s���'�'��(9�(9�:�:rc��VfR#VPPR4pVe'VPV,pVPR8XdV#R#)z?Returns the streaming member's shape if any; or None otherwise.Nrc�blob)rBr3r�r2)r%rXrc�
payload_shapes&&  rr��"OperationModel._get_streaming_body�sK���=���%�%�)�)�)�4����!�M�M�'�2�M��&�&�&�0�$�$�rc�N�VPPRVPR2#)z(name=r/rYr$s&rr[�OperationModel.__repr__�s$���.�.�)�)�*�&�����1�=�=r)r7r5r6r8r4rGr#)*rrrrr;rr1r�r<r9r/rFrrrQrUrYr^rarerirlrprtrxr�r�r�r�r�r�r�r�r�r�r�r�r�r�r[rr(r)s@rr�r�sE����#4�J�"��"��1��1��#��#��>��>��>��>��D��D�
�E��E��
��
��
��
��

��

��
��
��
��
��G��G��?��?��1��1��5��5�����
�<��<��N��N��5��5��H��H��=��=��9��9��:��:�8�9���6��6��7��7�:�;�	�>�>rr�c�Na�]tRtRtoRtR]R]R]R]/t	Rt
RR	ltR
tRt
VtR#)
r�i�zResolves shape references.�	structurer��map�stringc� �Wn/VnR#r#)�
_shape_map�_shape_cache)r%�	shape_maps&&rr;�ShapeResolver.__init__�s��#����rNc�P�VPV,pTPP	TR,\
4pT'd"TP4pTPT4T!YT4pT# \d
\T4hi;i \d\
RT24hi;i)r.z&Shape is missing required key 'type': )	r�r�r�
SHAPE_CLASSESr3r,r�copy�update)r%r8r�r9�	shape_cls�results&&&   rr��ShapeResolver.get_shape_by_name�s���	0��/�/�*�5�K�	��*�*�.�.�{�6�/B�E�J�I�
�%�*�*�,�K����}�-��:�D�9���
���	0�#�J�/�/�	0���	�#�8��
�F��
�	�s�A1�'B�1B�B%c��\V4^8Xd RV9dVPVR,4#VP4pVPR4pTPY24# \d\RT24hi;i)�rXz(Invalid model, missing shape reference: )�lenr�r�r@r�r)r%rRr�r8s&&  rrP�ShapeResolver.resolve_shape_refs����y�>�Q��7�i�#7��)�)�)�G�*<�=�=�%�N�N�,�M�
�*�.�.�w�7�
�
�)�)�*�D�D��	�
�0�>�y�k�J���
�s�A#�#A=)r�r�r#)rrrrr~r�r�r�r�r�r;r�rPrr(r)s@rr�r��s;����$�	�^��	�
�x��+�	�M���"E�Err�c�4a�]tRtRtoRtRRltRtRtVtR#)r5i$zEA ShapeResolver that will throw ValueErrors when shapes are resolved.Nc� �\RVR24h)zAttempted to lookup shape '�!', but no shape map was provided.��
ValueErrorr�s&&&rr��&UnresolvableShapeMap.get_shape_by_name's���)�*��5V�W�
�	
rc� �\RVR24h)zAttempted to resolve shape 'r�r�rQs&&rrP�&UnresolvableShapeMap.resolve_shape_ref,s ���*�9�+�6 �
!�
�	
rrr#)	rrrrr~r�rPrr(r)s@rr5r5$s����O�
�

�
rr5c�ha�]tRtRtoRtRtRRltRtRtRt	Rt
R	tR
tRt
RtR
tRtVtR#)�DenormalizedStructureBuilderi3aZBuild a StructureShape from a denormalized model.

This is a convenience builder class that makes it easy to construct
``StructureShape``s based on a denormalized model.

It will handle the details of creating unique shape names and creating
the appropriate shape map needed by the ``StructureShape`` class.

Example usage::

    builder = DenormalizedStructureBuilder()
    shape = builder.with_members({
        'A': {
            'type': 'structure',
            'members': {
                'B': {
                    'type': 'structure',
                    'members': {
                        'C': {
                            'type': 'string',
                        }
                    }
                }
            }
        }
    }).build_model()
    # ``shape`` is now an instance of botocore.model.StructureShape

:type dict_type: class
:param dict_type: The dictionary type to use, allowing you to opt-in
                  to using OrderedDict or another dict type. This can
                  be particularly useful for testing when order
                  matters, such as for documentation.

Nc��\4Vn\4VnVf#VPP	R4VnR#R#)Nr�)rr��ShapeNameGenerator�_name_generator�new_shape_namer1r#s&&rr;�%DenormalizedStructureBuilder.__init__ds8��"�}���1�3����<��,�,�;�;�K�H�D�I�rc��WnV#)zP

:type members: dict
:param members: The denormalized members.

:return: self

)�_members)r%r�s&&r�with_members�)DenormalizedStructureBuilder.with_membersjs�� �
��rc���\4pRRRVP/pVPW!VP4\	VR7p\VPWP,VR7#)z�Build the model based on the provided members.

:rtype: botocore.model.StructureShape
:return: The built StructureShape object.

r.r�r�)r�)r8r9r:)rr��_build_modelr1r�r�)r%r��denormalized�resolvers&   r�build_model�(DenormalizedStructureBuilder.build_modelvsa������K��t�}�}�
��	
���,��	�	�:� �6�2����y�y��y�y�)�#�
�	
rc�X�VR,R8XdVPW4W#&R#VR,R8XdVPW4W#&R#VR,R8XdVPW4W#&R#VR,VP9dVP	V4W#&R#\RVR,24h)r.r�r�r�zUnknown shape type: N)�_build_structure�_build_list�
_build_map�SCALAR_TYPES�
_build_scalarr)r%rAr�r8s&&&&rr��)DenormalizedStructureBuilder._build_model�s�����=�K�'�!%�!6�!6�u�!E�F��
�6�]�f�
$�!%�!1�!1�%�!@�F��
�6�]�e�
#�!%����!?�F��
�6�]�d�/�/�
/�!%�!3�!3�E�!:�F��#�&:�5��=�/�$J�K�Krc��\4pVPV4pW4R&VPR\44P4F.wrVVP	V4pRV/W5&VPWbV4K0	V#)r�rX)r�_build_initial_shaper3r��_get_shape_namer�)r%rAr�r�rXr1�member_model�member_shape_names&&&     rr��-DenormalizedStructureBuilder._build_structure�s{���-���)�)�%�0��"�i��"'�)�)�I�{�}�"E�"K�"K�"M��D� $� 4� 4�\� B��$�&7�8�G�M����l�4E�F�#N��rc��VPV4pVPV4pRV/VR&VPVR,W#4V#)rXr��r�r�r�)r%rAr�r�rXs&&&  rr��(DenormalizedStructureBuilder._build_list�sK�� �0�0��7���)�)�%�0��"�$5�6��h�����%��/�6�E��rc��VPVR,4pVPVR,4pVPV4pRV/VR&RV/VR&VPVR,W#4VPVR,W$4V#)r�r�rXr�)r%rAr��key_shape_name�value_shape_namerXs&&&   rr��'DenormalizedStructureBuilder._build_map�s����-�-�e�E�l�;���/�/��g��?���)�)�%�0����0��e��!�#3�4��g�����%��,��?����%��.�&�C��rc��RVR,/pRV9d
VR,VR&\PFpW19gKW,W#&K	V#)r.r/)r,rF)r%rArXrCs&&  rr��1DenormalizedStructureBuilder._build_initial_shape�sP���E�&�M�
���e�#�%*�?�%;�E�/�"��(�(�D��}�#�k���)��rc�$�VPV4#r#)r��r%rAs&&rr��*DenormalizedStructureBuilder._build_scalar�s���(�(��/�/rc�f�RV9d
VR,#VPPVR,4#)r8r.)r�r�r�s&&rr��,DenormalizedStructureBuilder._get_shape_name�s0���5� ���&�&��'�'�6�6�u�V�}�E�Er)r�r�r�r1)	r��integer�booleanr��float�	timestamp�long�double�charr#)rrrrr~r�r;r�r�r�r�r�r�r�r�r�rr(r)s@rr�r�3sM����"�H
�L�I�
�
�(
L�	���	�0�F�Frr�c�0a�]tRtRtoRtRtRtRtVtR#)r�i�z�Generate unique shape names for a type.

This class can be used in conjunction with the DenormalizedStructureBuilder
to generate unique shape names for a given type.

c�.�\\4VnR#r#)r�int�_name_cacher$s&rr;�ShapeNameGenerator.__init__�s��&�s�+��rc��VPV;;,^,
uu&VPV,pVP4RV2#)aGenerate a unique shape name.

This method will guarantee a unique shape name each time it is
called with the same type.

::

    >>> s = ShapeNameGenerator()
    >>> s.new_shape_name('structure')
    'StructureType1'
    >>> s.new_shape_name('structure')
    'StructureType2'
    >>> s.new_shape_name('list')
    'ListType1'
    >>> s.new_shape_name('list')
    'ListType2'


:type type_name: string
:param type_name: The type name (structure, list, map, string, etc.)

:rtype: string
:return: A unique shape name for the given type

�Type)r�
capitalize)r%r2�
current_indexs&& rr��!ShapeNameGenerator.new_shape_name�sE��4	
����#�q�(�#��(�(��3�
��&�&�(�)��m�_�=�=r)rN)	rrrrr~r;r�rr(r)s@rr�r��s�����,�>�>rr�N)*r~�collectionsr�typingrr�
botocore.authr�botocore.compatr�botocore.exceptionsrrr	�botocore.utilsr
rrr
�objectr��	Exceptionrrrrr�r!r,r�r�r�r�r�r�r�r�r�r�r5r�r�rrr�<module>rs!��4�#�$�+�'���
���(��	�	�	�	�	�	�	�Y�	�	��	�*��*�
b�b�J'1�U�'1�TD��D�C�u�C�-�%�-��Z��
�z��
�Z��UA�UA�pf>�f>�R3E�3E�l
�
�QF�QF�h'>�'>r

Youez - 2016 - github.com/yon3zu
LinuXploit