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 * Session persistence is a feature of the load balancing service that forces
22 * multiple requests, of the same protocol, from clients to be directed to the
23 * same node. This is common with many web applications that do not inherently
24 * share application state between back-end servers. Two session persistence
25 * modes are available, as described in the following table:
26 *
27 * * HTTP_COOKIE: A session persistence mechanism that inserts an HTTP cookie
28 * and is used to determine the destination back-end node. This is supported
29 * for HTTP load balancing only.
30 *
31 * * SOURCE_IP: A session persistence mechanism that will keep track of the
32 * source IP address that is mapped and is able to determine the destination
33 * back-end node. This is supported for HTTPS pass-through and non-HTTP
34 * load balancing only.
35 */
36 class SessionPersistence extends NonIdUriResource
37 {
38 /**
39 * Mode in which session persistence mechanism operates. Can either be set
40 * to HTTP_COOKIE or SOURCE_IP.
41 *
42 * @var string
43 */
44 public $persistenceType;
45
46 protected static $json_name = 'sessionPersistence';
47 protected static $url_resource = 'sessionpersistence';
48
49 protected $createKeys = array('persistenceType');
50 }
51