{
    "heat_template_version": "2015-10-15",
    "description": "Configuration for Haproxy Neutron Loadbalacer V2 service",
    "parameters": {
        "lb_port": {
            "type": "number",
            "default": 80,
            "description": "Port used by the listener"
        },
        "app_port": {
            "type": "number",
            "default": 80,
            "description": "Port used by the servers in pool"
        },
        "Subnet": {
            "type": "string",
            "description": "Subnet on which the load balancer will be located"
        },
        "vip_ip": {
            "type": "string",
            "description": "VIP IP Address"
        },
        "service_chain_metadata": {
            "type": "string",
            "description": "sc metadata"
        }
    },
    "resources": {
        "monitor": {
            "type": "OS::Neutron::LBaaS::HealthMonitor",
            "depends_on": "pool",
            "properties": {
                "delay": 3,
                "type": "HTTP",
                "timeout": 3,
                "max_retries": 3,
                "pool": {
                    "get_resource": "pool"
                }
            }
        },
        "pool": {
            "type": "OS::Neutron::LBaaS::Pool",
            "depends_on": "listener",
            "description": "{'app_port_param_name': 'app_port'}",
            "properties": {
                "lb_algorithm": "ROUND_ROBIN",
                "protocol": "HTTP",
                "listener": {
                    "get_resource": "listener"
                }
            }
        },
        "listener": {
            "type": "OS::Neutron::LBaaS::Listener",
            "depends_on": "loadbalancer",
            "properties": {
                "loadbalancer": {
                    "get_resource": "loadbalancer"
                },
                "protocol": "HTTP",
                "protocol_port": {
                    "get_param": "lb_port"
                }
            }
        },
        "loadbalancer": {
            "type": "OS::Neutron::LBaaS::LoadBalancer",
            "properties": {
                "vip_subnet": {
                    "get_param": "Subnet"
                },
                "provider": "haproxy",
                "vip_address": {
                    "get_param": "vip_ip"
                },
                "description": {
                    "get_param": "service_chain_metadata"
                }
            }
        }
    }
}
