1: <?php
2:
3: namespace Cloudflare\Zone;
4:
5: use Cloudflare\Api;
6: use Cloudflare\Zone;
7:
8: /**
9: * CloudFlare API wrapper
10: *
11: * Railguns for a Zone
12: *
13: * @author James Bell <[email protected]>
14: *
15: * @version 1
16: */
17: class Railgun extends Api
18: {
19: /**
20: * Default permissions level
21: *
22: * @var array
23: */
24: protected $permission_level = ['read' => '#zone_settings:read', 'edit' => '#zone_settings:edit'];
25:
26: /**
27: * Get available Railguns (permission needed: #zone_settings:read)
28: * A list of available Railguns the zone can use
29: *
30: * @param string $zone_identifier API item identifier tag
31: */
32: public function railguns($zone_identifier)
33: {
34: return $this->get('zones/'.$zone_identifier.'/railguns');
35: }
36:
37: /**
38: * Get Railgun details (permission needed: #zone_settings:read)
39: * Details about a specific Railgun
40: *
41: * @param string $zone_identifier API item identifier tag
42: * @param string $identifier
43: */
44: public function details($zone_identifier, $identifier)
45: {
46: return $this->get('zones/'.$zone_identifier.'/railguns/'.$identifier);
47: }
48:
49: /**
50: * Test Railgun connection (permission needed: #zone_settings:read)
51: * Test Railgun connection to the Zone
52: *
53: * @param string $zone_identifier API item identifier tag
54: * @param string $identifier
55: */
56: public function diagnose($zone_identifier, $identifier)
57: {
58: return $this->get('zones/'.$zone_identifier.'/railguns/'.$identifier.'/diagnose');
59: }
60:
61: /**
62: * Connect or disconnect a Railgun (permission needed: #zone_settings:edit)
63: * Connect or disconnect a Railgun
64: *
65: * @param string $zone_identifier
66: * @param string $identifier API item identifier tag
67: * @param bool $connected A flag indicating whether the given zone is connected to the Railgun [valid values: (true,false)]
68: */
69: public function connected($zone_identifier, $identifier, $connected)
70: {
71: $data = [
72: 'connected' => $connected,
73: ];
74:
75: return $this->get('zones/'.$zone_identifier.'/railguns/'.$identifier, $data);
76: }
77: }
78: