-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathUserRootLink.php
122 lines (109 loc) · 2.88 KB
/
UserRootLink.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php declare(strict_types=1);
namespace MyENA\RGW\Chain;
use MyENA\RGW\AbstractLink;
use MyENA\RGW\Chain\User\Capabilities;
use MyENA\RGW\Chain\User\Create;
use MyENA\RGW\Chain\User\Delete;
use MyENA\RGW\Chain\User\Info;
use MyENA\RGW\Chain\User\Key;
use MyENA\RGW\Chain\User\Modify;
use MyENA\RGW\Chain\User\Quota;
use MyENA\RGW\Chain\User\SubUser;
use MyENA\RGW\Links\HeaderLink;
use MyENA\RGW\Links\UriLink;
/**
* Class User
* @package MyENA\RGW\Chain
*/
class UserRootLink extends AbstractLink implements UriLink, HeaderLink
{
public const PATH = '/user';
/**
* @return string
*/
public function getUriPart(): string
{
return self::PATH;
}
/**
* @return array
*/
public function getRequestHeaders(): array
{
return RGW_DEFAULT_REQUEST_HEADERS;
}
/**
* @param string $uid
* @param string $displayName
* @param array $optional
* @return \MyENA\RGW\Chain\User\Create
*/
public function Create(string $uid, string $displayName, array $optional = []): Create
{
return Create::new(
$this,
[
Create::PARAM_UID => $uid,
Create::PARAM_DISPLAY_NAME => $displayName,
] + $optional
);
}
/**
* @param string $uid
* @param bool $purgeData
* @return \MyENA\RGW\Chain\User\Delete
*/
public function Delete(string $uid, ?bool $purgeData = null): Delete
{
return Delete::new($this, [Delete::PARAM_UID => $uid, Delete::PARAM_PURGE_DATA => $purgeData]);
}
/**
* @param string $uid
* @param bool $stats
* @return \MyENA\RGW\Chain\User\Info
*/
public function Info(string $uid, ?bool $stats = null): Info
{
return Info::new($this, [Info::PARAM_UID => $uid, Info::PARAM_STATS => $stats]);
}
/**
* @param string $uid
* @param array $optional
* @return \MyENA\RGW\Chain\User\Modify
*/
public function Modify(string $uid, array $optional = []): Modify
{
return Modify::new($this, [Modify::PARAM_UID => $uid] + $optional);
}
/**
* @param string $uid
* @return \MyENA\RGW\Chain\User\Quota
*/
public function Quota(string $uid): Quota
{
return Quota::new($this, [Quota::PARAM_UID => $uid]);
}
/**
* @param string $uid
* @return \MyENA\RGW\Chain\User\SubUser
*/
public function SubUser(string $uid): SubUser
{
return SubUser::new($this, [SubUser::PARAM_UID => $uid]);
}
/**
* @param string $uid
* @return \MyENA\RGW\Chain\User\Capabilities
*/
public function Capabilities(string $uid): Capabilities
{
return Capabilities::new($this, [Capabilities::PARAM_UID => $uid]);
}
/**
* @return \MyENA\RGW\Chain\User\Key
*/
public function Key(): Key
{
return Key::new($this);
}
}