/**
* Copyright 2013, Big Switch Networks, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
package net.floodlightcontroller.loadbalancer;
import java.util.Collection;
import net.floodlightcontroller.core.module.IFloodlightService;
public interface ILoadBalancerService extends IFloodlightService {
/**
* List all current Vips.
*/
public Collection<LBVip> listVips();
/**
* List selected Vip by its ID.
* @param vipId Id of requested Vip
*/
public Collection<LBVip> listVip(String vipId);
/**
* Create and return a new Vip.
* @param LBVip vip: data structure with caller provided Vip attributes
* @return LBVip: Created Vip
*/
public LBVip createVip(LBVip vip);
/**
* Update and return an existing Vip.
* @param LBVip vip: data structure with caller provided Vip attributes
* @return LBVip: Updated Vip
*/
public LBVip updateVip(LBVip vip);
/**
* Remove an existing Vip.
* @param String vipId
* @return int: removal status
*/
public int removeVip(String vipId);
/**
* List all current pools.
*/
public Collection<LBPool> listPools();
/**
* List selected pool by its ID.
* @param poolId Id of requested pool
*/
public Collection<LBPool> listPool(String poolId);
/**
* Create and return a new pool.
* @param LBPool pool: data structure with caller provided pool attributes
* @return LBPool: Created pool
*/
public LBPool createPool(LBPool pool);
/**
* Update and return an existing pool.
* @param LBPool pool: data structure with caller provided pool attributes
* @return LBPool: Updated pool
*/
public LBPool updatePool(LBPool pool);
/**
* Remove an existing pool.
* @param String poolId
* @return int: removal status
*/
public int removePool(String poolId);
/**
* List all current members.
*/
public Collection<LBMember> listMembers();
/**
* List selected member by its ID.
* @param memberId Id of requested member
*/
public Collection<LBMember> listMember(String memberId);
/**
* List all members in a specified pool.
*/
public Collection<LBMember> listMembersByPool(String poolId);
/**
* Create and return a new member.
* @param LBMember member: data structure with caller provided member attributes
* @return LBMember: Created member
*/
public LBMember createMember(LBMember member);
/**
* Update and return an existing member.
* @param LBMember member: data structure with caller provided member attributes
* @return LBMember: Updated member
*/
public LBMember updateMember(LBMember member);
/**
* Remove an existing member.
* @param String memberId
* @return int: removal status
*/
public int removeMember(String memberId);
/**
* List all current monitors.
*/
public Collection<LBMonitor> listMonitors();
/**
* List selected monitor by its ID.
* @param monitorId Id of requested monitor
*/
public Collection<LBMonitor> listMonitor(String monitorId);
/**
* Create and return a new monitor.
* @param LBMonitor monitor: data structure with caller provided monitor attributes
* @return LBMonitor: Created monitor
*/
public LBMonitor createMonitor(LBMonitor monitor);
/**
* Update and return an existing monitor.
* @param LBMonitor monitor: data structure with caller provided pool attributes
* @return LBMonitor: Updated monitor
*/
public LBMonitor updateMonitor(LBMonitor monitor);
/**
* Remove an existing monitor.
* @param String monitorId
* @return int: removal status
*/
public int removeMonitor(String monitorId);
}