<?xml version="1.0" ?>

<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>

        <service id="csa_guzzle.middleware.stopwatch" class="Csa\GuzzleHttp\Middleware\Stopwatch\StopwatchMiddleware">
            <argument type="service" id="debug.stopwatch" />
            <tag name="csa_guzzle.middleware" alias="stopwatch" />
        </service>

        <service id="csa_guzzle.middleware.history" class="Csa\GuzzleHttp\Middleware\History\HistoryMiddleware">
            <argument type="service" id="csa_guzzle.data_collector.history_bag" />
            <tag name="csa_guzzle.middleware" alias="history" priority="-1000" />
        </service>

        <service id="csa_guzzle.middleware.logger" class="Closure">
            <factory class="GuzzleHttp\Middleware" method="log" />
            <argument type="service" id="logger" />
            <argument type="service" id="csa_guzzle.logger.message_formatter" />
            <argument /> <!-- Logger level -->
            <tag name="csa_guzzle.middleware" alias="logger" />
        </service>

        <service id="csa_guzzle.logger.message_formatter" class="GuzzleHttp\MessageFormatter" public="false">
            <argument /> <!-- Format template -->
        </service>

        <service id="csa_guzzle.middleware.cache" class="Csa\GuzzleHttp\Middleware\Cache\CacheMiddleware">
            <argument type="service" id="csa_guzzle.cache_adapter" />
            <tag name="csa_guzzle.middleware" alias="cache" priority="-1500" />
        </service>

    </services>

</container>
