<?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="fos_rest.exception_listener" class="FOS\RestBundle\EventListener\ExceptionListener">
            <tag name="kernel.event_subscriber" />
            <argument type="service" id="fos_rest.error_listener" />
            <argument type="service" id="event_dispatcher" />
            <deprecated>The "%service_id%" service is deprecated since FOSRestBundle 2.8.</deprecated>
        </service>

        <service id="fos_rest.exception.controller" class="FOS\RestBundle\Controller\ExceptionController" public="true">
            <argument type="service" id="fos_rest.view_handler" />
            <argument type="service" id="fos_rest.exception.codes_map" />  <!-- exception codes -->
            <argument /><!-- show exception -->
            <deprecated>The "%service_id%" service is deprecated since FOSRestBundle 2.8.</deprecated>
        </service>

        <service id="fos_rest.exception.twig_controller" class="FOS\RestBundle\Controller\TwigExceptionController" parent="fos_rest.exception.controller">
            <argument type="service" id="templating.engine.twig" />
            <deprecated>The "%service_id%" service is deprecated since FOSRestBundle 2.8.</deprecated>
        </service>

        <service id="fos_rest.exception.codes_map" class="FOS\RestBundle\Util\ExceptionValueMap" public="false">
            <argument type="collection"/> <!-- exception codes -->
        </service>

        <service id="fos_rest.exception.messages_map" class="FOS\RestBundle\Util\ExceptionValueMap" public="false">
            <argument type="collection"/> <!-- exception messages -->
        </service>

        <service id="fos_rest.serializer.exception_normalizer.jms" class="FOS\RestBundle\Serializer\Normalizer\ExceptionHandler">
            <argument type="service" id="fos_rest.exception.messages_map" /> <!-- exception messages -->
            <argument /><!-- show exception message -->
            <tag name="jms_serializer.subscribing_handler" />
            <deprecated>The "%service_id%" service is deprecated since FOSRestBundle 2.8.</deprecated>
        </service>

        <service id="fos_rest.serializer.exception_normalizer.symfony" class="FOS\RestBundle\Serializer\Normalizer\ExceptionNormalizer" public="false">
            <argument type="service" id="fos_rest.exception.messages_map" /> <!-- exception messages -->
            <argument /><!-- show exception message -->
            <tag name="serializer.normalizer" priority="-10" />
            <deprecated>The "%service_id%" service is deprecated since FOSRestBundle 2.8.</deprecated>
        </service>

        <service id="fos_rest.serializer.flatten_exception_handler" class="FOS\RestBundle\Serializer\Normalizer\FlattenExceptionHandler" public="false">
            <argument type="service" id="fos_rest.exception.codes_map" /> <!-- exception messages -->
            <argument type="service" id="fos_rest.exception.messages_map" /> <!-- exception messages -->
            <argument /><!-- show exception message -->
            <argument /><!-- render according to RFC 7807 -->
            <tag name="jms_serializer.subscribing_handler" />
        </service>

        <service id="fos_rest.serializer.flatten_exception_normalizer" class="FOS\RestBundle\Serializer\Normalizer\FlattenExceptionNormalizer" public="false">
            <argument type="service" id="fos_rest.exception.codes_map" /> <!-- exception messages -->
            <argument type="service" id="fos_rest.exception.messages_map" /> <!-- exception messages -->
            <argument /><!-- show exception message -->
            <argument /><!-- render according to RFC 7807 -->
            <tag name="serializer.normalizer" priority="-10" />
        </service>
    </services>
</container>
