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 * The SSL Termination feature allows a load balancer user to terminate SSL
22 * traffic at the load balancer layer versus at the web server layer. A user may
23 * choose to configure SSL Termination using a key and an SSL certificate or an
24 * (Intermediate) SSL certificate.
25 *
26 * When SSL Termination is configured on a load balancer, a secure shadow server
27 * is created that listens only for secure traffic on a user-specified port.
28 * This shadow server is only visible to and manageable by the system. Existing
29 * or updated attributes on a load balancer with SSL Termination will also apply
30 * to its shadow server. For example, if Connection Logging is enabled on an SSL
31 * load balancer, it will also be enabled on the shadow server and Cloud Files
32 * logs will contain log files for both.
33 *
34 * @link http://docs.rackspace.com/loadbalancers/api/v1.0/clb-devguide/content/SSLTermination-d1e2479.html
35 */
36 class SSLTermination extends NonIdUriResource
37 {
38 /**
39 * The certificate used for SSL termination.
40 *
41 * @var string
42 */
43 public $certificate;
44
45 /**
46 * Determines if the load balancer is enabled to terminate SSL traffic.
47 * If set to FALSE, the load balancer will retain its specified SSL
48 * attributes, but will not terminate SSL traffic.
49 *
50 * @var bool
51 */
52 public $enabled;
53
54 /**
55 * Determines if the load balancer may accept only secure traffic.
56 * If set to TRUE, the load balancer will not accept non-secure traffic.
57 *
58 * @var bool
59 */
60 public $secureTrafficOnly;
61
62 /**
63 * The private key for the SSL certificate.
64 *
65 * @var string
66 */
67 public $privatekey;
68
69 /**
70 * The user's intermediate certificate used for SSL termination.
71 *
72 * @var string
73 */
74 public $intermediateCertificate;
75
76 /**
77 * The port on which the SSL termination load balancer will listen for secure traffic.
78 *
79 * @var int
80 */
81 public $securePort;
82
83 protected static $json_name = "sslTermination";
84 protected static $url_resource = "ssltermination";
85
86 protected $createKeys = array(
87 'certificate',
88 'enabled',
89 'secureTrafficOnly',
90 'privatekey',
91 'intermediateCertificate',
92 'securePort'
93 );
94
95 public function create($params = array())
96 {
97 return $this->update($params);
98 }
99 }
100