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\Organizations;
  4: 
  5: use Cloudflare\Api;
  6: use Cloudflare\Organizations;
  7: 
  8: /**
  9:  * CloudFlare API wrapper
 10:  *
 11:  * Virtual DNS (Organizations)
 12:  * Organizations-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 an organization
 30:      *
 31:      * @param string $organization_identifier organization_identifier tag
 32:      */
 33:     public function clusters($organization_identifier)
 34:     {
 35:         return $this->get('/organizations/'.$organization_identifier.'/virtual_dns');
 36:     }
 37: 
 38:     /**
 39:      * Create a Virtual DNS Cluster (permission needed: #dns_records:edit)
 40:      * Create a configured Virtual DNS Cluster
 41:      *
 42:      * @param string    $organization_identifier organization_identifier tag
 43:      * @param string    $name                    Virtual DNS Cluster Name
 44:      * @param array     $origin_ips
 45:      * @param int|null  $minimum_cache_ttl       Minimum DNS Cache TTL
 46:      * @param int|null  $maximum_cache_ttl       Maximum DNS Cache TTL
 47:      * @param bool|null $deprecate_any_request   Deprecate the response to ANY requests
 48:      */
 49:     public function create($organization_identifier, $name, $origin_ips, $minimum_cache_ttl = null, $maximum_cache_ttl = null, $deprecate_any_request = null)
 50:     {
 51:         $data = [
 52:             'name'                  => $name,
 53:             'origin_ips'            => $origin_ips,
 54:             'minimum_cache_ttl'     => $minimum_cache_ttl,
 55:             'maximum_cache_ttl'     => $maximum_cache_ttl,
 56:             'deprecate_any_request' => $deprecate_any_request,
 57:         ];
 58: 
 59:         return $this->post('/organizations/'.$organization_identifier.'/virtual_dns', $data);
 60:     }
 61: 
 62:     /**
 63:      * Get a Virtual DNS Cluster (permission needed: #dns_records:read)
 64:      * List a single configured Virtual DNS clusters for an organization
 65:      *
 66:      * @param string $organization_identifier organization_identifier tag
 67:      * @param string $identifier              identifier tag
 68:      */
 69:     public function cluster($organization_identifier, $identifier)
 70:     {
 71:         return $this->get('/organizations/'.$organization_identifier.'/virtual_dns/'.$identifier);
 72:     }
 73: 
 74:     /**
 75:      * Modify a Virtual DNS Cluster
 76:      * Modify a Virtual DNS Cluster configuration (permission needed: #dns_records:edit)
 77:      *
 78:      * @param string $organization_identifier organization_identifier tag
 79:      * @param string $identifier              identifier tag
 80:      * @param string $name                    Virtual DNS Cluster Name
 81:      * @param array  $origin_ips
 82:      * @param int    $minimum_cache_ttl       Minimum DNS Cache TTL
 83:      * @param int    $maximum_cache_ttl       Maximum DNS Cache TTL
 84:      * @param bool   $deprecate_any_request   Deprecate the response to ANY requests
 85:      */
 86:     public function modify($organization_identifier, $identifier, $name, $origin_ips, $minimum_cache_ttl, $maximum_cache_ttl, $deprecate_any_request)
 87:     {
 88:         $data = [
 89:             'name'                  => $name,
 90:             'origin_ips'            => $origin_ips,
 91:             'minimum_cache_ttl'     => $minimum_cache_ttl,
 92:             'maximum_cache_ttl'     => $maximum_cache_ttl,
 93:             'deprecate_any_request' => $deprecate_any_request,
 94:         ];
 95: 
 96:         return $this->patch('/organizations/'.$organization_identifier.'/virtual_dns/'.$identifier, $data);
 97:     }
 98: 
 99:     /**
100:      * Delete a Virtual DNS Cluster (permission needed: #dns_records:edit)
101:      * Delete a configured Virtual DNS cluster
102:      *
103:      * @param string $organization_identifier organization_identifier tag
104:      * @param string $identifier              identifier tag
105:      */
106:     public function delete_cluster($organization_identifier, $identifier)
107:     {
108:         return $this->delete('/organizations/'.$organization_identifier.'/virtual_dns/'.$identifier);
109:     }
110: }
111: 
API documentation generated by ApiGen