Skip to content

Commit 0a46d40

Browse files
authored
Merge pull request #494 from ecloud-jay2/master
added resource tier client
2 parents e0f665a + d9982e2 commit 0a46d40

File tree

6 files changed

+74
-10
lines changed

6 files changed

+74
-10
lines changed

src/eCloud/AvailabilityZoneClient.php

+8
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace UKFast\SDK\eCloud;
44

55
use UKFast\SDK\eCloud\Entities\Product;
6+
use UKFast\SDK\eCloud\Entities\ResourceTier;
67
use UKFast\SDK\Entities\ClientEntityInterface;
78
use UKFast\SDK\Traits\PageItems;
89
use UKFast\SDK\eCloud\Entities\AvailabilityZone;
@@ -36,4 +37,11 @@ public function getProducts($id, $filters = [])
3637
return new Product($this->apiToFriendly($data, Product::$entityMap));
3738
}, $filters);
3839
}
40+
41+
public function getResourceTiers($id, $filters = [])
42+
{
43+
return $this->getChildResources($id, 'resource-tiers', function ($data) {
44+
return new ResourceTier($this->apiToFriendly($data, ResourceTier::$entityMap));
45+
}, $filters);
46+
}
3947
}

src/eCloud/Client.php

+8
Original file line numberDiff line numberDiff line change
@@ -367,4 +367,12 @@ public function affinityRuleMembers()
367367
{
368368
return (new AffinityRuleMemberClient($this->httpClient))->auth($this->token);
369369
}
370+
371+
/**
372+
* @return BaseClient
373+
*/
374+
public function resourceTiers()
375+
{
376+
return (new ResourceTierClient($this->httpClient))->auth($this->token);
377+
}
370378
}

src/eCloud/Entities/HostGroup.php

+11
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,15 @@
1717
class HostGroup extends Entity
1818
{
1919
protected $dates = ['createdAt', 'updatedAt'];
20+
21+
public static $entityMap = [
22+
'id' => 'id',
23+
'name' => 'name',
24+
'vpc_id' => 'vpcId',
25+
'availability_zone_id' => 'availabilityZoneId',
26+
'host_spec_id' => 'specId',
27+
'sync' => 'sync',
28+
'created_at' => 'createdAt',
29+
'updated_at' => 'updatedAt',
30+
];
2031
}

src/eCloud/Entities/ResourceTier.php

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace UKFast\SDK\eCloud\Entities;
4+
5+
use UKFast\SDK\Entity;
6+
7+
/**
8+
* @property int $id
9+
* @property string $name
10+
* @property string $availabilityZoneId
11+
* @property string $createdAt
12+
* @property string $updatedAt
13+
*/
14+
class ResourceTier extends Entity
15+
{
16+
protected $dates = ['createdAt', 'updatedAt'];
17+
18+
public static $entityMap = [
19+
'id' => 'id',
20+
'name' => 'name',
21+
'availability_zone_id' => 'availabilityZoneId',
22+
'created_at' => 'createdAt',
23+
'updated_at' => 'updatedAt',
24+
];
25+
}

src/eCloud/HostGroupClient.php

+1-10
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,7 @@ class HostGroupClient extends Client implements ClientEntityInterface
1414

1515
public function getEntityMap()
1616
{
17-
return [
18-
'id' => 'id',
19-
'name' => 'name',
20-
'vpc_id' => 'vpcId',
21-
'availability_zone_id' => 'availabilityZoneId',
22-
'host_spec_id' => 'specId',
23-
'sync' => 'sync',
24-
'created_at' => 'createdAt',
25-
'updated_at' => 'updatedAt',
26-
];
17+
return HostGroup::$entityMap;
2718
}
2819

2920
public function loadEntity($data)

src/eCloud/ResourceTierClient.php

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace UKFast\SDK\eCloud;
4+
5+
use UKFast\SDK\Entities\ClientEntityInterface;
6+
use UKFast\SDK\Traits\PageItems;
7+
use UKFast\SDK\eCloud\Entities\ResourceTier;
8+
9+
class ResourceTierClient extends Client implements ClientEntityInterface
10+
{
11+
use PageItems;
12+
13+
protected $collectionPath = 'v2/resource-tiers';
14+
15+
public function loadEntity($data)
16+
{
17+
return new ResourceTier(
18+
$this->apiToFriendly($data, ResourceTier::$entityMap)
19+
);
20+
}
21+
}

0 commit comments

Comments
 (0)