Documentation
¶
Overview ¶
Package cloudflare implements the Cloudflare v4 API.
Index ¶
- Variables
- type API
- func (api *API) AvailableZonePlans(zoneID string) ([]ZonePlan, error)
- func (api *API) ChangePageRule(zoneID, ruleID string, rule PageRule) error
- func (api *API) ConnectZoneRailgun(zoneID, railgunID string) (ZoneRailgun, error)
- func (api *API) CreateDNSRecord(zoneID string, rr DNSRecord) (*DNSRecordResponse, error)
- func (api *API) CreateKeyless()
- func (api *API) CreatePageRule(zoneID string, rule PageRule) error
- func (api *API) CreateRailgun(name string) (Railgun, error)
- func (api *API) CreateSSL(zoneID string, options ZoneCustomSSLOptions) (ZoneCustomSSL, error)
- func (api *API) CreateVirtualDNS(v *VirtualDNS) (*VirtualDNS, error)
- func (api *API) CreateZone(name string, jumpstart bool, org Organization) (Zone, error)
- func (api *API) DNSRecord(zoneID, recordID string) (DNSRecord, error)
- func (api *API) DNSRecords(zoneID string, rr DNSRecord) ([]DNSRecord, error)
- func (api *API) DeleteDNSRecord(zoneID, recordID string) error
- func (api *API) DeleteKeyless()
- func (api *API) DeletePageRule(zoneID, ruleID string) error
- func (api *API) DeleteRailgun(railgunID string) error
- func (api *API) DeleteSSL(zoneID, certificateID string) error
- func (api *API) DeleteVirtualDNS(virtualDNSID string) error
- func (api *API) DeleteZone(zoneID string) (ZoneID, error)
- func (api *API) DisableRailgun(railgunID string) (Railgun, error)
- func (api *API) DisconnectZoneRailgun(zoneID, railgunID string) (ZoneRailgun, error)
- func (api *API) EditZone(zoneID string, zoneOpts ZoneOptions) (Zone, error)
- func (api *API) EnableRailgun(railgunID string) (Railgun, error)
- func (api *API) Keyless()
- func (api *API) ListKeyless()
- func (api *API) ListOrganizations() ([]Organization, ResultInfo, error)
- func (api *API) ListPageRules(zoneID string) ([]PageRule, error)
- func (api *API) ListRailguns(options RailgunListOptions) ([]Railgun, error)
- func (api *API) ListSSL(zoneID string) ([]ZoneCustomSSL, error)
- func (api *API) ListVirtualDNS() ([]*VirtualDNS, error)
- func (api *API) ListWAFPackages(zoneID string) ([]WAFPackage, error)
- func (api *API) ListWAFRules(zoneID, packageID string) ([]WAFRule, error)
- func (api *API) ListZones(z ...string) ([]Zone, error)
- func (api *API) PageRule(zoneID, ruleID string) (PageRule, error)
- func (api *API) PurgeCache(zoneID string, pcr PurgeCacheRequest) (PurgeCacheResponse, error)
- func (api *API) PurgeEverything(zoneID string) (PurgeCacheResponse, error)
- func (api *API) RailgunDetails(railgunID string) (Railgun, error)
- func (api *API) RailgunZones(railgunID string) ([]Zone, error)
- func (api *API) ReprioritizeSSL(zoneID string, p []ZoneCustomSSLPriority) ([]ZoneCustomSSL, error)
- func (api *API) SSLDetails(zoneID, certificateID string) (ZoneCustomSSL, error)
- func (api *API) TestRailgunConnection(zoneID, railgunID string) (RailgunDiagnosis, error)
- func (api *API) UpdateDNSRecord(zoneID, recordID string, rr DNSRecord) error
- func (api *API) UpdateKeyless()
- func (api *API) UpdatePageRule(zoneID, ruleID string, rule PageRule) error
- func (api *API) UpdateSSL(zoneID, certificateID string, options ZoneCustomSSLOptions) (ZoneCustomSSL, error)
- func (api *API) UpdateUser(user *User) (User, error)
- func (api *API) UpdateVirtualDNS(virtualDNSID string, vv VirtualDNS) error
- func (api *API) UserBillingProfile() (UserBillingProfile, error)
- func (api *API) UserDetails() (User, error)
- func (api *API) VirtualDNS(virtualDNSID string) (*VirtualDNS, error)
- func (api *API) ZoneActivationCheck(zoneID string) (Response, error)
- func (api *API) ZoneAnalyticsByColocation(zoneID string, options ZoneAnalyticsOptions) ([]ZoneAnalyticsColocation, error)
- func (api *API) ZoneAnalyticsDashboard(zoneID string, options ZoneAnalyticsOptions) (ZoneAnalyticsData, error)
- func (api *API) ZoneDetails(zoneID string) (Zone, error)
- func (api *API) ZoneIDByName(zoneName string) (string, error)
- func (api *API) ZonePlanDetails(zoneID, planID string) (ZonePlan, error)
- func (api *API) ZoneRailgunDetails(zoneID, railgunID string) (ZoneRailgun, error)
- func (api *API) ZoneRailguns(zoneID string) ([]ZoneRailgun, error)
- func (api *API) ZoneSetPaused(zoneID string, paused bool) (Zone, error)
- func (api *API) ZoneSetPlan(zoneID string, plan ZonePlan) (Zone, error)
- func (api *API) ZoneSetVanityNS(zoneID string, ns []string) (Zone, error)
- type AvailableZonePlansResponse
- type CustomPage
- type CustomPageResponse
- type DNSListResponse
- type DNSRecord
- type DNSRecordResponse
- type Error
- type IPRanges
- type IPsResponse
- type KeylessSSL
- type KeylessSSLResponse
- type Option
- type Organization
- type Owner
- type PageRule
- type PageRuleAction
- type PageRuleDetailResponse
- type PageRuleTarget
- type PageRulesResponse
- type PurgeCacheRequest
- type PurgeCacheResponse
- type Railgun
- type RailgunDiagnosis
- type RailgunListOptions
- type Response
- type ResponseInfo
- type ResultInfo
- type User
- type UserBillingProfile
- type UserError
- type UserResponse
- type VirtualDNS
- type VirtualDNSListResponse
- type VirtualDNSResponse
- type WAFPackage
- type WAFPackagesResponse
- type WAFRule
- type WAFRulesResponse
- type Zone
- type ZoneAnalytics
- type ZoneAnalyticsColocation
- type ZoneAnalyticsData
- type ZoneAnalyticsOptions
- type ZoneCustomSSL
- type ZoneCustomSSLOptions
- type ZoneCustomSSLPriority
- type ZoneID
- type ZoneIDResponse
- type ZoneMeta
- type ZoneOptions
- type ZonePlan
- type ZonePlanResponse
- type ZoneRailgun
- type ZoneResponse
- type ZoneSetting
- type ZoneSettingResponse
- type ZonesResponse
Constants ¶
This section is empty.
Variables ¶
var PageRuleActions = map[string]string{
"always_online": "Always Online",
"always_use_https": "Always Use HTTPS",
"browser_cache_ttl": "Browser Cache TTL",
"browser_check": "Browser Integrity Check",
"cache_level": "Cache Level",
"disable_apps": "Disable Apps",
"disable_performance": "Disable Performance",
"disable_railgun": "Disable Railgun",
"disable_security": "Disable Security",
"edge_cache_ttl": "Edge Cache TTL",
"email_obfuscation": "Email Obfuscation",
"forwarding_url": "Forwarding URL",
"ip_geolocation": "IP Geolocation Header",
"mirage": "Mirage",
"rocket_loader": "Rocker Loader",
"security_level": "Security Level",
"server_side_exclude": "Server Side Excludes",
"smart_errors": "Smart Errors",
"ssl": "SSL",
"waf": "Web Application Firewall",
}
PageRuleActions maps API action IDs to human-readable strings
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
APIKey string
APIEmail string
BaseURL string
// contains filtered or unexported fields
}
API holds the configuration for the current API client. A client should not be modified concurrently.
func (*API) AvailableZonePlans ¶
AvailableZonePlans returns information about all plans available to the specified zone.
API reference: https://api.cloudflare.com/#zone-plan-available-plans
func (*API) ChangePageRule ¶
ChangePageRule lets change individual settings for a Page Rule. This is in contrast to UpdatePageRule which replaces the entire Page Rule.
API reference:
https://api.cloudflare.com/#page-rules-for-a-zone-change-a-page-rule PATCH /zones/:zone_identifier/pagerules/:identifier
func (*API) ConnectZoneRailgun ¶
func (api *API) ConnectZoneRailgun(zoneID, railgunID string) (ZoneRailgun, error)
ConnectZoneRailgun connects a Railgun for a given zone. API reference:
https://api.cloudflare.com/#railguns-for-a-zone-connect-or-disconnect-a-railgun PATCH /zones/:zone_identifier/railguns/:identifier
func (*API) CreateDNSRecord ¶
func (api *API) CreateDNSRecord(zoneID string, rr DNSRecord) (*DNSRecordResponse, error)
CreateDNSRecord creates a DNS record for the zone identifier. API reference:
https://api.cloudflare.com/#dns-records-for-a-zone-create-dns-record POST /zones/:zone_identifier/dns_records
func (*API) CreateKeyless ¶
func (api *API) CreateKeyless()
CreateKeyless creates a new Keyless SSL configuration for the zone. API reference:
https://api.cloudflare.com/#keyless-ssl-for-a-zone-create-a-keyless-ssl-configuration POST /zones/:zone_identifier/keyless_certificates
func (*API) CreatePageRule ¶
CreatePageRule creates a new Page Rule for a zone.
API reference:
https://api.cloudflare.com/#page-rules-for-a-zone-create-a-page-rule POST /zones/:zone_identifier/pagerules
func (*API) CreateRailgun ¶
CreateRailgun creates a new Railgun. API reference:
https://api.cloudflare.com/#railgun-create-railgun POST /railguns
func (*API) CreateSSL ¶
func (api *API) CreateSSL(zoneID string, options ZoneCustomSSLOptions) (ZoneCustomSSL, error)
CreateSSL allows you to add a custom SSL certificate to the given zone. API reference:
https://api.cloudflare.com/#custom-ssl-for-a-zone-create-ssl-configuration POST /zones/:zone_identifier/custom_certificates
func (*API) CreateVirtualDNS ¶
func (api *API) CreateVirtualDNS(v *VirtualDNS) (*VirtualDNS, error)
CreateVirtualDNS creates a new Virtual DNS cluster. API reference:
https://api.cloudflare.com/#virtual-dns-users--create-a-virtual-dns-cluster POST /user/virtual_dns
func (*API) CreateZone ¶
CreateZone creates a zone on an account.
API reference: https://api.cloudflare.com/#zone-create-a-zone
func (*API) DNSRecord ¶
DNSRecord returns a single DNS record for the given zone & record identifiers. API reference:
https://api.cloudflare.com/#dns-records-for-a-zone-dns-record-details GET /zones/:zone_identifier/dns_records/:identifier
func (*API) DNSRecords ¶
DNSRecords returns a slice of DNS records for the given zone identifier. API reference:
https://api.cloudflare.com/#dns-records-for-a-zone-list-dns-records GET /zones/:zone_identifier/dns_records
func (*API) DeleteDNSRecord ¶
DeleteDNSRecord deletes a single DNS record for the given zone & record identifiers. API reference:
https://api.cloudflare.com/#dns-records-for-a-zone-delete-dns-record DELETE /zones/:zone_identifier/dns_records/:identifier
func (*API) DeleteKeyless ¶
func (api *API) DeleteKeyless()
DeleteKeyless deletes an existing Keyless SSL configuration. API reference:
https://api.cloudflare.com/#keyless-ssl-for-a-zone-delete-keyless-configuration DELETE /zones/:zone_identifier/keyless_certificates/:identifier
func (*API) DeletePageRule ¶
DeletePageRule deletes a Page Rule for a zone.
API reference:
https://api.cloudflare.com/#page-rules-for-a-zone-delete-a-page-rule DELETE /zones/:zone_identifier/pagerules/:identifier
func (*API) DeleteRailgun ¶
DeleteRailgun disables and deletes a Railgun. API reference:
https://api.cloudflare.com/#railgun-delete-railgun DELETE /railguns/:identifier
func (*API) DeleteSSL ¶
DeleteSSL deletes a custom SSL certificate from the given zone. API reference:
https://api.cloudflare.com/#custom-ssl-for-a-zone-delete-an-ssl-certificate DELETE /zones/:zone_identifier/custom_certificates/:identifier
func (*API) DeleteVirtualDNS ¶
DeleteVirtualDNS deletes a Virtual DNS cluster. Note that this cannot be undone, and will stop all traffic to that cluster. API reference:
https://api.cloudflare.com/#virtual-dns-users--delete-a-virtual-dns-cluster DELETE /user/virtual_dns/:identifier
func (*API) DeleteZone ¶
DeleteZone deletes the given zone.
API reference: https://api.cloudflare.com/#zone-delete-a-zone
func (*API) DisableRailgun ¶
DisableRailgun enables a Railgun for all zones connected to it. API reference:
https://api.cloudflare.com/#railgun-enable-or-disable-a-railgun PATCH /railguns/:identifier
func (*API) DisconnectZoneRailgun ¶
func (api *API) DisconnectZoneRailgun(zoneID, railgunID string) (ZoneRailgun, error)
DisconnectZoneRailgun disconnects a Railgun for a given zone. API reference:
https://api.cloudflare.com/#railguns-for-a-zone-connect-or-disconnect-a-railgun PATCH /zones/:zone_identifier/railguns/:identifier
func (*API) EditZone ¶
func (api *API) EditZone(zoneID string, zoneOpts ZoneOptions) (Zone, error)
EditZone edits the given zone. This is usually called by ZoneSetPaused, ZoneSetVanityNS or ZoneSetPlan.
API reference: https://api.cloudflare.com/#zone-edit-zone-properties
func (*API) EnableRailgun ¶
EnableRailgun enables a Railgun for all zones connected to it. API reference:
https://api.cloudflare.com/#railgun-enable-or-disable-a-railgun PATCH /railguns/:identifier
func (*API) Keyless ¶
func (api *API) Keyless()
Keyless provides the configuration for a given Keyless SSL identifier. API reference:
https://api.cloudflare.com/#keyless-ssl-for-a-zone-keyless-ssl-details GET /zones/:zone_identifier/keyless_certificates/:identifier
func (*API) ListKeyless ¶
func (api *API) ListKeyless()
ListKeyless lists Keyless SSL configurations for a zone. API reference:
https://api.cloudflare.com/#keyless-ssl-for-a-zone-list-keyless-ssls GET /zones/:zone_identifier/keyless_certificates
func (*API) ListOrganizations ¶ added in v0.7.3
func (api *API) ListOrganizations() ([]Organization, ResultInfo, error)
ListOrganizations lists organizations of the logged-in user. API reference:
https://api.cloudflare.com/#user-s-organizations-list-organizations GET /user/organizations
func (*API) ListPageRules ¶
ListPageRules returns all Page Rules for a zone.
API reference:
https://api.cloudflare.com/#page-rules-for-a-zone-list-page-rules GET /zones/:zone_identifier/pagerules
func (*API) ListRailguns ¶
func (api *API) ListRailguns(options RailgunListOptions) ([]Railgun, error)
ListRailguns lists Railguns connected to an account. API reference:
https://api.cloudflare.com/#railgun-list-railguns GET /railguns
func (*API) ListSSL ¶
func (api *API) ListSSL(zoneID string) ([]ZoneCustomSSL, error)
ListSSL lists the custom certificates for the given zone. API reference:
https://api.cloudflare.com/#custom-ssl-for-a-zone-list-ssl-configurations GET /zones/:zone_identifier/custom_certificates
func (*API) ListVirtualDNS ¶
func (api *API) ListVirtualDNS() ([]*VirtualDNS, error)
ListVirtualDNS lists the virtual DNS clusters associated with an account. API reference:
https://api.cloudflare.com/#virtual-dns-users--get-virtual-dns-clusters GET /user/virtual_dns
func (*API) ListWAFPackages ¶
func (api *API) ListWAFPackages(zoneID string) ([]WAFPackage, error)
ListWAFPackages returns a slice of the WAF packages for the given zone.
func (*API) ListWAFRules ¶
ListWAFRules returns a slice of the WAF rules for the given WAF package.
func (*API) ListZones ¶
ListZones lists zones on an account. Optionally takes a list of zone names to filter against.
API reference: https://api.cloudflare.com/#zone-list-zones
func (*API) PageRule ¶
PageRule fetches detail about one Page Rule for a zone.
API reference:
https://api.cloudflare.com/#page-rules-for-a-zone-page-rule-details GET /zones/:zone_identifier/pagerules/:identifier
func (*API) PurgeCache ¶
func (api *API) PurgeCache(zoneID string, pcr PurgeCacheRequest) (PurgeCacheResponse, error)
PurgeCache purges the cache using the given PurgeCacheRequest (zone/url/tag).
API reference: https://api.cloudflare.com/#zone-purge-individual-files-by-url-and-cache-tags
func (*API) PurgeEverything ¶
func (api *API) PurgeEverything(zoneID string) (PurgeCacheResponse, error)
PurgeEverything purges the cache for the given zone. Note: this will substantially increase load on the origin server for that zone if there is a high cached vs. uncached request ratio.
API reference: https://api.cloudflare.com/#zone-purge-all-files
func (*API) RailgunDetails ¶
RailgunDetails returns the details for a Railgun. API reference:
https://api.cloudflare.com/#railgun-railgun-details GET /railguns/:identifier
func (*API) RailgunZones ¶
RailgunZones returns the zones that are currently using a Railgun. API reference:
https://api.cloudflare.com/#railgun-get-zones-connected-to-a-railgun GET /railguns/:identifier/zones
func (*API) ReprioritizeSSL ¶
func (api *API) ReprioritizeSSL(zoneID string, p []ZoneCustomSSLPriority) ([]ZoneCustomSSL, error)
ReprioritizeSSL allows you to change the priority (which is served for a given request) of custom SSL certificates associated with the given zone. API reference:
https://api.cloudflare.com/#custom-ssl-for-a-zone-re-prioritize-ssl-certificates PUT /zones/:zone_identifier/custom_certificates/prioritize
func (*API) SSLDetails ¶
func (api *API) SSLDetails(zoneID, certificateID string) (ZoneCustomSSL, error)
SSLDetails returns the configuration details for a custom SSL certificate. API reference:
https://api.cloudflare.com/#custom-ssl-for-a-zone-ssl-configuration-details GET /zones/:zone_identifier/custom_certificates/:identifier
func (*API) TestRailgunConnection ¶
func (api *API) TestRailgunConnection(zoneID, railgunID string) (RailgunDiagnosis, error)
TestRailgunConnection tests a Railgun connection for a given zone. API reference:
https://api.cloudflare.com/#railgun-connections-for-a-zone-test-railgun-connection GET /zones/:zone_identifier/railguns/:identifier/diagnose
func (*API) UpdateDNSRecord ¶
UpdateDNSRecord updates a single DNS record for the given zone & record identifiers. API reference:
https://api.cloudflare.com/#dns-records-for-a-zone-update-dns-record PUT /zones/:zone_identifier/dns_records/:identifier
func (*API) UpdateKeyless ¶
func (api *API) UpdateKeyless()
UpdateKeyless updates an existing Keyless SSL configuration. API reference:
https://api.cloudflare.com/#keyless-ssl-for-a-zone-update-keyless-configuration PATCH /zones/:zone_identifier/keyless_certificates/:identifier
func (*API) UpdatePageRule ¶
UpdatePageRule lets you replace a Page Rule. This is in contrast to ChangePageRule which lets you change individual settings.
API reference:
https://api.cloudflare.com/#page-rules-for-a-zone-update-a-page-rule PUT /zones/:zone_identifier/pagerules/:identifier
func (*API) UpdateSSL ¶
func (api *API) UpdateSSL(zoneID, certificateID string, options ZoneCustomSSLOptions) (ZoneCustomSSL, error)
UpdateSSL updates (replaces) a custom SSL certificate. API reference:
https://api.cloudflare.com/#custom-ssl-for-a-zone-update-ssl-configuration PATCH /zones/:zone_identifier/custom_certificates/:identifier
func (*API) UpdateUser ¶
UpdateUser updates the properties of the given user. API reference:
https://api.cloudflare.com/#user-update-user PATCH /user
func (*API) UpdateVirtualDNS ¶
func (api *API) UpdateVirtualDNS(virtualDNSID string, vv VirtualDNS) error
UpdateVirtualDNS updates a Virtual DNS cluster. API reference:
https://api.cloudflare.com/#virtual-dns-users--modify-a-virtual-dns-cluster PATCH /user/virtual_dns/:identifier
func (*API) UserBillingProfile ¶ added in v0.7.3
func (api *API) UserBillingProfile() (UserBillingProfile, error)
UserBillingProfile returns the billing profile of the user. API reference:
https://api.cloudflare.com/#user-billing-profile GET /user/billing/profile
func (*API) UserDetails ¶
UserDetails provides information about the logged-in user. API reference:
https://api.cloudflare.com/#user-user-details GET /user
func (*API) VirtualDNS ¶
func (api *API) VirtualDNS(virtualDNSID string) (*VirtualDNS, error)
VirtualDNS fetches a single virtual DNS cluster. API reference:
https://api.cloudflare.com/#virtual-dns-users--get-a-virtual-dns-cluster GET /user/virtual_dns/:identifier
func (*API) ZoneActivationCheck ¶
ZoneActivationCheck initiates another zone activation check for newly-created zones.
API reference: https://api.cloudflare.com/#zone-initiate-another-zone-activation-check
func (*API) ZoneAnalyticsByColocation ¶
func (api *API) ZoneAnalyticsByColocation(zoneID string, options ZoneAnalyticsOptions) ([]ZoneAnalyticsColocation, error)
ZoneAnalyticsByColocation returns zone analytics information by datacenter.
API reference:
https://api.cloudflare.com/#zone-analytics-analytics-by-co-locations GET /zones/:zone_identifier/analytics/colos
func (*API) ZoneAnalyticsDashboard ¶
func (api *API) ZoneAnalyticsDashboard(zoneID string, options ZoneAnalyticsOptions) (ZoneAnalyticsData, error)
ZoneAnalyticsDashboard returns zone analytics information.
API reference:
https://api.cloudflare.com/#zone-analytics-dashboard GET /zones/:zone_identifier/analytics/dashboard
func (*API) ZoneDetails ¶
ZoneDetails fetches information about a zone.
API reference: https://api.cloudflare.com/#zone-zone-details
func (*API) ZoneIDByName ¶
ZoneIDByName retrieves a zone's ID from the name.
func (*API) ZonePlanDetails ¶
ZonePlanDetails returns information about a zone plan.
API reference: https://api.cloudflare.com/#zone-plan-plan-details
func (*API) ZoneRailgunDetails ¶
func (api *API) ZoneRailgunDetails(zoneID, railgunID string) (ZoneRailgun, error)
ZoneRailgunDetails returns the configuration for a given Railgun. API reference:
https://api.cloudflare.com/#railguns-for-a-zone-get-railgun-details GET /zones/:zone_identifier/railguns/:identifier
func (*API) ZoneRailguns ¶
func (api *API) ZoneRailguns(zoneID string) ([]ZoneRailgun, error)
ZoneRailguns returns the available Railguns for a zone. API reference:
https://api.cloudflare.com/#railguns-for-a-zone-get-available-railguns GET /zones/:zone_identifier/railguns
func (*API) ZoneSetPaused ¶
ZoneSetPaused pauses Cloudflare service for the entire zone, sending all traffic direct to the origin.
func (*API) ZoneSetPlan ¶
ZoneSetPlan changes the zone plan.
type AvailableZonePlansResponse ¶
type AvailableZonePlansResponse struct {
Response
Result []ZonePlan `json:"result"`
ResultInfo
}
AvailableZonePlansResponse represents the response from the Available Plans endpoint.
type CustomPage ¶
type CustomPage struct {
CreatedOn string `json:"created_on"`
ModifiedOn time.Time `json:"modified_on"`
URL string `json:"url"`
State string `json:"state"`
RequiredTokens []string `json:"required_tokens"`
PreviewTarget string `json:"preview_target"`
Description string `json:"description"`
}
CustomPage represents a custom page configuration.
type CustomPageResponse ¶
type CustomPageResponse struct {
Response
Result []CustomPage `json:"result"`
}
CustomPageResponse represents the response from the custom pages endpoint.
type DNSListResponse ¶
type DNSListResponse struct {
Result []DNSRecord `json:"result"`
Response
ResultInfo `json:"result_info"`
}
DNSListResponse represents the response from the list DNS records endpoint.
type DNSRecord ¶
type DNSRecord struct {
ID string `json:"id,omitempty"`
Type string `json:"type,omitempty"`
Name string `json:"name,omitempty"`
Content string `json:"content,omitempty"`
Proxiable bool `json:"proxiable,omitempty"`
Proxied bool `json:"proxied,omitempty"`
TTL int `json:"ttl,omitempty"`
Locked bool `json:"locked,omitempty"`
ZoneID string `json:"zone_id,omitempty"`
ZoneName string `json:"zone_name,omitempty"`
CreatedOn time.Time `json:"created_on,omitempty"`
ModifiedOn time.Time `json:"modified_on,omitempty"`
Data interface{} `json:"data,omitempty"` // data returned by: SRV, LOC
Meta interface{} `json:"meta,omitempty"`
Priority int `json:"priority,omitempty"`
}
DNSRecord represents a DNS record in a zone.
type DNSRecordResponse ¶
type DNSRecordResponse struct {
Result DNSRecord `json:"result"`
Response
ResultInfo `json:"result_info"`
}
DNSRecordResponse represents the response from the DNS endpoint.
type Error ¶
type Error interface {
error
// Raised when user credentials or configuration is invalid.
User() bool
// Raised when a parsing error (e.g. JSON) occurs.
Parse() bool
// Raised when a network error occurs.
Network() bool
}
Error represents an error returned from this library.
type IPRanges ¶
type IPRanges struct {
IPv4CIDRs []string `json:"ipv4_cidrs"`
IPv6CIDRs []string `json:"ipv6_cidrs"`
}
IPRanges contains lists of IPv4 and IPv6 CIDRs
type IPsResponse ¶
IPsResponse is the API response containing a list of IPs
type KeylessSSL ¶
type KeylessSSL struct {
ID string `json:"id"`
Name string `json:"name"`
Host string `json:"host"`
Port int `json:"port"`
Status string `json:"success"`
Enabled bool `json:"enabled"`
Permissions []string `json:"permissions"`
CreatedOn time.Time `json:"created_on"`
ModifiedOn time.Time `json:"modifed_on"`
}
KeylessSSL represents Keyless SSL configuration.
type KeylessSSLResponse ¶
type KeylessSSLResponse struct {
Response
Result []KeylessSSL `json:"result"`
}
KeylessSSLResponse represents the response from the Keyless SSL endpoint.
type Option ¶
Option is a functional option for configuring the API client.
func HTTPClient ¶
HTTPClient accepts a custom *http.Client for making API calls.
type Organization ¶
type Organization struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Status string `json:"status,omitempty"`
Permissions []string `json:"permissions,omitempty"`
Roles []string `json:"roles,omitempty"`
}
Organization represents a multi-user organization.
type Owner ¶
type Owner struct {
ID string `json:"id"`
Email string `json:"email"`
OwnerType string `json:"owner_type"`
}
Owner describes the resource owner.
type PageRule ¶
type PageRule struct {
ID string `json:"id,omitempty"`
Targets []PageRuleTarget `json:"targets"`
Actions []PageRuleAction `json:"actions"`
Priority int `json:"priority"`
Status string `json:"status"` // can be: active, paused
ModifiedOn time.Time `json:"modified_on,omitempty"`
CreatedOn time.Time `json:"created_on,omitempty"`
}
PageRule describes a Page Rule.
type PageRuleAction ¶
type PageRuleAction struct {
ID string `json:"id"`
Value interface{} `json:"value"`
}
PageRuleAction is the action to take when the target is matched.
Valid IDs are:
always_online always_use_https browser_cache_ttl browser_check cache_level disable_apps disable_performance disable_railgun disable_security edge_cache_ttl email_obfuscation forwarding_url ip_geolocation mirage rocket_loader security_level server_side_exclude smart_errors ssl waf
type PageRuleDetailResponse ¶
type PageRuleDetailResponse struct {
Success bool `json:"success"`
Errors []string `json:"errors"`
Messages []string `json:"messages"`
Result PageRule `json:"result"`
}
PageRuleDetailResponse is the API response, containing a single PageRule.
type PageRuleTarget ¶
type PageRuleTarget struct {
Target string `json:"target"`
Constraint struct {
Operator string `json:"operator"`
Value string `json:"value"`
} `json:"constraint"`
}
PageRuleTarget is the target to evaluate on a request.
Currently Target must always be "url" and Operator must be "matches". Value is the URL pattern to match against.
type PageRulesResponse ¶
type PageRulesResponse struct {
Success bool `json:"success"`
Errors []string `json:"errors"`
Messages []string `json:"messages"`
Result []PageRule `json:"result"`
}
PageRulesResponse is the API response, containing an array of PageRules.
type PurgeCacheRequest ¶
type PurgeCacheRequest struct {
Everything bool `json:"purge_everything,omitempty"`
Files []string `json:"files,omitempty"`
Tags []string `json:"tags,omitempty"`
}
PurgeCacheRequest represents the request format made to the purge endpoint.
type PurgeCacheResponse ¶
type PurgeCacheResponse struct {
Response
}
PurgeCacheResponse represents the response from the purge endpoint.
type Railgun ¶
type Railgun struct {
ID string `json:"id"`
Name string `json:"name"`
Status string `json:"status"`
Enabled bool `json:"enabled"`
ZonesConnected int `json:"zones_connected"`
Build string `json:"build"`
Version string `json:"version"`
Revision string `json:"revision"`
ActivationKey string `json:"activation_key"`
ActivatedOn time.Time `json:"activated_on"`
CreatedOn time.Time `json:"created_on"`
ModifiedOn time.Time `json:"modified_on"`
UpgradeInfo struct {
LatestVersion string `json:"latest_version"`
DownloadLink string `json:"download_link"`
} `json:"upgrade_info"`
}
Railgun represents a Railgun's properties.
type RailgunDiagnosis ¶
type RailgunDiagnosis struct {
Method string `json:"method"`
HostName string `json:"host_name"`
HTTPStatus int `json:"http_status"`
Railgun string `json:"railgun"`
URL string `json:"url"`
ResponseStatus string `json:"response_status"`
Protocol string `json:"protocol"`
ElapsedTime string `json:"elapsed_time"`
BodySize string `json:"body_size"`
BodyHash string `json:"body_hash"`
MissingHeaders string `json:"missing_headers"`
ConnectionClose bool `json:"connection_close"`
Cloudflare string `json:"cloudflare"`
CFRay string `json:"cf-ray"`
// NOTE: Cloudflare's online API documentation does not yet have definitions
// for the following fields. See: https://api.cloudflare.com/#railgun-connections-for-a-zone-test-railgun-connection/
CFWANError string `json:"cf-wan-error"`
CFCacheStatus string `json:"cf-cache-status"`
}
RailgunDiagnosis represents the test results from testing railgun connections to a zone.
type RailgunListOptions ¶
type RailgunListOptions struct {
Direction string
}
RailgunListOptions represents the parameters used to list railguns.
type Response ¶
type Response struct {
Success bool `json:"success"`
Errors []ResponseInfo `json:"errors"`
Messages []ResponseInfo `json:"messages"`
}
Response is a template. There will also be a result struct. There will be a unique response type for each response, which will include this type.
type ResponseInfo ¶
ResponseInfo contains a code and message returned by the API as errors or informational messages inside the response.
type ResultInfo ¶
type ResultInfo struct {
Page int `json:"page"`
PerPage int `json:"per_page"`
TotalPages int `json:"total_pages"`
Count int `json:"count"`
Total int `json:"total_count"`
}
ResultInfo contains metadata about the Response.
type User ¶
type User struct {
ID string `json:"id,omitempty"`
Email string `json:"email,omitempty"`
FirstName string `json:"first_name,omitempty"`
LastName string `json:"last_name,omitempty"`
Username string `json:"username,omitempty"`
Telephone string `json:"telephone,omitempty"`
Country string `json:"country,omitempty"`
Zipcode string `json:"zipcode,omitempty"`
CreatedOn *time.Time `json:"created_on,omitempty"`
ModifiedOn *time.Time `json:"modified_on,omitempty"`
APIKey string `json:"api_key,omitempty"`
TwoFA bool `json:"two_factor_authentication_enabled,omitempty"`
Betas []string `json:"betas,omitempty"`
Organizations []Organization `json:"organizations,omitempty"`
}
User describes a user account.
type UserBillingProfile ¶ added in v0.7.3
type UserBillingProfile struct {
ID string `json:"id,omitempty"`
FirstName string `json:"first_name,omitempty"`
LastName string `json:"last_name,omitempty"`
Address string `json:"address,omitempty"`
Address2 string `json:"address2,omitempty"`
Company string `json:"company,omitempty"`
City string `json:"city,omitempty"`
State string `json:"state,omitempty"`
ZipCode string `json:"zipcode,omitempty"`
Country string `json:"country,omitempty"`
Telephone string `json:"telephone,omitempty"`
CardNumber string `json:"card_number,omitempty"`
CardExpiryYear int `json:"card_expiry_year,omitempty"`
CardExpiryMonth int `json:"card_expiry_month,omitempty"`
VAT string `json:"vat,omitempty"`
CreatedOn *time.Time `json:"created_on,omitempty"`
EditedOn *time.Time `json:"edited_on,omitempty"`
}
UserBillingProfile contains Billing Profile information.
type UserResponse ¶
UserResponse wraps a response containing User accounts.
type VirtualDNS ¶
type VirtualDNS struct {
ID string `json:"id"`
Name string `json:"name"`
OriginIPs []string `json:"origin_ips"`
VirtualDNSIPs []string `json:"virtual_dns_ips"`
MinimumCacheTTL uint `json:"minimum_cache_ttl"`
MaximumCacheTTL uint `json:"maximum_cache_ttl"`
DeprecateAnyRequests bool `json:"deprecate_any_requests"`
ModifiedOn string `json:"modified_on"`
}
VirtualDNS represents a Virtual DNS configuration.
type VirtualDNSListResponse ¶
type VirtualDNSListResponse struct {
Response
Result []*VirtualDNS `json:"result"`
}
VirtualDNSListResponse represents an array of Virtual DNS responses.
type VirtualDNSResponse ¶
type VirtualDNSResponse struct {
Response
Result *VirtualDNS `json:"result"`
}
VirtualDNSResponse represents a Virtual DNS response.
type WAFPackage ¶
type WAFPackage struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
ZoneID string `json:"zone_id"`
DetectionMode string `json:"detection_mode"`
Sensitivity string `json:"sensitivity"`
ActionMode string `json:"action_mode"`
}
WAFPackage represents a WAF package configuration.
type WAFPackagesResponse ¶
type WAFPackagesResponse struct {
Response
Result []WAFPackage `json:"result"`
ResultInfo ResultInfo `json:"result_info"`
}
WAFPackagesResponse represents the response from the WAF packages endpoint.
type WAFRule ¶
type WAFRule struct {
ID string `json:"id"`
Description string `json:"description"`
Priority string `json:"priority"`
PackageID string `json:"package_id"`
Group struct {
ID string `json:"id"`
Name string `json:"name"`
} `json:"group"`
Mode string `json:"mode"`
DefaultMode string `json:"default_mode"`
AllowedModes []string `json:"allowed_modes"`
}
WAFRule represents a WAF rule.
type WAFRulesResponse ¶
type WAFRulesResponse struct {
Response
Result []WAFRule `json:"result"`
ResultInfo ResultInfo `json:"result_info"`
}
WAFRulesResponse represents the response from the WAF rule endpoint.
type Zone ¶
type Zone struct {
ID string `json:"id"`
Name string `json:"name"`
DevMode int `json:"development_mode"`
OriginalNS []string `json:"original_name_servers"`
OriginalRegistrar string `json:"original_registrar"`
OriginalDNSHost string `json:"original_dnshost"`
CreatedOn time.Time `json:"created_on"`
ModifiedOn time.Time `json:"modified_on"`
NameServers []string `json:"name_servers"`
Owner Owner `json:"owner"`
Permissions []string `json:"permissions"`
Plan ZonePlan `json:"plan"`
PlanPending ZonePlan `json:"plan_pending,omitempty"`
Status string `json:"status"`
Paused bool `json:"paused"`
Type string `json:"type"`
Host struct {
Name string
Website string
} `json:"host"`
VanityNS []string `json:"vanity_name_servers"`
Betas []string `json:"betas"`
DeactReason string `json:"deactivation_reason"`
Meta ZoneMeta `json:"meta"`
}
Zone describes a Cloudflare zone.
type ZoneAnalytics ¶
type ZoneAnalytics struct {
Since time.Time `json:"since"`
Until time.Time `json:"until"`
Requests struct {
All int `json:"all"`
Cached int `json:"cached"`
Uncached int `json:"uncached"`
ContentType map[string]int `json:"content_type"`
Country map[string]int `json:"country"`
SSL struct {
Encrypted int `json:"encrypted"`
Unencrypted int `json:"unencrypted"`
} `json:"ssl"`
HTTPStatus map[string]int `json:"http_status"`
} `json:"requests"`
Bandwidth struct {
All int `json:"all"`
Cached int `json:"cached"`
Uncached int `json:"uncached"`
ContentType map[string]int `json:"content_type"`
Country map[string]int `json:"country"`
SSL struct {
Encrypted int `json:"encrypted"`
Unencrypted int `json:"unencrypted"`
} `json:"ssl"`
} `json:"bandwidth"`
Threats struct {
All int `json:"all"`
Country map[string]int `json:"country"`
Type map[string]int `json:"type"`
} `json:"threats"`
Pageviews struct {
All int `json:"all"`
SearchEngines map[string]int `json:"search_engines"`
} `json:"pageviews"`
Uniques struct {
All int `json:"all"`
}
}
ZoneAnalytics contains analytics data for a zone.
type ZoneAnalyticsColocation ¶
type ZoneAnalyticsColocation struct {
ColocationID string `json:"colo_id"`
Timeseries []ZoneAnalytics `json:"timeseries"`
}
ZoneAnalyticsColocation contains analytics data by datacenter.
type ZoneAnalyticsData ¶
type ZoneAnalyticsData struct {
Totals ZoneAnalytics `json:"totals"`
Timeseries []ZoneAnalytics `json:"timeseries"`
}
ZoneAnalyticsData contains totals and timeseries analytics data for a zone.
type ZoneAnalyticsOptions ¶
ZoneAnalyticsOptions represents the optional parameters in Zone Analytics endpoint requests.
type ZoneCustomSSL ¶
type ZoneCustomSSL struct {
ID string `json:"id"`
Hosts []string `json:"hosts"`
Issuer string `json:"issuer"`
Signature string `json:"signature"`
Status string `json:"status"`
BundleMethod string `json:"bundle_method"`
ZoneID string `json:"zone_id"`
UploadedOn time.Time `json:"uploaded_on"`
ModifiedOn time.Time `json:"modified_on"`
ExpiresOn time.Time `json:"expires_on"`
Priority int `json:"priority"`
KeylessServer KeylessSSL `json:"keyless_server"`
}
ZoneCustomSSL represents custom SSL certificate metadata.
type ZoneCustomSSLOptions ¶
type ZoneCustomSSLOptions struct {
Certificate string `json:"certificate"`
PrivateKey string `json:"private_key"`
BundleMethod string `json:"bundle_method,omitempty"`
}
ZoneCustomSSLOptions represents the parameters to create or update an existing custom SSL configuration.
type ZoneCustomSSLPriority ¶
ZoneCustomSSLPriority represents a certificate's ID and priority. It is a subset of ZoneCustomSSL used for patch requests.
type ZoneIDResponse ¶
ZoneIDResponse represents the response from the Zone endpoint, containing only a zone ID.
type ZoneMeta ¶
type ZoneMeta struct {
// custom_certificate_quota is broken - sometimes it's a string, sometimes a number!
// CustCertQuota int `json:"custom_certificate_quota"`
PageRuleQuota int `json:"page_rule_quota"`
WildcardProxiable bool `json:"wildcard_proxiable"`
PhishingDetected bool `json:"phishing_detected"`
}
ZoneMeta metadata about a zone.
type ZoneOptions ¶
type ZoneOptions struct {
// FIXME(jamesog): Using omitempty here means we can't disable Paused.
// Currently unsure how to work around this.
Paused bool `json:"paused,omitempty"`
VanityNS []string `json:"vanity_name_servers,omitempty"`
Plan *ZonePlan `json:"plan,omitempty"`
}
ZoneOptions is a subset of Zone, for editable options.
type ZonePlan ¶
type ZonePlan struct {
ID string `json:"id"`
Name string `json:"name,omitempty"`
Price int `json:"price,omitempty"`
Currency string `json:"currency,omitempty"`
Frequency string `json:"frequency,omitempty"`
LegacyID string `json:"legacy_id,omitempty"`
IsSubscribed bool `json:"is_subscribed,omitempty"`
CanSubscribe bool `json:"can_subscribe,omitempty"`
}
ZonePlan contains the plan information for a zone.
type ZonePlanResponse ¶
ZonePlanResponse represents the response from the Plan Details endpoint.
type ZoneRailgun ¶
type ZoneRailgun struct {
ID string `json:"id"`
Name string `json:"name"`
Enabled bool `json:"enabled"`
Connected bool `json:"connected"`
}
ZoneRailgun represents the status of a Railgun on a zone.
type ZoneResponse ¶
ZoneResponse represents the response from the Zone endpoint containing a single zone.
type ZoneSetting ¶
type ZoneSetting struct {
ID string `json:"id"`
Editable bool `json:"editable"`
ModifiedOn string `json:"modified_on"`
Value interface{} `json:"value"`
TimeRemaining int `json:"time_remaining"`
}
ZoneSetting contains settings for a zone.
type ZoneSettingResponse ¶
type ZoneSettingResponse struct {
Response
Result []ZoneSetting `json:"result"`
}
ZoneSettingResponse represents the response from the Zone Setting endpoint.
type ZonesResponse ¶
ZonesResponse represents the response from the Zone endpoint containing an array of zones.