setConfig($config) ->setConfigDefaults(array( Options::VERSION => self::LATEST_API_VERSION, Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cognitoidentity-%s.php', )) ->setExceptionParser(new JsonQueryExceptionParser) ->build(); // Attach a listener to prevent some requests from being signed $client->getEventDispatcher()->addListener('command.before_send', function (Event $event) { /** @var AbstractCommand $command */ $command = $event['command']; if (in_array($command->getName(), array('GetId', 'GetOpenIdToken', 'UnlinkIdentity'))) { /** @var EventDispatcher $dispatcher */ $dispatcher = $command->getRequest()->getEventDispatcher(); foreach ($dispatcher->getListeners('request.before_send') as $listener) { if (is_array($listener) && $listener[0] instanceof SignatureListener) { $dispatcher->removeListener('request.before_send', $listener); break; } } } }); return $client; } }