| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | <?phpnamespace Aws\Api;/** * Represents an API operation. */class Operation extends AbstractModel{    private $input;    private $output;    private $errors;    private $staticContextParams = [];    private $contextParams;    public function __construct(array $definition, ShapeMap $shapeMap)    {        $definition['type'] = 'structure';        if (!isset($definition['http']['method'])) {            $definition['http']['method'] = 'POST';        }        if (!isset($definition['http']['requestUri'])) {            $definition['http']['requestUri'] = '/';        }        if (isset($definition['staticContextParams'])) {            $this->staticContextParams = $definition['staticContextParams'];        }        parent::__construct($definition, $shapeMap);        $this->contextParams = $this->setContextParams();    }    /**     * Returns an associative array of the HTTP attribute of the operation:     *     * - method: HTTP method of the operation     * - requestUri: URI of the request (can include URI template placeholders)     *     * @return array     */    public function getHttp()    {        return $this->definition['http'];    }    /**     * Get the input shape of the operation.     *     * @return StructureShape     */    public function getInput()    {        if (!$this->input) {            if ($input = $this['input']) {                $this->input = $this->shapeFor($input);            } else {                $this->input = new StructureShape([], $this->shapeMap);            }        }        return $this->input;    }    /**     * Get the output shape of the operation.     *     * @return StructureShape     */    public function getOutput()    {        if (!$this->output) {            if ($output = $this['output']) {                $this->output = $this->shapeFor($output);            } else {                $this->output = new StructureShape([], $this->shapeMap);            }        }        return $this->output;    }    /**     * Get an array of operation error shapes.     *     * @return Shape[]     */    public function getErrors()    {        if ($this->errors === null) {            if ($errors = $this['errors']) {                foreach ($errors as $key => $error) {                    $errors[$key] = $this->shapeFor($error);                }                $this->errors = $errors;            } else {                $this->errors = [];            }        }        return $this->errors;    }    /**     * Gets static modeled static values used for     * endpoint resolution.     *     * @return array     */    public function getStaticContextParams()    {        return $this->staticContextParams;    }    /**     * Gets definition of modeled dynamic values used     * for endpoint resolution     *     * @return array     */    public function getContextParams()    {        return $this->contextParams;    }    private function setContextParams()    {        $members = $this->getInput()->getMembers();        $contextParams = [];        foreach($members as $name => $shape) {            if (!empty($contextParam = $shape->getContextParam())) {                $contextParams[$contextParam['name']] = [                    'shape' => $name,                    'type' => $shape->getType()                ];            }        }        return $contextParams;    }}
 |