Class NotificationPlan
Represents an object that can be retrieved, created, updated and deleted.
This class abstracts much of the common functionality between:
* Nova servers; * Swift containers and objects; * DBAAS instances; * Cinder
volumes; * and various other objects that: * have a URL; * can be created,
updated, deleted, or retrieved; * use a standard JSON format with a top-level
element followed by a child object with attributes.
In general, you can create a persistent object class by subclassing this
class and defining some protected, static variables:
* $url_resource - the sub-resource value in the URL of the parent. For example,
if the parent URL is http://something/parent
, then setting this
value to "another" would result in a URL for the persistent object of
http://something/parent/another
.
* $json_name - the top-level JSON object name. For example, if the persistent
object is represented by {"foo": {"attr":value, ...}}
, then set
$json_name to "foo".
* $json_collection_name - optional; this value is the name of a collection of
the persistent objects. If not provided, it defaults to json_name
with an appended "s" (e.g., if json_name
is "foo", then
json_collection_name
would be "foos"). Set this value if the
collection name doesn't follow this pattern.
* $json_collection_element - the common pattern for a collection is:
{"collection": [{"attr":"value",...}, {"attr":"value",...}, ...]}
That is, each element of the array is a \stdClass object containing the object's
attributes. In rare instances, the objects in the array are named, and
json_collection_element
contains the name of the collection
objects. For example, in this JSON response:
{"allowedDomain":[{"allowedDomain":{"name":"foo"}}]}
,
json_collection_element
would be set to "allowedDomain".
The PersistentObject class supports the standard CRUD methods; if these are
not needed (i.e. not supported by the service), the subclass should redefine
these to call the noCreate
, noUpdate
, or
noDelete
methods, which will trigger an appropriate exception. For
example, if an object cannot be created:
function create($params = array()) { $this->noCreate(); }
- OpenCloud\Common\Base
-
OpenCloud\Common\PersistentObject
-
OpenCloud\CloudMonitoring\Resource\AbstractResource
-
OpenCloud\CloudMonitoring\Resource\NotificationPlan
Located at OpenCloud/CloudMonitoring/Resource/NotificationPlan.php
createJson(),
listAll(),
test(),
testParams(),
updateJson()
|
protected static
boolean
|
$json_name | false |
|
protected static
string
|
$json_collection_name | 'values' |
|
protected static
string
|
$url_resource | 'notification_plans' |
|
protected static
array
|
$requiredKeys | array(
'label'
) |
|
protected static
array
|
$emptyObject | array(
'label',
'critical_state',
'ok_state',
'warning_state'
) |
$metadata
|