-
Notifications
You must be signed in to change notification settings - Fork 268
Expand file tree
/
Copy pathSSL.php
More file actions
229 lines (213 loc) · 6.32 KB
/
Copy pathSSL.php
File metadata and controls
229 lines (213 loc) · 6.32 KB
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<?php
namespace Cloudflare\API\Endpoints;
use Cloudflare\API\Adapter\Adapter;
class SSL implements API
{
private $adapter;
public function __construct(Adapter $adapter)
{
$this->adapter = $adapter;
}
/**
* Get the SSL setting for the zone
*
* @param string $zoneID The ID of the zone
* @return string|false
*/
public function getSSLSetting(string $zoneID)
{
$return = $this->adapter->get(
'zones/' . $zoneID . '/settings/ssl'
);
$body = json_decode($return->getBody());
if (isset($body->result)) {
return $body->result->value;
}
return false;
}
/**
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
*
* Get SSL Verification Info for a Zone
*
* @param string $zoneID The ID of the zone
* @param bool $retry Immediately retry SSL Verification
* @return array|false
*/
public function getSSLVerificationStatus(string $zoneID, bool $retry = false)
{
$return = $this->adapter->get(
'zones/' . $zoneID . '/ssl/verification',
[
'retry' => $retry
]
);
$body = json_decode($return->getBody());
if (isset($body->result)) {
return $body;
}
return false;
}
/**
* Get the HTTPS Redirect setting for the zone
*
* @param string $zoneID The ID of the zone
* @return string|false
*/
public function getHTTPSRedirectSetting(string $zoneID)
{
$return = $this->adapter->get(
'zones/' . $zoneID . '/settings/always_use_https'
);
$body = json_decode($return->getBody());
if (isset($body->result)) {
return $body->result;
}
return false;
}
/**
* Get the HTTPS Rewrite setting for the zone
*
* @param string $zoneID The ID of the zone
* @return string|false
*/
public function getHTTPSRewritesSetting(string $zoneID)
{
$return = $this->adapter->get(
'zones/' . $zoneID . '/settings/automatic_https_rewrites'
);
$body = json_decode($return->getBody());
if (isset($body->result)) {
return $body->result;
}
return false;
}
/**
* Update the SSL setting for the zone
*
* @param string $zoneID The ID of the zone
* @param string $value The value of the zone setting
* @return bool
*/
public function updateSSLSetting(string $zoneID, string $value)
{
$return = $this->adapter->patch(
'zones/' . $zoneID . '/settings/ssl',
[
'value' => $value,
]
);
$body = json_decode($return->getBody());
if (isset($body->success) && $body->success == true) {
return true;
}
return false;
}
/**
* Update the HTTPS Redirect setting for the zone
*
* @param string $zoneID The ID of the zone
* @param string $value The value of the zone setting
* @return bool
*/
public function updateHTTPSRedirectSetting(string $zoneID, string $value)
{
$return = $this->adapter->patch(
'zones/' . $zoneID . '/settings/always_use_https',
[
'value' => $value,
]
);
$body = json_decode($return->getBody());
if (isset($body->success) && $body->success == true) {
return true;
}
return false;
}
/**
* Update the HTTPS Rewrite setting for the zone
*
* @param string $zoneID The ID of the zone
* @param string $value The value of the zone setting
* @return bool
*/
public function updateHTTPSRewritesSetting(string $zoneID, string $value)
{
$return = $this->adapter->patch(
'zones/' . $zoneID . '/settings/automatic_https_rewrites',
[
'value' => $value,
]
);
$body = json_decode($return->getBody());
if (isset($body->success) && $body->success == true) {
return true;
}
return false;
}
/**
* Update the SSL certificate pack validation method
*
* @param string $zoneID The ID of the zone
* @param string $certPackUUID The certificate pack UUID
* @param string $validationMethod The verification method
* @return bool
*/
public function updateSSLCertificatePackValidationMethod(string $zoneID, string $certPackUUID, string $validationMethod)
{
$return = $this->adapter->patch(
'zones/' . $zoneID . '/ssl/verification/' . $certPackUUID,
[
'validation_method' => $validationMethod,
]
);
$body = json_decode($return->getBody());
if (isset($body->success) && $body->success == true) {
return true;
}
return false;
}
/**
* List certificate packs
*
* @param string $zoneID The ID of the zone
* @param string|null $status Use "all" to include certificate packs of all statuses and not only active ones
* @return array
* @throws EndpointException
*/
public function listCertificatePacks(string $zoneID, string $status = null): array
{
if ($status != null && !in_array($status, ['all'])) {
throw new EndpointException('Certificate packs can only be listed by status of all.');
}
$return = $this->adapter->get(
'zones/' . $zoneID . '/ssl/certificate_packs',
[
'status' => $status,
]
);
$body = json_decode($return->getBody());
if (isset($body->result)) {
return $body->result;
}
return false;
}
/**
* Get a specific certificate pack
*
* @param string $zoneID The ID of the zone
* @param string $certPackUUID The certificate pack UUID
* @return \stdClass
* @throws EndpointException
*/
public function getCertificatePack(string $zoneID, string $certPackUUID): \stdClass
{
$return = $this->adapter->get(
'zones/' . $zoneID . '/ssl/certificate_packs/' . $certPackUUID
);
$body = json_decode($return->getBody());
if (isset($body->result)) {
return $body->result;
}
}
}