1: <?php
2: /**
3: * Copyright 2012-2014 Rackspace US, Inc.
4: *
5: * Licensed under the Apache License, Version 2.0 (the "License");
6: * you may not use this file except in compliance with the License.
7: * You may obtain a copy of the License at
8: *
9: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: namespace OpenCloud\LoadBalancer\Resource;
19:
20: /**
21: * All load balancers utilize an algorithm that defines how traffic should be
22: * directed between back-end nodes. The default algorithm for newly created load
23: * balancers is RANDOM, which can be overridden at creation time or changed
24: * after the load balancer has been initially provisioned. The algorithm name is
25: * to be constant within a major revision of the load balancing API, though new
26: * algorithms may be created with a unique algorithm name within a given major
27: * revision of the service API.
28: *
29: * Accepted options are:
30: *
31: * * LEAST_CONNECTIONS: The node with the lowest number of connections will
32: * receive requests.
33: *
34: * * RANDOM: Back-end servers are selected at random.
35: *
36: * * ROUND_ROBIN: Connections are routed to each of the back-end servers in turn.
37: *
38: * * WEIGHTED_LEAST_CONNECTIONS: Each request will be assigned to a node based
39: * on the number of concurrent connections to the node and its weight.
40: *
41: * * WEIGHTED_ROUND_ROBIN: A round robin algorithm, but with different
42: * proportions of traffic being directed to the back-end nodes. Weights
43: * must be defined as part of the load balancer's node configuration.
44: */
45: class Algorithm extends ReadOnlyResource
46: {
47: public $name;
48:
49: protected static $json_name = 'algorithm';
50: protected static $url_resource = 'loadbalancers/algorithms';
51: }
52: