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\build_query($queryArray); $uri = $uri->withQuery($query); $request = new Request('GET', $uri); $request = $request->withBody(Psr7\stream_for('')); $signer = new SignatureV4('polly', $this->getRegion()); return (string) $signer->presign( $request, $this->getCredentials()->wait(), '+15 minutes' )->getUri(); } }