| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | 
							- <?php
 
- namespace Aws\Api;
 
- /**
 
-  * Base class that is used by most API shapes
 
-  */
 
- abstract class AbstractModel implements \ArrayAccess
 
- {
 
-     /** @var array */
 
-     protected $definition;
 
-     /** @var ShapeMap */
 
-     protected $shapeMap;
 
-     /** @var array */
 
-     protected $contextParam;
 
-     /**
 
-      * @param array    $definition Service description
 
-      * @param ShapeMap $shapeMap   Shapemap used for creating shapes
 
-      */
 
-     public function __construct(array $definition, ShapeMap $shapeMap)
 
-     {
 
-         $this->definition = $definition;
 
-         $this->shapeMap = $shapeMap;
 
-         if (isset($definition['contextParam'])) {
 
-             $this->contextParam = $definition['contextParam'];
 
-         }
 
-     }
 
-     public function toArray()
 
-     {
 
-         return $this->definition;
 
-     }
 
-     /**
 
-      * @return mixed|null
 
-      */
 
-     #[\ReturnTypeWillChange]
 
-     public function offsetGet($offset)
 
-     {
 
-         return isset($this->definition[$offset])
 
-             ? $this->definition[$offset] : null;
 
-     }
 
-     /**
 
-      * @return void
 
-      */
 
-     #[\ReturnTypeWillChange]
 
-     public function offsetSet($offset, $value)
 
-     {
 
-         $this->definition[$offset] = $value;
 
-     }
 
-     /**
 
-      * @return bool
 
-      */
 
-     #[\ReturnTypeWillChange]
 
-     public function offsetExists($offset)
 
-     {
 
-         return isset($this->definition[$offset]);
 
-     }
 
-     /**
 
-      * @return void
 
-      */
 
-     #[\ReturnTypeWillChange]
 
-     public function offsetUnset($offset)
 
-     {
 
-         unset($this->definition[$offset]);
 
-     }
 
-     protected function shapeAt($key)
 
-     {
 
-         if (!isset($this->definition[$key])) {
 
-             throw new \InvalidArgumentException('Expected shape definition at '
 
-                 . $key);
 
-         }
 
-         return $this->shapeFor($this->definition[$key]);
 
-     }
 
-     protected function shapeFor(array $definition)
 
-     {
 
-         return isset($definition['shape'])
 
-             ? $this->shapeMap->resolve($definition)
 
-             : Shape::create($definition, $this->shapeMap);
 
-     }
 
- }
 
 
  |