File: //opt/cppython/lib/python3.8/site-packages/botocore/__pycache__/model.cpython-38.pyc
U
KD�g�z � @ s� d Z ddlmZ ddlmZmZ ddlmZ ddlm Z ddl
mZmZ ddl
mZmZmZ e� ZG dd � d e�ZG d
d� de�ZG dd
� d
e�ZG dd� de�ZG dd� de�ZG dd� d�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�Z G d d!� d!e�Z!G d"d#� d#�Z"G d$d%� d%�Z#G d&d'� d'�Z$G d(d)� d)�Z%G d*d+� d+�Z&G d,d-� d-�Z'd.S )/z-Abstractions to interact with service models.� )�defaultdict)�
NamedTuple�Union)�resolve_auth_type)�OrderedDict)�MissingServiceIdError�UndefinedModelAttributeError)�CachedProperty�hyphenize_service_id�instance_cachec @ s e Zd ZdS )�NoShapeFoundErrorN��__name__�
__module__�__qualname__� r r �;/opt/cppython/lib/python3.8/site-packages/botocore/model.pyr s r c @ s e Zd ZdS )�InvalidShapeErrorNr
r r r r r ! s r c @ s e Zd ZdS )�OperationNotFoundErrorNr
r r r r r % s r c @ s e Zd ZdS )�InvalidShapeReferenceErrorNr
r r r r r ) s r c @ s e Zd Zdd� ZdS )� ServiceIdc C s t | �S �N)r
��selfr r r � hyphenize. s zServiceId.hyphenizeN)r r r r r r r r r - s r c @ s� e Zd ZdZdddddddd d
ddd
dddddgZddddddddddddddd d!gZeZd1d#d$�Ze d%d&� �Z
e d'd(� �Ze d)d*� �Zd+d,� Z
d-d.� Zed/d0� �Zd"S )2�Shapez3Object representing a shape from the service model.�locationNameZ queryNameZ flattened�location�payloadZ streamingZtimestampFormatZxmlNamespaceZ
resultWrapperZxmlAttribute�eventstream�eventZeventheaderZeventpayloadZ jsonvalueZ hostLabel�required�min�max�patternZ sensitive�enum�idempotencyToken�error� exceptionZendpointdiscoveryidZ retryable�document�union�contextParam�clientContextParamsZrequiresLengthNc C sB || _ |d | _|�dd�| _|| _|dkr2t� }|| _i | _dS )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_resolverr r r �__init__` s
zShape.__init__c C sF | j }i }| jD ]}|| j kr|| ||<