parameters: (self, shape_name, shape_model, shape_resolver=None)
docstring: :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.
function: def __init__(self, shape_name, shape_model, shape_resolver=None):
          """
  
          :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.
  
          """
          self.name = shape_name
          self.type_name = shape_model['type']
          self.documentation = shape_model.get('documentation', '')
          self._shape_model = shape_model
          if shape_resolver is None:
              # If a shape_resolver is not provided, we create an object
              # that will throw errors if you attempt to resolve
              # a shape.  This is actually ok for scalar shapes
              # because they don't need to resolve shapes and shouldn't
              # be required to provide an object they won't use.
              shape_resolver = UnresolvableShapeMap()
          self._shape_resolver = shape_resolver
          self._cache = {}
function_tokens: def __init__ ( self , shape_name , shape_model , shape_resolver = None ) : self . name = shape_name self . type_name = shape_model [ 'type' ] self . documentation = shape_model . get ( 'documentation' , '' ) self . _shape_model = shape_model if shape_resolver is None : # If a shape_resolver is not provided, we create an object # that will throw errors if you attempt to resolve # a shape.  This is actually ok for scalar shapes # because they don't need to resolve shapes and shouldn't # be required to provide an object they won't use. shape_resolver = UnresolvableShapeMap ( ) self . _shape_resolver = shape_resolver self . _cache = { }