Overview

Namespaces

  • OpenCloud
    • Autoscale
      • Resource
    • CDN
      • Resource
    • CloudMonitoring
      • Collection
      • Exception
      • Resource
    • Common
      • Collection
      • Constants
      • Exceptions
      • Http
        • Message
      • Log
      • Resource
      • Service
    • Compute
      • Constants
      • Exception
      • Resource
    • Database
      • Resource
    • DNS
      • Collection
      • Resource
    • Identity
      • Constants
      • Resource
    • Image
      • Enum
      • Resource
        • JsonPatch
        • Schema
    • LoadBalancer
      • Collection
      • Enum
      • Resource
    • Networking
      • Resource
    • ObjectStore
      • Constants
      • Enum
      • Exception
      • Resource
      • Upload
    • Orchestration
      • Resource
    • Queues
      • Collection
      • Exception
      • Resource
    • Volume
      • Resource
  • PHP

Classes

  • AbstractResource
  • Access
  • Algorithm
  • AllowedDomain
  • CertificateMapping
  • ConnectionLogging
  • ConnectionThrottle
  • ContentCaching
  • ErrorPage
  • HealthMonitor
  • LoadBalancer
  • Metadata
  • Node
  • NodeEvent
  • NonIdUriResource
  • Protocol
  • ReadOnlyResource
  • SessionPersistence
  • SSLTermination
  • Stats
  • UsageRecord
  • VirtualIp
  • Overview
  • Namespace
  • Class
  • Tree
 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: use OpenCloud\Common\Exceptions\InvalidArgumentError;
21: use OpenCloud\Common\Resource\PersistentResource;
22: 
23: /**
24:  * Certificate Mapping uses SSL Termination to map a particular certificate
25:  * to a corresponding hostname, allowing multiple SSL certificates to
26:  * exist and be accurately utilized from a Load Balancer.
27:  */
28: class CertificateMapping extends PersistentResource
29: {
30:     /**
31:      * Id for the Certificate Map.
32:      *
33:      * @var int
34:      */
35:     public $id;
36: 
37:     /**
38:      * Hostname to be mapped to certificate.
39:      *
40:      * @var string
41:      */
42:     public $hostName;
43: 
44:     /**
45:      * Certificate to be mapped to hostname.
46:      *
47:      * @var string
48:      */
49:     public $certificate;
50: 
51:     /**
52:      * Private Key to the certificate.
53:      *
54:      * @var string
55:      */
56:     public $privateKey;
57: 
58:     /**
59:      * Intermediate certificate for the chain.
60:      *
61:      * @var string
62:      */
63:     public $intermediateCertificate;
64: 
65:     protected static $json_name = 'certificateMapping';
66:     protected static $json_collection_name = 'certificateMappings';
67:     protected static $url_resource = 'ssltermination/certificatemappings';
68: 
69:     protected $createKeys = array(
70:         'hostName',
71:         'certificate',
72:         'privateKey',
73:         'intermediateCertificate',
74:     );
75: 
76:     protected function updateJson($params = array())
77:     {
78:         $updateFields = array(
79:             'hostName',
80:             'certificate',
81:             'privateKey',
82:             'intermediateCertificate',
83:         );
84: 
85:         $object = new \stdClass();
86:         $object->certificateMapping = new \stdClass();
87:         foreach ($params as $name => $value) {
88:             if (!in_array($name, $updateFields)) {
89:                 throw new InvalidArgumentError("You cannot update ${name}.");
90:             }
91:             $object->certificateMapping->$name = $this->$name;
92:         }
93: 
94:         return $object;
95:     }
96: }
97: 
API documentation generated by ApiGen 2.8.0