class DefaultTunnel extends AbstractModel implements Tunnel {

    @Override
    public TunnelName tunnelName() {
        return tunnelName;
    }

    public  DefaultTunnel(ProviderId producerName, TunnelEndPoint src,
                         TunnelEndPoint dst, Type type, DefaultGroupId groupId,
                         TunnelId tunnelId, TunnelName tunnelName, Path path,
                         Annotations... annotations);
    public  DefaultTunnel(ProviderId producerName, TunnelEndPoint src,
                         TunnelEndPoint dst, Type type, State state,
                         DefaultGroupId groupId, TunnelId tunnelId,
                         TunnelName tunnelName, Path path, Annotations... annotations);
    public  DefaultTunnel(ProviderId producerName, TunnelEndPoint src,
                         TunnelEndPoint dst, Type type, DefaultGroupId groupId,
                         TunnelId tunnelId, TunnelName tunnelName, Path path,
                         NetworkResource networkRes, Annotations... annotations);
    public  DefaultTunnel(ProviderId producerName, TunnelEndPoint src,
                         TunnelEndPoint dst, Type type, State state,
                         DefaultGroupId groupId, TunnelId tunnelId,
                         TunnelName tunnelName, Path path, NetworkResource networkRes,
                         Annotations... annotations);

}