| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 
							- <?php
 
- namespace Aws\Api;
 
- /**
 
-  * Base class representing a modeled shape.
 
-  */
 
- class Shape extends AbstractModel
 
- {
 
-     /**
 
-      * Get a concrete shape for the given definition.
 
-      *
 
-      * @param array    $definition
 
-      * @param ShapeMap $shapeMap
 
-      *
 
-      * @return mixed
 
-      * @throws \RuntimeException if the type is invalid
 
-      */
 
-     public static function create(array $definition, ShapeMap $shapeMap)
 
-     {
 
-         static $map = [
 
-             'structure' => StructureShape::class,
 
-             'map'       => MapShape::class,
 
-             'list'      => ListShape::class,
 
-             'timestamp' => TimestampShape::class,
 
-             'integer'   => Shape::class,
 
-             'double'    => Shape::class,
 
-             'float'     => Shape::class,
 
-             'long'      => Shape::class,
 
-             'string'    => Shape::class,
 
-             'byte'      => Shape::class,
 
-             'character' => Shape::class,
 
-             'blob'      => Shape::class,
 
-             'boolean'   => Shape::class
 
-         ];
 
-         if (isset($definition['shape'])) {
 
-             return $shapeMap->resolve($definition);
 
-         }
 
-         if (!isset($map[$definition['type']])) {
 
-             throw new \RuntimeException('Invalid type: '
 
-                 . print_r($definition, true));
 
-         }
 
-         $type = $map[$definition['type']];
 
-         return new $type($definition, $shapeMap);
 
-     }
 
-     /**
 
-      * Get the type of the shape
 
-      *
 
-      * @return string
 
-      */
 
-     public function getType()
 
-     {
 
-         return $this->definition['type'];
 
-     }
 
-     /**
 
-      * Get the name of the shape
 
-      *
 
-      * @return string
 
-      */
 
-     public function getName()
 
-     {
 
-         return $this->definition['name'];
 
-     }
 
-     /**
 
-      * Get a context param definition.
 
-      */
 
-     public function getContextParam()
 
-     {
 
-         return $this->contextParam;
 
-     }
 
- }
 
 
  |