// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you 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 com.cloud.region.ha; import org.apache.cloudstack.acl.ControlledEntity; import org.apache.cloudstack.api.Identity; import org.apache.cloudstack.api.InternalIdentity; /** * GlobalLoadBalancerRule defines a global (multi zone) load balancing configuration. */ public interface GlobalLoadBalancerRule extends Identity, InternalIdentity, ControlledEntity { enum Algorithm { RoundRobin, LeastConn, Proximity; public static boolean isValidAlgorithm(String algorithm) { if (RoundRobin.name().equalsIgnoreCase(algorithm) || LeastConn.name().equalsIgnoreCase(algorithm) || Proximity.name().equalsIgnoreCase(algorithm)) { return true; } return false; } } enum Persistence { sourceip; public static boolean isValidPersistence(String persistence) { if (sourceip.name().equalsIgnoreCase(persistence)) { return true; } return false; } } enum ServiceType { tcp, udp, http; public static boolean isValidServiceType(String serviceType) { if (tcp.name().equalsIgnoreCase(serviceType) || udp.name().equalsIgnoreCase(serviceType) || http.name().equalsIgnoreCase(serviceType)) { return true; } return false; } } enum State { Staged, Add, Active, Revoke } public String getName(); public String getDescription(); public String getGslbDomain(); public String getAlgorithm(); public String getPersistence(); public int getRegion(); @Override public long getAccountId(); public State getState(); public String getServiceType(); }