/*
* Copyright (c) 2013 Big Switch Networks, Inc.
*
* Licensed under the Eclipse Public License, Version 1.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.eclipse.org/legal/epl-v10.html
*
* 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 org.sdnplatform.loadbalancer;
import java.util.Collection;
import org.sdnplatform.core.module.IPlatformService;
public interface ILoadBalancerService extends IPlatformService {
/**
* 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);
}