old_sound_rabbit_mq:

    enable_collector: true

    connections:
        foo_connection:
            host:     foo_host
            port:     123
            user:     foo_user
            password: foo_password
            vhost:    /foo

        ssl_connection:
            host:     ssl_host
            port:     123
            user:     ssl_user
            password: ssl_password
            vhost:    /ssl
            ssl_context:
                verify_peer: false

        lazy_connection:
            host:     lazy_host
            port:     456
            user:     lazy_user
            password: lazy_password
            vhost:    /lazy
            lazy:     true

        socket_connection:
            host:       bar_host
            port:       789
            user:       socket_user
            password:   socket_password
            vhost:      /socket
            lazy:       false
            use_socket: true

        lazy_socket:
            host:       joe_host
            port:       987
            user:       lazy_socket_user
            password:   lazy_socket_password
            vhost:      /lazy_socket
            lazy:       true
            use_socket: true

        cluster_connection:
            hosts:
                - host: cluster_host
                  port: 111
                  user: cluster_user
                  password: cluster_password
                  vhost: /cluster
                - url: amqp://cluster_url_host:cluster_url_pass@host:10000/cluster_url_vhost

        default:
        default2:
        foo_default:
        bar_default:

    producers:
        foo_producer:
            class:           My\Foo\Producer
            connection:      foo_connection
            exchange_options:
                name:        foo_exchange
                type:        direct
                passive:     true
                durable:     false
                auto_delete: true
                internal:    true
                nowait:      true
                arguments:   null
                ticket:      null

        foo_producer_aliased:
            class:           My\Foo\Producer
            connection:      foo_connection
            exchange_options:
                name:        foo_exchange
                type:        direct
                passive:     true
                durable:     false
                auto_delete: true
                internal:    true
                nowait:      true
                arguments:   null
                ticket:      null
            service_alias: foo_producer_alias


        default_producer:
            exchange_options:
                name:       default_exchange
                type:       direct

    consumers:
        foo_consumer:
            connection:      foo_connection
            timeout_wait:    3
            exchange_options:
                name:        foo_exchange
                type:        direct
                passive:     true
                durable:     false
                auto_delete: true
                internal:    true
                nowait:      true
                arguments:   null
                ticket:      null
            queue_options:
                name:        foo_queue
                passive:     true
                durable:     false
                exclusive:   true
                auto_delete: true
                nowait:      true
                arguments:   null
                ticket:      null
                routing_keys:
                  - 'android.#.upload'
                  - 'iphone.upload'
            callback:        foo.callback

        default_consumer:
            exchange_options:
                name:        default_exchange
                type:        direct
            queue_options:
                name:        default_queue
            callback:        default.callback

        qos_test_consumer:
            connection:         foo_connection
            exchange_options:
                name:           foo_exchange
                type:           direct
            queue_options:
                name:           foo_queue
            qos_options:
                prefetch_size:  1024
                prefetch_count: 1
                global:         true
            callback:           foo.callback

    multiple_consumers:
        multi_test_consumer:
            connection: foo_connection
            timeout_wait:    3
            exchange_options:
                name:           foo_multiple_exchange
                type:           direct
            queues:
                multi-test-1:
                    name:        multi_test_1
                    callback:    foo.multiple_test1.callback
                multi-test-2:
                    name:        foo_bar_2
                    passive:     true
                    durable:     false
                    exclusive:   true
                    auto_delete: true
                    nowait:      true
                    arguments:   null
                    ticket:      null
                    routing_keys:
                      - 'android.upload'
                      - 'iphone.upload'
                    callback:        foo.multiple_test2.callback
            queues_provider: foo.queues_provider

    dynamic_consumers:
        foo_dyn_consumer:
            connection: foo_default
            exchange_options:
                name:           foo_dynamic_exchange
                type:           direct
            callback: foo.dynamic.callback
            queue_options_provider: foo.dynamic.provider
        bar_dyn_consumer:
            connection: bar_default
            exchange_options:
                name:           bar_dynamic_exchange
                type:           direct
            callback: bar.dynamic.callback
            queue_options_provider: bar.dynamic.provider
    bindings:
        - {exchange: foo, destination: bar, routing_key: baz}
        - {exchange: moo, connection: default2, destination: cow, nowait: true, destination_is_exchange: true, arguments: {moo: cow}}
    anon_consumers:
        foo_anon_consumer:
            connection:      foo_connection
            exchange_options:
                name:        foo_anon_exchange
                type:        direct
                passive:     true
                durable:     false
                auto_delete: true
                internal:    true
                nowait:      true
                arguments:   null
                ticket:      null
            callback:        foo_anon.callback

        default_anon_consumer:
            exchange_options:
                name:        default_anon_exchange
                type:        direct
            callback:        default_anon.callback

    rpc_clients:
        foo_client:
            connection:      foo_connection
            unserializer:    json_decode
            direct_reply_to: true

        default_client:

    rpc_servers:
        foo_server:
            connection:      foo_connection
            callback:        foo_server.callback
            serializer:      json_encode

        default_server:
            callback:        default_server.callback

        server_with_queue_options:
            callback:        server_with_queue_options.callback
            queue_options:
                name: "server_with_queue_options-queue"

        server_with_exchange_options:
            callback:        server_with_exchange_options.callback
            exchange_options:
                name: exchange
                type: topic
services:
    foo.callback:
    default.callback:
    foo.multiple_test1.callback:
    foo.multiple_test2.callback:
    foo.queues_provider:
    foo.dynamic.callback:
    foo.dynamic.provider:
    bar.dynamic.provider:
    bar.dynamic.callback:
    foo_anon.callback:
    default_anon.callback:
    foo_server.callback:
    default_server.callback:
    server_with_queue_options.callback:
    server_with_exchange_options.callback:
