Documentation ¶
Overview ¶
Package cloudflare implements the Cloudflare v4 API.
Example ¶
package main import ( "fmt" cloudflare "github.com/cloudflare/cloudflare-go" ) func main() { api, err := cloudflare.New("deadbeef", "cloudflare@example.org") if err != nil { fmt.Println(err) return } // Fetch the zone ID for zone example.org zoneID, err := api.ZoneIDByName("example.org") if err != nil { fmt.Println(err) return } // Fetch all DNS records for example.org records, err := api.DNSRecords(zoneID, cloudflare.DNSRecord{}) if err != nil { fmt.Println(err) return } for _, r := range records { fmt.Printf("%s: %s\n", r.Name, r.Content) } }
Output:
Index ¶
- Constants
- Variables
- type API
- func (api *API) AvailableZoneRatePlans(zoneID string) ([]ZoneRatePlan, error)
- func (api *API) ChangePageRule(zoneID, ruleID string, rule PageRule) error
- func (api *API) ConnectZoneRailgun(zoneID, railgunID string) (ZoneRailgun, error)
- func (api *API) CreateCustomHostname(zoneID string, ch CustomHostname) (*CustomHostnameResponse, error)
- func (api *API) CreateDNSRecord(zoneID string, rr DNSRecord) (*DNSRecordResponse, error)
- func (api *API) CreateKeyless()
- func (api *API) CreateOriginCertificate(certificate OriginCACertificate) (*OriginCACertificate, error)
- 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) CustomHostname(zoneID string, customHostnameID string) (CustomHostname, error)
- func (api *API) CustomHostnameIDByName(zoneID string, hostname string) (string, error)
- func (api *API) CustomHostnames(zoneID string, page int, filter CustomHostname) ([]CustomHostname, ResultInfo, error)
- func (api *API) DNSRecord(zoneID, recordID string) (DNSRecord, error)
- func (api *API) DNSRecords(zoneID string, rr DNSRecord) ([]DNSRecord, error)
- func (api *API) DeleteCustomHostname(zoneID string, customHostnameID string) 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) OrganizationDetails(organizationID string) (OrganizationDetails, error)
- func (api *API) OrganizationInvites(organizationID string) ([]OrganizationInvite, ResultInfo, error)
- func (api *API) OrganizationMembers(organizationID string) ([]OrganizationMember, ResultInfo, error)
- func (api *API) OrganizationRoles(organizationID string) ([]OrganizationRole, ResultInfo, error)
- func (api *API) OriginCertificate(certificateID string) (*OriginCACertificate, error)
- func (api *API) OriginCertificates(options OriginCACertificateListOptions) ([]OriginCACertificate, 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) RevokeOriginCertificate(certificateID string) (*OriginCACertificateID, error)
- func (api *API) SSLDetails(zoneID, certificateID string) (ZoneCustomSSL, error)
- func (api *API) SetAuthType(authType int)
- func (api *API) TestRailgunConnection(zoneID, railgunID string) (RailgunDiagnosis, error)
- func (api *API) UpdateCustomHostnameSSL(zoneID string, customHostnameID string, ssl CustomHostnameSSL) (CustomHostname, 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) ZoneRailgunDetails(zoneID, railgunID string) (ZoneRailgun, error)
- func (api *API) ZoneRailguns(zoneID string) ([]ZoneRailgun, error)
- func (api *API) ZoneSSLSettings(zoneID string) (ZoneSSLSetting, error)
- func (api *API) ZoneSetPaused(zoneID string, paused bool) (Zone, error)
- func (api *API) ZoneSetRatePlan(zoneID string, plan ZoneRatePlan) (Zone, error)
- func (api *API) ZoneSetVanityNS(zoneID string, ns []string) (Zone, error)
- type AvailableZoneRatePlansResponse
- type CustomHostname
- type CustomHostnameListResponse
- type CustomHostnameResponse
- type CustomHostnameSSL
- type CustomMetadata
- 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 OrganizationDetails
- type OrganizationInvite
- type OrganizationMember
- type OrganizationRole
- type OriginCACertificate
- type OriginCACertificateID
- type OriginCACertificateListOptions
- 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 ZoneRailgun
- type ZoneRatePlan
- type ZoneRatePlanResponse
- type ZoneResponse
- type ZoneSSLSetting
- type ZoneSSLSettingResponse
- type ZoneSetting
- type ZoneSettingResponse
- type ZonesResponse
Examples ¶
Constants ¶
const ( // AuthKeyEmail specifies that we should authenticate with API key and email address AuthKeyEmail = 1 << iota // AuthUserService specifies that we should authenticate with a User-Service key AuthUserService )
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 APIUserServiceKey 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) AvailableZoneRatePlans ¶ added in v0.7.4
func (api *API) AvailableZoneRatePlans(zoneID string) ([]ZoneRatePlan, error)
AvailableZoneRatePlans 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 you 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
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
func (*API) CreateCustomHostname ¶ added in v0.7.4
func (api *API) CreateCustomHostname(zoneID string, ch CustomHostname) (*CustomHostnameResponse, error)
CreateCustomHostname creates a new custom hostname and requests that an SSL certificate be issued for it.
API reference: https://api.cloudflare.com/#custom-hostname-for-a-zone-create-custom-hostname
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
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
func (*API) CreateOriginCertificate ¶ added in v0.7.4
func (api *API) CreateOriginCertificate(certificate OriginCACertificate) (*OriginCACertificate, error)
CreateOriginCertificate creates a Cloudflare-signed certificate.
This function requires api.APIUserServiceKey be set to your Certificates API key.
API reference: https://api.cloudflare.com/#cloudflare-ca-create-certificate
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
func (*API) CreateRailgun ¶
CreateRailgun creates a new Railgun.
API reference: https://api.cloudflare.com/#railgun-create-railgun
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
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
func (*API) CreateZone ¶
CreateZone creates a zone on an account.
Setting jumpstart to true will attempt to automatically scan for existing DNS records. Setting this to false will create the zone with no DNS records.
If Organization is non-empty, it must have at least the ID field populated. This will add the new zone to the specified multi-user organization.
API reference: https://api.cloudflare.com/#zone-create-a-zone
func (*API) CustomHostname ¶ added in v0.7.4
func (api *API) CustomHostname(zoneID string, customHostnameID string) (CustomHostname, error)
CustomHostname inspects the given custom hostname in the given zone.
API reference: https://api.cloudflare.com/#custom-hostname-for-a-zone-custom-hostname-configuration-details
func (*API) CustomHostnameIDByName ¶ added in v0.7.4
CustomHostnameIDByName retrieves the ID for the given hostname in the given zone.
func (*API) CustomHostnames ¶ added in v0.7.4
func (api *API) CustomHostnames(zoneID string, page int, filter CustomHostname) ([]CustomHostname, ResultInfo, error)
CustomHostnames fetches custom hostnames for the given zone, by applying filter.Hostname if not empty and scoping the result to page'th 50 items.
The returned ResultInfo can be used to implement pagination.
API reference: https://api.cloudflare.com/#custom-hostname-for-a-zone-list-custom-hostnames
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
func (*API) DNSRecords ¶
DNSRecords returns a slice of DNS records for the given zone identifier.
This takes a DNSRecord to allow filtering of the results returned.
API reference: https://api.cloudflare.com/#dns-records-for-a-zone-list-dns-records
Example (All) ¶
package main import ( "fmt" "log" cloudflare "github.com/cloudflare/cloudflare-go" ) func main() { api, err := cloudflare.New("deadbeef", "test@example.org") if err != nil { log.Fatal(err) } zoneID, err := api.ZoneIDByName("example.com") if err != nil { log.Fatal(err) } // Fetch all records for a zone recs, err := api.DNSRecords(zoneID, cloudflare.DNSRecord{}) if err != nil { log.Fatal(err) } for _, r := range recs { fmt.Printf("%s: %s\n", r.Name, r.Content) } }
Output:
Example (FilterByContent) ¶
package main import ( "fmt" "log" cloudflare "github.com/cloudflare/cloudflare-go" ) func main() { api, err := cloudflare.New("deadbeef", "test@example.org") if err != nil { log.Fatal(err) } zoneID, err := api.ZoneIDByName("example.com") if err != nil { log.Fatal(err) } // Fetch only records whose content is 127.0.0.1 localhost := cloudflare.DNSRecord{Content: "127.0.0.1"} recs, err := api.DNSRecords(zoneID, localhost) if err != nil { log.Fatal(err) } for _, r := range recs { fmt.Printf("%s: %s\n", r.Name, r.Content) } }
Output:
Example (FilterByName) ¶
package main import ( "fmt" "log" cloudflare "github.com/cloudflare/cloudflare-go" ) func main() { api, err := cloudflare.New("deadbeef", "test@example.org") if err != nil { log.Fatal(err) } zoneID, err := api.ZoneIDByName("example.com") if err != nil { log.Fatal(err) } // Fetch records of any type with name "foo.example.com" // The name must be fully-qualified foo := cloudflare.DNSRecord{Name: "foo.example.com"} recs, err := api.DNSRecords(zoneID, foo) if err != nil { log.Fatal(err) } for _, r := range recs { fmt.Printf("%s: %s\n", r.Name, r.Content) } }
Output:
Example (FilterByType) ¶
package main import ( "fmt" "log" cloudflare "github.com/cloudflare/cloudflare-go" ) func main() { api, err := cloudflare.New("deadbeef", "test@example.org") if err != nil { log.Fatal(err) } zoneID, err := api.ZoneIDByName("example.com") if err != nil { log.Fatal(err) } // Fetch only AAAA type records aaaa := cloudflare.DNSRecord{Type: "AAAA"} recs, err := api.DNSRecords(zoneID, aaaa) if err != nil { log.Fatal(err) } for _, r := range recs { fmt.Printf("%s: %s\n", r.Name, r.Content) } }
Output:
func (*API) DeleteCustomHostname ¶ added in v0.7.4
Delete a custom hostname (and any issued SSL certificates)
API reference: https://api.cloudflare.com/#custom-hostname-for-a-zone-delete-a-custom-hostname-and-any-issued-ssl-certificates-
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
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
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
func (*API) DeleteRailgun ¶
DeleteRailgun disables and deletes a Railgun.
API reference: https://api.cloudflare.com/#railgun-delete-railgun
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
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
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
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
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
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
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
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
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
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
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
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
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
Example (All) ¶
package main import ( "fmt" "log" cloudflare "github.com/cloudflare/cloudflare-go" ) func main() { api, err := cloudflare.New("deadbeef", "test@example.org") if err != nil { log.Fatal(err) } // Fetch a slice of all zones available to this account. zones, err := api.ListZones() if err != nil { log.Fatal(err) } for _, z := range zones { fmt.Println(z.Name) } }
Output:
Example (Filter) ¶
package main import ( "fmt" "log" cloudflare "github.com/cloudflare/cloudflare-go" ) func main() { api, err := cloudflare.New("deadbeef", "test@example.org") if err != nil { log.Fatal(err) } // Fetch a slice of zones example.org and example.net. zones, err := api.ListZones("example.org", "example.net") if err != nil { log.Fatal(err) } for _, z := range zones { fmt.Println(z.Name) } }
Output:
func (*API) OrganizationDetails ¶ added in v0.7.4
func (api *API) OrganizationDetails(organizationID string) (OrganizationDetails, error)
OrganizationDetails returns details for the specified organization of the logged-in user.
API reference: https://api.cloudflare.com/#organizations-organization-details
func (*API) OrganizationInvites ¶ added in v0.7.4
func (api *API) OrganizationInvites(organizationID string) ([]OrganizationInvite, ResultInfo, error)
OrganizationMembers returns list of invites for specified organization of the logged-in user.
API reference: https://api.cloudflare.com/#organization-invites
func (*API) OrganizationMembers ¶ added in v0.7.4
func (api *API) OrganizationMembers(organizationID string) ([]OrganizationMember, ResultInfo, error)
OrganizationMembers returns list of members for specified organization of the logged-in user.
API reference: https://api.cloudflare.com/#organization-members-list-members
func (*API) OrganizationRoles ¶ added in v0.7.4
func (api *API) OrganizationRoles(organizationID string) ([]OrganizationRole, ResultInfo, error)
OrganizationRoles returns list of roles for specified organization of the logged-in user.
API reference: https://api.cloudflare.com/#organization-roles-list-roles
func (*API) OriginCertificate ¶ added in v0.7.4
func (api *API) OriginCertificate(certificateID string) (*OriginCACertificate, error)
OriginCertificate returns the details for a Cloudflare-issued certificate.
This function requires api.APIUserServiceKey be set to your Certificates API key.
API reference: https://api.cloudflare.com/#cloudflare-ca-certificate-details
func (*API) OriginCertificates ¶ added in v0.7.4
func (api *API) OriginCertificates(options OriginCACertificateListOptions) ([]OriginCACertificate, error)
OriginCertificates lists all Cloudflare-issued certificates.
This function requires api.APIUserServiceKey be set to your Certificates API key.
API reference: https://api.cloudflare.com/#cloudflare-ca-list-certificates
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
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
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
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
func (*API) RevokeOriginCertificate ¶ added in v0.7.4
func (api *API) RevokeOriginCertificate(certificateID string) (*OriginCACertificateID, error)
RevokeOriginCertificate revokes a created certificate for a zone.
This function requires api.APIUserServiceKey be set to your Certificates API key.
API reference: https://api.cloudflare.com/#cloudflare-ca-revoke-certificate
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
func (*API) SetAuthType ¶ added in v0.7.4
SetAuthType sets the authentication method (AuthyKeyEmail or AuthUserService).
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
func (*API) UpdateCustomHostnameSSL ¶ added in v0.7.4
func (api *API) UpdateCustomHostnameSSL(zoneID string, customHostnameID string, ssl CustomHostnameSSL) (CustomHostname, error)
Modify SSL configuration for the given custom hostname in the given zone.
API reference: https://api.cloudflare.com/#custom-hostname-for-a-zone-update-custom-hostname-configuration
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
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
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
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
func (*API) UpdateUser ¶
UpdateUser updates the properties of the given user.
API reference: https://api.cloudflare.com/#user-update-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
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
func (*API) UserDetails ¶
UserDetails provides information about the logged-in user.
API reference: https://api.cloudflare.com/#user-user-details
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
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
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
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) 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
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
func (*API) ZoneSSLSettings ¶ added in v0.7.4
func (api *API) ZoneSSLSettings(zoneID string) (ZoneSSLSetting, error)
ZoneSSLSetting returns information about ssl setting to the specified zone.
API reference: https://api.cloudflare.com/#zone-settings-get-ssl-setting
func (*API) ZoneSetPaused ¶
ZoneSetPaused pauses Cloudflare service for the entire zone, sending all traffic direct to the origin.
func (*API) ZoneSetRatePlan ¶ added in v0.7.4
func (api *API) ZoneSetRatePlan(zoneID string, plan ZoneRatePlan) (Zone, error)
ZoneSetRatePlan changes the zone plan.
type AvailableZoneRatePlansResponse ¶ added in v0.7.4
type AvailableZoneRatePlansResponse struct { Response Result []ZoneRatePlan `json:"result"` ResultInfo }
AvailableZoneRatePlansResponse represents the response from the Available Rate Plans endpoint.
type CustomHostname ¶ added in v0.7.4
type CustomHostname struct { ID string `json:"id,omitempty"` Hostname string `json:"hostname,omitempty"` SSL CustomHostnameSSL `json:"ssl,omitempty"` CustomMetadata CustomMetadata `json:"custom_metadata,omitempty"` }
CustomHostname represents a custom hostname in a zone.
type CustomHostnameListResponse ¶ added in v0.7.4
type CustomHostnameListResponse struct { Result []CustomHostname `json:"result"` Response ResultInfo `json:"result_info"` }
CustomHostnameListResponse represents a response from the Custom Hostnames endpoints.
type CustomHostnameResponse ¶ added in v0.7.4
type CustomHostnameResponse struct { Result CustomHostname `json:"result"` Response }
CustomHostNameResponse represents a response from the Custom Hostnames endpoints.
type CustomHostnameSSL ¶ added in v0.7.4
type CustomHostnameSSL struct { Status string `json:"status,omitempty"` Method string `json:"method,omitempty"` Type string `json:"type,omitempty"` CnameTarget string `json:"cname_target,omitempty"` CnameName string `json:"cname_name,omitempty"` }
CustomHostnameSSL represents the SSL section in a given custom hostname.
type CustomMetadata ¶ added in v0.7.4
type CustomMetadata map[string]interface{}
CustomMetadata defines custom metadata for the hostname. This requires logic to be implemented by Cloudflare to act on the data provided.
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.
func IPs ¶
IPs gets a list of Cloudflare's IP ranges.
This does not require logging in to the API.
API reference: https://api.cloudflare.com/#cloudflare-ips
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 OrganizationDetails ¶ added in v0.7.4
type OrganizationDetails struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Members []OrganizationMember `json:"members"` Invites []OrganizationInvite `json:"invites"` Roles []OrganizationRole `json:"roles,omitempty"` }
OrganizationDetails represents details of an organization.
type OrganizationInvite ¶ added in v0.7.4
type OrganizationInvite struct { ID string `json:"id,omitempty"` InvitedMemberID string `json:"invited_member_id,omitempty"` InvitedMemberEmail string `json:"invited_member_email,omitempty"` OrganizationID string `json:"organization_id,omitempty"` OrganizationName string `json:"organization_name,omitempty"` Roles []OrganizationRole `json:"roles,omitempty"` InvitedBy string `json:"invited_by,omitempty"` InvitedOn *time.Time `json:"invited_on,omitempty"` ExpiresOn *time.Time `json:"expires_on,omitempty"` Status string `json:"status,omitempty"` }
OrganizationInvite has details on an invite.
type OrganizationMember ¶ added in v0.7.4
type OrganizationMember struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Email string `json:"email,omitempty"` Status string `json:"status,omitempty"` Roles []OrganizationRole `json:"roles,omitempty"` }
OrganizationMember has details on a member.
type OrganizationRole ¶ added in v0.7.4
type OrganizationRole struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` Permissions []string `json:"permissions,omitempty"` }
OrganizationRole has details on a role.
type OriginCACertificate ¶ added in v0.7.4
type OriginCACertificate struct { ID string `json:"id"` Certificate string `json:"certificate"` Hostnames []string `json:"hostnames"` ExpiresOn time.Time `json:"expires_on"` RequestType string `json:"request_type"` RequestValidity int `json:"requested_validity"` CSR string `json:"csr"` }
OriginCACertificate represents a Cloudflare-issued certificate.
API reference: https://api.cloudflare.com/#cloudflare-ca
type OriginCACertificateID ¶ added in v0.7.4
type OriginCACertificateID struct {
ID string `json:"id"`
}
OriginCACertificateID represents the ID of the revoked certificate from the Revoke Certificate endpoint.
type OriginCACertificateListOptions ¶ added in v0.7.4
type OriginCACertificateListOptions struct {
ZoneID string
}
OriginCACertificateListOptions represents the parameters used to list Cloudflare-issued certificates.
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 contains the time in seconds until development expires (if // positive) or since it expired (if negative). It will be 0 if never used. 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 ZoneRatePlan `json:"plan"` PlanPending ZoneRatePlan `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 describes metadata about a zone.
type ZoneOptions ¶
type ZoneOptions struct { Paused *bool `json:"paused,omitempty"` VanityNS []string `json:"vanity_name_servers,omitempty"` Plan *ZoneRatePlan `json:"plan,omitempty"` }
ZoneOptions is a subset of Zone, for editable options.
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 ZoneRatePlan ¶ added in v0.7.4
type ZoneRatePlan struct { ID string `json:"id"` Name string `json:"name,omitempty"` Price int `json:"price,omitempty"` Currency string `json:"currency,omitempty"` Duration int `json:"duration,omitempty"` Frequency string `json:"frequency,omitempty"` Components []zoneRatePlanComponents `json:"components,omitempty"` }
ZoneRatePlan contains the plan information for a zone.
type ZoneRatePlanResponse ¶ added in v0.7.4
type ZoneRatePlanResponse struct { Response Result ZoneRatePlan `json:"result"` }
ZoneRatePlanResponse represents the response from the Plan Details endpoint.
type ZoneResponse ¶
ZoneResponse represents the response from the Zone endpoint containing a single zone.
type ZoneSSLSetting ¶ added in v0.7.4
type ZoneSSLSetting struct { ID string `json:"id"` Editable bool `json:"editable"` ModifiedOn string `json:"modified_on"` Value string `json:"value"` CertificateStatus string `json:"certificate_status"` }
ZoneSSLSetting contains ssl setting for a zone.
type ZoneSSLSettingResponse ¶ added in v0.7.4
type ZoneSSLSettingResponse struct { Response Result ZoneSSLSetting `json:"result"` }
ZoneSettingResponse represents the response from the Zone SSL Setting endpoint.
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.