Overview

Namespaces

  • Cloudflare
    • Organizations
      • Firewall
        • AccessRules
    • User
      • Billing
        • Subscriptions
      • Firewall
    • Zone
      • Firewall
      • SSL
      • WAF
        • Packages

Classes

  • Cloudflare\Api
  • Cloudflare\Certificates
  • Cloudflare\IPs
  • Cloudflare\Organizations\Firewall\AccessRules\Rules
  • Cloudflare\Organizations\Invites
  • Cloudflare\Organizations\Members
  • Cloudflare\Organizations\Organizations
  • Cloudflare\Organizations\Railguns
  • Cloudflare\Organizations\Roles
  • Cloudflare\Organizations\Virtual_Dns
  • Cloudflare\Railguns
  • Cloudflare\User
  • Cloudflare\User\Billing
  • Cloudflare\User\Billing\Subscriptions\Apps
  • Cloudflare\User\Billing\Subscriptions\Zones
  • Cloudflare\User\Firewall\AccessRules
  • Cloudflare\User\Invites
  • Cloudflare\User\Organizations
  • Cloudflare\User\Virtual_Dns
  • Cloudflare\Zone
  • Cloudflare\Zone\Analytics
  • Cloudflare\Zone\Cache
  • Cloudflare\Zone\CustomPages
  • Cloudflare\Zone\CustomSSL
  • Cloudflare\Zone\Dns
  • Cloudflare\Zone\Firewall\AccessRules
  • Cloudflare\Zone\KeylessSSL
  • Cloudflare\Zone\Pagerules
  • Cloudflare\Zone\Plan
  • Cloudflare\Zone\Railgun
  • Cloudflare\Zone\Settings
  • Cloudflare\Zone\SSL
  • Cloudflare\Zone\SSL\Analyze
  • Cloudflare\Zone\SSL\CertificatePacks
  • Cloudflare\Zone\WAF\Packages
  • Cloudflare\Zone\WAF\Packages\Groups
  • Cloudflare\Zone\WAF\Packages\Rules
  • Overview
  • Namespace
  • Class
 1: <?php
 2: 
 3: namespace Cloudflare\Zone\WAF\Packages;
 4: 
 5: use Cloudflare\Api;
 6: use Cloudflare\Zone;
 7: use Cloudflare\Zone\WAF;
 8: use Cloudflare\Zone\WAF\Packages;
 9: 
10: /**
11:  * CloudFlare API wrapper
12:  *
13:  * WAF Rule Groups properties
14:  *
15:  * @author James Bell <[email protected]>
16:  *
17:  * @version 1
18:  */
19: class Groups extends Api
20: {
21:     /**
22:      * Default permissions level
23:      *
24:      * @var array
25:      */
26:     protected $permission_level = ['read' => '#zone:read', 'edit' => '#zone:edit'];
27: 
28:     /**
29:      * List rule groups (permission needed: #zone:read)
30:      * Search, list, and sort rule groups contained within a package
31:      *
32:      * @param string      $zone_identifier
33:      * @param string      $package_identifier
34:      * @param string|null $name               Name of the firewall rule group
35:      * @param string|null $mode               Whether or not the rules contained within this group are configurable/usable
36:      * @param int|null    $rules_count        How many rules are contained within this group
37:      * @param int|null    $page               Page number of paginated results
38:      * @param int|null    $per_page           Number of groups per page
39:      * @param string|null $order              Field to order groups by
40:      * @param string|null $direction          Direction to order groups
41:      * @param string|null $match              Whether to match all search requirements or at least one (any)
42:      */
43:     public function groups($zone_identifier, $package_identifier, $name = null, $mode = null, $rules_count = null, $page = null, $per_page = null, $order = null, $direction = null, $match = null)
44:     {
45:         $data = [
46:             'name'        => $name,
47:             'mode'        => $mode,
48:             'rules_count' => $rules_count,
49:             'page'        => $page,
50:             'per_page'    => $per_page,
51:             'order'       => $order,
52:             'direction'   => $direction,
53:             'match'       => $match,
54:         ];
55: 
56:         return $this->get('/zones/'.$zone_identifier.'/firewall/waf/packages/'.$package_identifier.'/groups', $data);
57:     }
58: 
59:     /**
60:      * Rule group info (permission needed: #zone:read)
61:      * Get a single rule group
62:      *
63:      * @param string $zone_identifier
64:      * @param string $package_identifier
65:      * @param string $identifier
66:      */
67:     public function info($zone_identifier, $package_identifier, $identifier)
68:     {
69:         return $this->get('/zones/'.$zone_identifier.'/firewall/waf/packages/'.$package_identifier.'/groups/'.$identifier);
70:     }
71: 
72:     /**
73:      * Update Rule group (permission needed: #zone:edit)
74:      * Update the state of a rule group
75:      *
76:      * @param string      $zone_identifier
77:      * @param string      $package_identifier
78:      * @param string      $identifier
79:      * @param string|null $mode               Whether or not the rules contained within this group are configurable/usable
80:      */
81:     public function update($zone_identifier, $package_identifier, $identifier, $mode = null)
82:     {
83:         $data = [
84:             'mode' => $mode,
85:         ];
86: 
87:         return $this->patch('/zones/'.$zone_identifier.'/firewall/waf/packages/'.$package_identifier.'/groups/'.$identifier, $data);
88:     }
89: }
90: 
API documentation generated by ApiGen