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\User;
  4: 
  5: use Cloudflare\Api;
  6: use Cloudflare\User;
  7: 
  8: /**
  9:  * CloudFlare API wrapper
 10:  *
 11:  * Virtual DNS (Users)
 12:  * User-level Virtual DNS Management
 13:  *
 14:  * @author James Bell <[email protected]>
 15:  *
 16:  * @version 1
 17:  */
 18: class Virtual_Dns extends Api
 19: {
 20:     /**
 21:      * Default permissions level
 22:      *
 23:      * @var array
 24:      */
 25:     protected $permission_level = ['read' => '#dns_records:read', 'edit' => '#dns_records:edit'];
 26: 
 27:     /**
 28:      * Get Virtual DNS Clusters (permission needed: #dns_records:read)
 29:      * List configured Virtual DNS clusters for a user
 30:      */
 31:     public function clusters()
 32:     {
 33:         return $this->get('/user/virtual_dns');
 34:     }
 35: 
 36:     /**
 37:      * Create a Virtual DNS Cluster (permission needed: #dns_records:edit)
 38:      * Create a configured Virtual DNS Cluster
 39:      *
 40:      * @param string    $name                  Virtual DNS Cluster Name
 41:      * @param array     $origin_ips
 42:      * @param int|null  $minimum_cache_ttl     Minimum DNS Cache TTL
 43:      * @param int|null  $maximum_cache_ttl     Maximum DNS Cache TTL
 44:      * @param bool|null $deprecate_any_request Deprecate the response to ANY requests
 45:      */
 46:     public function create($name, $origin_ips, $minimum_cache_ttl = null, $maximum_cache_ttl = null, $deprecate_any_request = null)
 47:     {
 48:         $data = [
 49:             'name'                  => $name,
 50:             'origin_ips'            => $origin_ips,
 51:             'minimum_cache_ttl'     => $minimum_cache_ttl,
 52:             'maximum_cache_ttl'     => $maximum_cache_ttl,
 53:             'deprecate_any_request' => $deprecate_any_request,
 54:         ];
 55: 
 56:         return $this->post('/user/virtual_dns', $data);
 57:     }
 58: 
 59:     /**
 60:      * Get a Virtual DNS Cluster (permission needed: #dns_records:read)
 61:      * List a single configured Virtual DNS clusters for a user
 62:      *
 63:      * @param string $identifier Identifier tag
 64:      */
 65:     public function cluster($identifier)
 66:     {
 67:         return $this->get('/user/virtual_dns/'.$identifier);
 68:     }
 69: 
 70:     /**
 71:      * Modify a Virtual DNS Cluster
 72:      * Modify a Virtual DNS Cluster configuration (permission needed: #dns_records:edit)
 73:      *
 74:      * @param string $identifier            Identifier tag
 75:      * @param string $name                  Virtual DNS Cluster Name
 76:      * @param array  $origin_ips
 77:      * @param int    $minimum_cache_ttl     Minimum DNS Cache TTL
 78:      * @param int    $maximum_cache_ttl     Maximum DNS Cache TTL
 79:      * @param bool   $deprecate_any_request Deprecate the response to ANY requests
 80:      */
 81:     public function modify($identifier, $name, $origin_ips, $minimum_cache_ttl, $maximum_cache_ttl, $deprecate_any_request)
 82:     {
 83:         $data = [
 84:             'name'                  => $name,
 85:             'origin_ips'            => $origin_ips,
 86:             'minimum_cache_ttl'     => $minimum_cache_ttl,
 87:             'maximum_cache_ttl'     => $maximum_cache_ttl,
 88:             'deprecate_any_request' => $deprecate_any_request,
 89:         ];
 90: 
 91:         return $this->patch('/user/virtual_dns/'.$identifier, $data);
 92:     }
 93: 
 94:     /**
 95:      * Delete a Virtual DNS Cluster (permission needed: #dns_records:edit)
 96:      * Delete a configured Virtual DNS cluster
 97:      *
 98:      * @param string $identifier Identifier tag
 99:      */
100:     public function delete_cluster($identifier)
101:     {
102:         return $this->delete('/user/virtual_dns/'.$identifier);
103:     }
104: }
105: 
API documentation generated by ApiGen