1: <?php
2:
3: namespace Cloudflare\Zone\WAF;
4:
5: use Cloudflare\Api;
6: use Cloudflare\Zone;
7: use Cloudflare\Zone\WAF;
8:
9: /**
10: * CloudFlare API wrapper
11: *
12: * WAF Rule Packages properties
13: *
14: * @author James Bell <[email protected]>
15: *
16: * @version 1
17: */
18: class Packages extends Api
19: {
20: /**
21: * Default permissions level
22: *
23: * @var array
24: */
25: protected $permission_level = ['read' => '#zone:read', 'edit' => '#zone:edit'];
26:
27: /**
28: * List firewall packages (permission needed: #zone:read)
29: * Retrieve firewall packages for a zone
30: *
31: * @param string $zone_identifier
32: * @param string|null $name Name of the firewall package
33: * @param int|null $page Page number of paginated results
34: * @param int|null $per_page Number of packages per page
35: * @param string|null $order Field to order packages by
36: * @param string|null $direction Direction to order packages
37: * @param string|null $match Whether to match all search requirements or at least one (any)
38: */
39: public function rules($zone_identifier, $name = null, $page = null, $per_page = null, $order = null, $direction = null, $match = null)
40: {
41: $data = [
42: 'name' => $name,
43: 'page' => $page,
44: 'per_page' => $per_page,
45: 'order' => $order,
46: 'direction' => $direction,
47: 'match' => $match,
48: ];
49:
50: return $this->get('/zones/'.$zone_identifier.'/firewall/waf/packages', $data);
51: }
52:
53: /**
54: * Firewall package info (permission needed: #zone:read)
55: * Get information about a single firewall package
56: *
57: * @param string $zone_identifier
58: * @param string $identifier
59: */
60: public function info($zone_identifier, $identifier)
61: {
62: return $this->get('/zones/'.$zone_identifier.'/firewall/waf/packages/'.$identifier);
63: }
64:
65: /**
66: * Change anomaly-detection web application firewall package settings (permission needed: #zone:edit)
67: * Change the sensitivity and action for an anomaly detection type WAF rule package
68: *
69: * @param string $zone_identifier
70: * @param string $identifier
71: * @param string|null $sensitivity The sensitivity of the firewall package.
72: * @param string|null $action_mode The default action that will be taken for rules under the firewall package.
73: */
74: public function update(string $zone_identifier, $identifier, $sensitivity = null, $action_mode = null)
75: {
76: $data = [
77: 'sensitivity' => $sensitivity,
78: 'action_mode' => $action_mode,
79: ];
80:
81: return $this->patch('/zones/'.$zone_identifier.'/firewall/waf/packages/'.$identifier, $data);
82: }
83: }
84: