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\Autoscale\Resource;
19:
20: /**
21: * Description of ScalingPolicy
22: */
23: class ScalingPolicy extends AbstractResource
24: {
25: public $id;
26: public $links;
27: public $name;
28: public $change;
29: public $cooldown;
30: public $type;
31: public $metadata;
32:
33: protected static $json_name = 'policy';
34: protected static $json_collection_name = 'policies';
35: protected static $url_resource = 'policies';
36:
37: public $createKeys = array(
38: 'name',
39: 'change',
40: 'cooldown',
41: 'type'
42: );
43:
44: public function getWebhookList()
45: {
46: return $this->getService()->resourceList('Webhook', null, $this);
47: }
48:
49: public function getWebhook($id = null)
50: {
51: return $this->getService()->resource('Webhook', $id, $this);
52: }
53:
54: public function createWebhooks(array $webhooks)
55: {
56: $url = clone $this->getUrl();
57: $url->addPath('webhooks');
58:
59: $body = json_encode($webhooks);
60: $this->checkJsonError();
61:
62: return $this->getService()
63: ->getClient()
64: ->post($url, self::getJsonHeader(), $body)
65: ->send();
66: }
67:
68: public function execute()
69: {
70: return $this->getClient()->post($this->url('execute'))->send();
71: }
72: }
73: