Overview
  • Namespace
  • Class

Namespaces

  • OpenCloud
    • Autoscale
      • 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
      • Exception
      • Resource
      • Upload
    • Orchestration
      • Resource
    • Queues
      • Collection
      • Exception
      • Resource
    • Volume
      • Resource

Classes

  • OpenCloud\Volume\Resource\Snapshot
  • OpenCloud\Volume\Resource\Volume
  • OpenCloud\Volume\Resource\VolumeType
  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\CloudMonitoring;
 19 
 20 use OpenCloud\Common\Service\CatalogService;
 21 
 22 /**
 23  * Cloud Monitoring service.
 24  *
 25  * @package OpenCloud\CloudMonitoring
 26  * @link    http://docs.rackspace.com/cm/api/v1.0/cm-devguide/content/index.html
 27  */
 28 class Service extends CatalogService
 29 {
 30     const DEFAULT_TYPE = 'rax:monitor';
 31     const DEFAULT_NAME = 'cloudMonitoring';
 32 
 33     protected $regionless = true;
 34 
 35     /**
 36      * @var array CloudMonitoring resources.
 37      */
 38     protected $resources = array(
 39         'Agent',
 40         'AgentConnection',
 41         'AgentHost',
 42         'AgentHostInfo',
 43         'AgentTarget',
 44         'AgentToken',
 45         'Alarm',
 46         'Changelog',
 47         'Check',
 48         'CheckType',
 49         'Entity',
 50         'Metric',
 51         'Notification',
 52         'NotificationHistory',
 53         'NotificationPlan',
 54         'NotificationType',
 55         'View',
 56         'Zone'
 57     );
 58 
 59     /**
 60      * Get an agent.
 61      *
 62      * @param string|null $id
 63      * @return \OpenCloud\CloudMonitoring\Resource\Agent
 64      */
 65     public function getAgent($id = null)
 66     {
 67         return $this->resource('Agent', $id);
 68     }
 69 
 70     public function getAgents()
 71     {
 72         return $this->resourceList('Agent');
 73     }
 74 
 75     public function getAgentHost($agentId = null)
 76     {
 77         return $this->resource('AgentHost', null, $this->getAgent($agentId));
 78     }
 79 
 80     public function getAgentTargets()
 81     {
 82         return $this->resourceList('AgentTarget');
 83     }
 84 
 85     public function getAgentToken($id = null)
 86     {
 87         return $this->resource('AgentToken', $id);
 88     }
 89 
 90     public function getAgentTokens()
 91     {
 92         return $this->resourceList('AgentToken');
 93     }
 94 
 95     /**
 96      * Return a collection of Entities.
 97      *
 98      * @return \OpenCloud\Common\Collection
 99      */
100     public function getEntities()
101     {
102         return $this->resourceList('Entity');
103     }
104 
105     public function createEntity(array $params)
106     {
107         return $this->getEntity()->create($params);
108     }
109 
110     /**
111      * Get either an empty object, or a populated one that exists on the API.
112      *
113      * @param null $id
114      * @return \OpenCloud\CloudMonitoring\Resource\Entity
115      */
116     public function getEntity($id = null)
117     {
118         return $this->resource('Entity', $id);
119     }
120 
121     /**
122      * Get a collection of possible check types.
123      *
124      * @return \OpenCloud\Common\Collection
125      */
126     public function getCheckTypes()
127     {
128         return $this->resourceList('CheckType');
129     }
130 
131     /**
132      * Get a particular check type.
133      *
134      * @param null $id
135      * @return \OpenCloud\CloudMonitoring\Resource\CheckType
136      */
137     public function getCheckType($id = null)
138     {
139         return $this->resource('CheckType', $id);
140     }
141 
142     /**
143      * Create a new notification.
144      *
145      * @param array $params
146      * @return
147      */
148     public function createNotification(array $params)
149     {
150         return $this->getNotification($params)->create();
151     }
152 
153     /**
154      * Test the parameters of a notification before creating it.
155      *
156      * @param array $params
157      * @return mixed
158      */
159     public function testNotification(array $params)
160     {
161         return $this->getNotification()->testParams($params);
162     }
163 
164     /**
165      * Get a particular notification.
166      *
167      * @param null $id
168      * @return \OpenCloud\CloudMonitoring\Resource\Notification
169      */
170     public function getNotification($id = null)
171     {
172         return $this->resource('Notification', $id);
173     }
174 
175     /**
176      * Get a collection of Notifications.
177      *
178      * @return \OpenCloud\Common\Collection
179      */
180     public function getNotifications()
181     {
182         return $this->resourceList('Notification');
183     }
184 
185     /**
186      * Create a new notification plan.
187      *
188      * @param array $params
189      * @return mixed
190      */
191     public function createNotificationPlan(array $params)
192     {
193         return $this->getNotificationPlan()->create($params);
194     }
195 
196     /**
197      * Get a particular notification plan.
198      *
199      * @param null $id
200      * @return \OpenCloud\CloudMonitoring\Resource\NotificationPlan
201      */
202     public function getNotificationPlan($id = null)
203     {
204         return $this->resource('NotificationPlan', $id);
205     }
206 
207     /**
208      * Get a collection of notification plans.
209      *
210      * @return \OpenCloud\Common\Collection
211      */
212     public function getNotificationPlans()
213     {
214         return $this->resourceList('NotificationPlan');
215     }
216 
217     /**
218      * Get a particular notification type.
219      *
220      * @param null $id
221      * @return \OpenCloud\CloudMonitoring\Resource\NotificationType
222      */
223     public function getNotificationType($id = null)
224     {
225         return $this->resource('NotificationType', $id);
226     }
227 
228     /**
229      * Get a collection of notification types.
230      *
231      * @return \OpenCloud\Common\Collection
232      */
233     public function getNotificationTypes()
234     {
235         return $this->resourceList('NotificationType');
236     }
237 
238     /**
239      * Get a collection of monitoring zones.
240      *
241      * @return \OpenCloud\Common\Collection
242      */
243     public function getMonitoringZones()
244     {
245         return $this->resourceList('Zone');
246     }
247 
248     /**
249      * Get a particular monitoring zone.
250      *
251      * @param null $id
252      * @return \OpenCloud\CloudMonitoring\Resource\Zone
253      */
254     public function getMonitoringZone($id = null)
255     {
256         return $this->resource('Zone', $id);
257     }
258 
259     /**
260      * Get a changelog - either a general one or one catered for a particular entity.
261      *
262      * @param string|null $data
263      * @return object|false
264      */
265     public function getChangelog($data = null)
266     {
267         // Cater for Collections
268         if (is_object($data)) {
269             return $this->resource('Changelog', $data);
270         }
271 
272         $url = $this->resource('Changelog')->getUrl();
273 
274         if ($data) {
275             $url->setQuery(array('entityId' => (string) $data));
276         }
277 
278         return $this->resourceList('Changelog', $url);
279     }
280 
281     /**
282      * @return object|false
283      */
284     public function getViews()
285     {
286         return $this->resourceList('View');
287     }
288 }
289 
API documentation generated by ApiGen