Overview

Namespaces

  • OpenCloud
    • Autoscale
      • Resource
    • CloudMonitoring
      • 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
      • Enum
      • Resource
    • ObjectStore
      • Constants
      • Exception
      • Resource
      • Upload
    • Orchestration
    • Queues
      • Exception
      • Resource
    • Volume
      • Resource
  • PHP

Classes

  • Service
  • Overview
  • Namespace
  • Class
  • Tree
  • Download
  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;
 19: 
 20: use OpenCloud\Common\Service\NovaService;
 21: 
 22: /**
 23:  * Class that encapsulates the Rackspace Cloud Load Balancers service
 24:  *
 25:  * @package OpenCloud\LoadBalancer
 26:  */
 27: class Service extends NovaService
 28: {
 29:     const DEFAULT_NAME = 'cloudLoadBalancers';
 30:     const DEFAULT_TYPE = 'rax:load-balancer';
 31: 
 32:     /**
 33:      * Return a Load Balancer
 34:      *
 35:      * @param string $id
 36:      * @return \OpenCloud\LoadBalancer\Resource\LoadBalancer
 37:      */
 38:     public function loadBalancer($id = null)
 39:     {
 40:         return $this->resource('LoadBalancer', $id);
 41:     }
 42: 
 43:     /**
 44:      * Return a paginated collection of load balancers
 45:      *
 46:      * @param bool $detail If TRUE, all details are returned; otherwise, a
 47:      *                     minimal set (ID, name) is retrieved
 48:      * @param array $filter Optional query params used for search
 49:      * @return \OpenCloud\Common\Collection\PaginatedIterator
 50:      */
 51:     public function loadBalancerList($detail = true, array $filter = array())
 52:     {
 53:         $url = $this->getUrl();
 54:         $url->addPath(Resource\LoadBalancer::resourceName());
 55:         if ($detail) {
 56:             $url->addPath('detail');
 57:         }
 58:         $url->setQuery($filter);
 59: 
 60:         return $this->resourceList('LoadBalancer', $url);
 61:     }
 62: 
 63:     /**
 64:      * @deprecated
 65:      */
 66:     public function billableLoadBalancer($id = null)
 67:     {
 68:         $this->getLogger()->deprecated(__METHOD__, 'loadBalancer');
 69: 
 70:         return $this->resource('LoadBalancer', $id);
 71:     }
 72: 
 73:     /**
 74:      * Returns a paginated collection of load balancers that have been billed
 75:      * between a certain period.
 76:      *
 77:      * @link http://docs.rackspace.com/loadbalancers/api/v1.0/clb-devguide/content/List_Usage-d1e3014.html
 78:      * @param array $filter
 79:      * @return \OpenCloud\Common\Collection\PaginatedIterator
 80:      */
 81:     public function billableLoadBalancerList(array $filter = array())
 82:     {
 83:         $url = $this->getUrl();
 84:         $url->addPath(Resource\LoadBalancer::resourceName());
 85:         $url->addPath('billable');
 86:         $url->setQuery($filter);
 87: 
 88:         return $this->resourceList('LoadBalancer', $url);
 89:     }
 90: 
 91:     /**
 92:      * Returns an allowed domain
 93:      *
 94:      * @param mixed $data either an array of values or null
 95:      * @return \OpenCloud\LoadBalancer\Resource\AllowedDomain
 96:      */
 97:     public function allowedDomain($data = null)
 98:     {
 99:         return $this->resource('AllowedDomain', $data);
100:     }
101: 
102:     /**
103:      * Returns Collection of AllowedDomain object
104:      *
105:      * @return \OpenCloud\Common\Collection\PaginatedIterator
106:      */
107:     public function allowedDomainList()
108:     {
109:         return $this->resourceList('AllowedDomain');
110:     }
111: 
112:     /**
113:      * single protocol (should never be called directly)
114:      *
115:      * Convenience method to be used by the ProtocolList Collection.
116:      *
117:      * @return \OpenCloud\LoadBalancer\Resource\Protocol
118:      */
119:     public function protocol($data = null)
120:     {
121:         return $this->resource('Protocol', $data);
122:     }
123: 
124:     /**
125:      * Returns a list of Protocol objects
126:      *
127:      * @return \OpenCloud\Common\Collection\PaginatedIterator
128:      */
129:     public function protocolList()
130:     {
131:         return $this->resourceList('Protocol');
132:     }
133: 
134:     /**
135:      * single algorithm (should never be called directly)
136:      *
137:      * convenience method used by the Collection factory
138:      *
139:      * @return \OpenCloud\LoadBalancer\Resource\Algorithm
140:      */
141:     public function algorithm($data = null)
142:     {
143:         return $this->resource('Algorithm', $data);
144:     }
145: 
146:     /**
147:      * Return a list of Algorithm objects
148:      *
149:      * @return \OpenCloud\Common\Collection\PaginatedIterator
150:      */
151:     public function algorithmList()
152:     {
153:         return $this->resourceList('Algorithm');
154:     }
155: }
156: 
PHP OpenCloud API API documentation generated by ApiGen 2.8.0