getEndpoint()); $uri = $uri->withPath('/v1/speech'); // Formatting parameters follows rest-json protocol $this->formatter = $this->formatter ?: new JsonBody($this->getApi()); $queryArray = json_decode( $this->formatter->build( $this->getApi()->getOperation('SynthesizeSpeech')->getInput(), $args ), true ); // Mocking a 'GET' request in pre-signing the Url $query = Psr7\Query::build($queryArray); $uri = $uri->withQuery($query); $request = new Request('GET', $uri); $request = $request->withBody(Psr7\Utils::streamFor('')); $signer = new SignatureV4('polly', $this->getRegion()); return (string) $signer->presign( $request, $this->getCredentials()->wait(), '+15 minutes' )->getUri(); } }