| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | 
							- <?php
 
- namespace Aws\Api;
 
- /**
 
-  * Represents a structure shape and resolve member shape references.
 
-  */
 
- class StructureShape extends Shape
 
- {
 
-     /**
 
-      * @var Shape[]
 
-      */
 
-     private $members;
 
-     public function __construct(array $definition, ShapeMap $shapeMap)
 
-     {
 
-         $definition['type'] = 'structure';
 
-         if (!isset($definition['members'])) {
 
-             $definition['members'] = [];
 
-         }
 
-         parent::__construct($definition, $shapeMap);
 
-     }
 
-     /**
 
-      * Gets a list of all members
 
-      *
 
-      * @return Shape[]
 
-      */
 
-     public function getMembers()
 
-     {
 
-         if (empty($this->members)) {
 
-             $this->generateMembersHash();
 
-         }
 
-         return $this->members;
 
-     }
 
-     /**
 
-      * Check if a specific member exists by name.
 
-      *
 
-      * @param string $name Name of the member to check
 
-      *
 
-      * @return bool
 
-      */
 
-     public function hasMember($name)
 
-     {
 
-         return isset($this->definition['members'][$name]);
 
-     }
 
-     /**
 
-      * Retrieve a member by name.
 
-      *
 
-      * @param string $name Name of the member to retrieve
 
-      *
 
-      * @return Shape
 
-      * @throws \InvalidArgumentException if the member is not found.
 
-      */
 
-     public function getMember($name)
 
-     {
 
-         $members = $this->getMembers();
 
-         if (!isset($members[$name])) {
 
-             throw new \InvalidArgumentException('Unknown member ' . $name);
 
-         }
 
-         return $members[$name];
 
-     }
 
-     private function generateMembersHash()
 
-     {
 
-         $this->members = [];
 
-         foreach ($this->definition['members'] as $name => $definition) {
 
-             $this->members[$name] = $this->shapeFor($definition);
 
-         }
 
-     }
 
- }
 
 
  |