<reponame>mami-project/lurk
""" API core commands for Cloudflare API"""

def api_v4(self):
    """ API core commands for Cloudflare API"""

    # The API commands for /user/
    user(self)
    user_load_balancers(self)
    user_virtual_dns(self)
    # The API commands for /zones/
    zones(self)
    zones_settings(self)
    zones_analytics(self)
    zones_firewall(self)
    zones_rate_limits(self)
    zones_amp(self)
    # The API commands for /railguns/
    railguns(self)
    # The API commands for /organizations/
    organizations(self)
    organizations_virtual_dns(self)
    # The API commands for /certificates/
    certificates(self)
    # The API commands for /ips/
    ips(self)
    # The API commands for /zones/:zone_id/argo
    zones_argo(self)
    # The API commands for /zones/:zone_id/dnssec
    zones_dnssec(self)
    # The API commands for /zones/:zone_id/ssl
    zones_ssl(self)
    # The API commands for CLB /zones/:zone_id/load_balancers & /user/load_balancers
    zones_load_balancers(self)
    zones_dns_analytics(self)

def user(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "user",
            self._add_with_auth(base, "user"))
    branch = self.user
    setattr(branch, "billing",
            self._add_unused(base, "user/billing"))
    branch = self.user.billing
    setattr(branch, "history",
            self._add_with_auth(base, "user/billing/history"))
    setattr(branch, "profile",
            self._add_with_auth(base, "user/billing/profile"))
    setattr(branch, "subscriptions",
            self._add_unused(base, "user/billing/subscriptions"))
    branch = self.user.billing.subscriptions
    setattr(branch, "apps",
            self._add_with_auth(base, "user/billing/subscriptions/apps"))
    setattr(branch, "zones",
            self._add_with_auth(base, "user/billing/subscriptions/zones"))
    branch = self.user
    setattr(branch, "firewall",
            self._add_unused(base, "user/firewall"))
    branch = self.user.firewall
    setattr(branch, "access_rules",
            self._add_unused(base, "user/firewall/access_rules"))
    branch = self.user.firewall.access_rules
    setattr(branch, "rules",
            self._add_with_auth(base, "user/firewall/access_rules/rules"))
    branch = self.user
    setattr(branch, "organizations",
            self._add_with_auth(base, "user/organizations"))
    setattr(branch, "invites",
            self._add_with_auth(base, "user/invites"))
    setattr(branch, "subscriptions",
            self._add_with_auth(base, "user/subscriptions"))

def zones(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "zones",
            self._add_with_auth(base, "zones"))
    branch = self.zones
    setattr(branch, "activation_check",
            self._add_with_auth(base, "zones", "activation_check"))
    setattr(branch, "available_plans",
            self._add_with_auth(base, "zones", "available_plans"))
    setattr(branch, "available_rate_plans",
            self._add_with_auth(base, "zones", "available_rate_plans"))
    setattr(branch, "custom_certificates",
            self._add_with_auth(base, "zones", "custom_certificates"))
    branch = self.zones.custom_certificates
    setattr(branch, "prioritize",
            self._add_with_auth(base, "zones", "custom_certificates/prioritize"))
    branch = self.zones
    setattr(branch, "custom_pages",
            self._add_with_auth(base, "zones", "custom_pages"))
    setattr(branch, "dns_records",
            self._add_with_auth(base, "zones", "dns_records"))
    setattr(branch, "keyless_certificates",
            self._add_with_auth(base, "zones", "keyless_certificates"))
    setattr(branch, "pagerules",
            self._add_with_auth(base, "zones", "pagerules"))
    setattr(branch, "purge_cache",
            self._add_with_auth(base, "zones", "purge_cache"))
    setattr(branch, "railguns",
            self._add_with_auth(base, "zones", "railguns"))
    branch = self.zones.railguns
    setattr(branch, "diagnose",
            self._add_with_auth(base, "zones", "railguns", "diagnose"))
    branch = self.zones
    setattr(branch, "subscription",
            self._add_with_auth(base, "zones", "subscription"))
    setattr(branch, "subscriptions",
            self._add_with_auth(base, "zones", "subscriptions"))
    branch = self.zones.dns_records
    setattr(branch, "export",
            self._add_with_auth(base, "zones", "dns_records/export"))
    setattr(branch, "import",
            self._add_with_auth(base, "zones", "dns_records/import"))
    branch = self.zones
    setattr(branch, "custom_hostnames",
            self._add_with_auth(base, "zones", "custom_hostnames"))

def zones_settings(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "settings",
            self._add_with_auth(base, "zones", "settings"))
    branch = self.zones.settings
    setattr(branch, "advanced_ddos",
            self._add_with_auth(base, "zones", "settings/advanced_ddos"))
    setattr(branch, "always_online",
            self._add_with_auth(base, "zones", "settings/always_online"))
    setattr(branch, "always_use_https",
            self._add_with_auth(base, "zones", "settings/always_use_https"))
    setattr(branch, "browser_cache_ttl",
            self._add_with_auth(base, "zones", "settings/browser_cache_ttl"))
    setattr(branch, "browser_check",
            self._add_with_auth(base, "zones", "settings/browser_check"))
    setattr(branch, "cache_level",
            self._add_with_auth(base, "zones", "settings/cache_level"))
    setattr(branch, "challenge_ttl",
            self._add_with_auth(base, "zones", "settings/challenge_ttl"))
    setattr(branch, "development_mode",
            self._add_with_auth(base, "zones", "settings/development_mode"))
    setattr(branch, "email_obfuscation",
            self._add_with_auth(base, "zones", "settings/email_obfuscation"))
    setattr(branch, "hotlink_protection",
            self._add_with_auth(base, "zones", "settings/hotlink_protection"))
    setattr(branch, "ip_geolocation",
            self._add_with_auth(base, "zones", "settings/ip_geolocation"))
    setattr(branch, "ipv6",
            self._add_with_auth(base, "zones", "settings/ipv6"))
    setattr(branch, "minify",
            self._add_with_auth(base, "zones", "settings/minify"))
    setattr(branch, "mirage",
            self._add_with_auth(base, "zones", "settings/mirage"))
    setattr(branch, "mobile_redirect",
            self._add_with_auth(base, "zones", "settings/mobile_redirect"))
    setattr(branch, "origin_error_page_pass_thru",
            self._add_with_auth(base, "zones", "settings/origin_error_page_pass_thru"))
    setattr(branch, "polish",
            self._add_with_auth(base, "zones", "settings/polish"))
    setattr(branch, "prefetch_preload",
            self._add_with_auth(base, "zones", "settings/prefetch_preload"))
    setattr(branch, "response_buffering",
            self._add_with_auth(base, "zones", "settings/response_buffering"))
    setattr(branch, "rocket_loader",
            self._add_with_auth(base, "zones", "settings/rocket_loader"))
    setattr(branch, "security_header",
            self._add_with_auth(base, "zones", "settings/security_header"))
    setattr(branch, "security_level",
            self._add_with_auth(base, "zones", "settings/security_level"))
    setattr(branch, "server_side_exclude",
            self._add_with_auth(base, "zones", "settings/server_side_exclude"))
    setattr(branch, "sort_query_string_for_cache",
            self._add_with_auth(base, "zones", "settings/sort_query_string_for_cache"))
    setattr(branch, "ssl",
            self._add_with_auth(base, "zones", "settings/ssl"))
    setattr(branch, "tls_client_auth",
            self._add_with_auth(base, "zones", "settings/tls_client_auth"))
    setattr(branch, "true_client_ip_header",
            self._add_with_auth(base, "zones", "settings/true_client_ip_header"))
    setattr(branch, "tls_1_2_only",
            self._add_with_auth(base, "zones", "settings/tls_1_2_only"))
    setattr(branch, "tls_1_3",
            self._add_with_auth(base, "zones", "settings/tls_1_3"))
    # setattr(branch, "tlsadd_auth",
    #         self._add_with_auth(base, "zones", "settings/tlsadd_auth"))
    # setattr(branch, "trueadd_ip_header",
    #         self._add_with_auth(base, "zones", "settings/trueadd_ip_header"))
    setattr(branch, "websockets",
            self._add_with_auth(base, "zones", "settings/websockets"))
    setattr(branch, "waf",
            self._add_with_auth(base, "zones", "settings/waf"))
    setattr(branch, "webp",
            self._add_with_auth(base, "zones", "settings/webp"))
    setattr(branch, "http2",
            self._add_with_auth(base, "zones", "settings/http2"))
    setattr(branch, "pseudo_ipv4",
            self._add_with_auth(base, "zones", "settings/pseudo_ipv4"))
    setattr(branch, "opportunistic_encryption",
            self._add_with_auth(base, "zones", "settings/opportunistic_encryption"))
    setattr(branch, "automatic_https_rewrites",
            self._add_with_auth(base, "zones", "settings/automatic_https_rewrites"))

def zones_analytics(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "analytics",
            self._add_unused(base, "zones", "analytics"))
    branch = self.zones.analytics
    setattr(branch, "colos",
            self._add_with_auth(base, "zones", "analytics/colos"))
    setattr(branch, "dashboard",
            self._add_with_auth(base, "zones", "analytics/dashboard"))

def zones_firewall(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "firewall",
            self._add_unused(branch, "zones", "firewall"))
    branch = self.zones.firewall
    setattr(branch, "access_rules",
            self._add_unused(base, "zones", "firewall/access_rules"))
    setattr(branch, "waf",
            self._add_unused(base, "zones", "firewall/waf"))
    branch = self.zones.firewall.waf
    setattr(branch, "packages",
            self._add_with_auth(base, "zones", "firewall/waf/packages"))
    branch = self.zones.firewall.waf.packages
    setattr(branch, "groups",
            self._add_with_auth(base, "zones", "firewall/waf/packages", "groups"))
    setattr(branch, "rules",
            self._add_with_auth(base, "zones", "firewall/waf/packages", "rules"))
    branch = self.zones.firewall.access_rules
    setattr(branch, "rules",
            self._add_with_auth(base, "zones", "firewall/access_rules/rules"))
    branch = self.zones.firewall
    setattr(branch, "lockdowns",
            self._add_with_auth(base, "zones", "firewall/lockdowns"))
    setattr(branch, "ua_rules",
            self._add_with_auth(base, "zones", "firewall/ua_rules"))

def zones_rate_limits(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "rate_limits",
            self._add_with_auth(base, "zones", "rate_limits"))

def zones_dns_analytics(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "dns_analytics",
            self._add_unused(base, "zones", "dns_analytics"))
    branch = self.zones.dns_analytics
    setattr(branch, "report",
            self._add_with_auth(base, "zones", "dns_analytics/report"))
    branch = self.zones.dns_analytics.report
    setattr(branch, "bytime",
            self._add_with_auth(base, "zones", "dns_analytics/report/bytime"))

def zones_amp(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "amp",
            self._add_unused(base, "zones", "amp"))
    branch = self.zones.amp
    setattr(branch, "viewer",
            self._add_with_auth(base, "zones", "amp/viewer"))

def railguns(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "railguns",
            self._add_with_auth(base, "railguns"))
    branch = self.railguns
    setattr(branch, "zones",
            self._add_with_auth(base, "railguns", "zones"))

def organizations(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "organizations",
            self._add_with_auth(base, "organizations"))
    branch = self.organizations
    setattr(branch, "members",
            self._add_with_auth(base, "organizations", "members"))
    setattr(branch, "invite",
            self._add_with_auth(base, "organizations", "invite"))
    setattr(branch, "invites",
            self._add_with_auth(base, "organizations", "invites"))
    setattr(branch, "railguns",
            self._add_with_auth(base, "organizations", "railguns"))
    branch = self.organizations.railguns
    setattr(branch, "zones",
            self._add_with_auth(base, "organizations", "railguns", "zones"))
    branch = self.organizations
    setattr(branch, "roles",
            self._add_with_auth(base, "organizations", "roles"))
    setattr(branch, "firewall",
            self._add_unused(base, "organizations", "firewall"))
    branch = self.organizations.firewall
    setattr(branch, "access_rules",
            self._add_unused(base, "organizations", "firewall/access_rules"))
    branch = self.organizations.firewall.access_rules
    setattr(branch, "rules",
            self._add_with_auth(base, "organizations", "firewall/access_rules/rules"))
    branch = self.organizations
    setattr(branch, "load_balancers",
            self._add_with_auth(base, "organizations", "load_balancers"))
    branch = self.organizations.load_balancers
    setattr(branch, "monitors",
            self._add_with_auth(base, "organizations", "load_balancers/monitors"))
    setattr(branch, "pools",
            self._add_with_auth(base, "organizations", "load_balancers/pools"))

def certificates(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "certificates",
            self._add_with_cert_auth(base, "certificates"))

def ips(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "ips",
            self._add_noauth(base, "ips"))

def zones_argo(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "argo",
            self._add_unused(base, "zones", "argo"))
    branch = self.zones.argo
    setattr(branch, "tiered_caching",
            self._add_with_auth(base, "zones", "argo/tiered_caching"))
    setattr(branch, "smart_routing",
            self._add_with_auth(base, "zones", "argo/smart_routing"))

def zones_dnssec(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "dnssec",
            self._add_with_auth(base, "zones", "dnssec"))

def zones_ssl(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "ssl",
            self._add_unused(base, "zones", "ssl"))
    branch = self.zones.ssl
    setattr(branch, "analyze",
            self._add_with_auth(base, "zones", "ssl/analyze"))
    setattr(branch, "certificate_packs",
            self._add_with_auth(base, "zones", "ssl/certificate_packs"))
    setattr(branch, "verification",
            self._add_with_auth(base, "zones", "ssl/verification"))

def zones_load_balancers(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "load_balancers",
            self._add_with_auth(base, "zones", "load_balancers"))

def user_load_balancers(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.user
    setattr(branch, "load_balancers",
            self._add_unused(base, "user/load_balancers"))
    branch = self.user.load_balancers
    setattr(branch, "monitors",
            self._add_with_auth(base, "user/load_balancers/monitors"))
    setattr(branch, "pools",
            self._add_with_auth(base, "user/load_balancers/pools"))

def user_virtual_dns(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.user
    setattr(branch, "virtual_dns",
            self._add_with_auth(base, "user/virtual_dns"))
    branch = self.user.virtual_dns
    setattr(branch, "dns_analytics",
            self._add_unused(base, "user/virtual_dns", "dns_analytics"))
    branch = self.user.virtual_dns.dns_analytics
    setattr(branch, "report",
            self._add_with_auth(base, "user/virtual_dns", "dns_analytics/report"))
    branch = self.user.virtual_dns.dns_analytics.report
    setattr(branch, "bytime",
            self._add_with_auth(base, "user/virtual_dns", "dns_analytics/report/bytime"))

def organizations_virtual_dns(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.organizations
    setattr(branch, "virtual_dns",
            self._add_with_auth(base, "organizations", "virtual_dns"))
    branch = self.organizations.virtual_dns
    setattr(branch, "dns_analytics",
            self._add_unused(base, "organizations", "virtual_dns", "dns_analytics"))
    branch = self.organizations.virtual_dns.dns_analytics
    setattr(branch, "report",
            self._add_with_auth(base, "organizations", "virtual_dns", "dns_analytics/report"))
    branch = self.organizations.virtual_dns.dns_analytics.report
    setattr(branch, "bytime",
            self._add_with_auth(base, "organizations", "virtual_dns", "dns_analytics/report/bytime"))


""" API core commands for Cloudflare API"""

def api_v4(self):
    """ API core commands for Cloudflare API"""

    # The API commands for /user/
    user(self)
    user_load_balancers(self)
    user_virtual_dns(self)
    # The API commands for /zones/
    zones(self)
    zones_settings(self)
    zones_analytics(self)
    zones_firewall(self)
    zones_rate_limits(self)
    zones_amp(self)
    # The API commands for /railguns/
    railguns(self)
    # The API commands for /organizations/
    organizations(self)
    organizations_virtual_dns(self)
    # The API commands for /certificates/
    certificates(self)
    # The API commands for /ips/
    ips(self)
    # The API commands for /zones/:zone_id/argo
    zones_argo(self)
    # The API commands for /zones/:zone_id/dnssec
    zones_dnssec(self)
    # The API commands for /zones/:zone_id/ssl
    zones_ssl(self)
    # The API commands for CLB /zones/:zone_id/load_balancers & /user/load_balancers
    zones_load_balancers(self)
    zones_dns_analytics(self)

def user(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "user",
            self._add_with_auth(base, "user"))
    branch = self.user
    setattr(branch, "billing",
            self._add_unused(base, "user/billing"))
    branch = self.user.billing
    setattr(branch, "history",
            self._add_with_auth(base, "user/billing/history"))
    setattr(branch, "profile",
            self._add_with_auth(base, "user/billing/profile"))
    setattr(branch, "subscriptions",
            self._add_unused(base, "user/billing/subscriptions"))
    branch = self.user.billing.subscriptions
    setattr(branch, "apps",
            self._add_with_auth(base, "user/billing/subscriptions/apps"))
    setattr(branch, "zones",
            self._add_with_auth(base, "user/billing/subscriptions/zones"))
    branch = self.user
    setattr(branch, "firewall",
            self._add_unused(base, "user/firewall"))
    branch = self.user.firewall
    setattr(branch, "access_rules",
            self._add_unused(base, "user/firewall/access_rules"))
    branch = self.user.firewall.access_rules
    setattr(branch, "rules",
            self._add_with_auth(base, "user/firewall/access_rules/rules"))
    branch = self.user
    setattr(branch, "organizations",
            self._add_with_auth(base, "user/organizations"))
    setattr(branch, "invites",
            self._add_with_auth(base, "user/invites"))
    setattr(branch, "subscriptions",
            self._add_with_auth(base, "user/subscriptions"))

def zones(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "zones",
            self._add_with_auth(base, "zones"))
    branch = self.zones
    setattr(branch, "activation_check",
            self._add_with_auth(base, "zones", "activation_check"))
    setattr(branch, "available_plans",
            self._add_with_auth(base, "zones", "available_plans"))
    setattr(branch, "available_rate_plans",
            self._add_with_auth(base, "zones", "available_rate_plans"))
    setattr(branch, "custom_certificates",
            self._add_with_auth(base, "zones", "custom_certificates"))
    branch = self.zones.custom_certificates
    setattr(branch, "prioritize",
            self._add_with_auth(base, "zones", "custom_certificates/prioritize"))
    branch = self.zones
    setattr(branch, "custom_pages",
            self._add_with_auth(base, "zones", "custom_pages"))
    setattr(branch, "dns_records",
            self._add_with_auth(base, "zones", "dns_records"))
    setattr(branch, "keyless_certificates",
            self._add_with_auth(base, "zones", "keyless_certificates"))
    setattr(branch, "pagerules",
            self._add_with_auth(base, "zones", "pagerules"))
    setattr(branch, "purge_cache",
            self._add_with_auth(base, "zones", "purge_cache"))
    setattr(branch, "railguns",
            self._add_with_auth(base, "zones", "railguns"))
    branch = self.zones.railguns
    setattr(branch, "diagnose",
            self._add_with_auth(base, "zones", "railguns", "diagnose"))
    branch = self.zones
    setattr(branch, "subscription",
            self._add_with_auth(base, "zones", "subscription"))
    setattr(branch, "subscriptions",
            self._add_with_auth(base, "zones", "subscriptions"))
    branch = self.zones.dns_records
    setattr(branch, "export",
            self._add_with_auth(base, "zones", "dns_records/export"))
    setattr(branch, "import",
            self._add_with_auth(base, "zones", "dns_records/import"))
    branch = self.zones
    setattr(branch, "custom_hostnames",
            self._add_with_auth(base, "zones", "custom_hostnames"))

def zones_settings(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "settings",
            self._add_with_auth(base, "zones", "settings"))
    branch = self.zones.settings
    setattr(branch, "advanced_ddos",
            self._add_with_auth(base, "zones", "settings/advanced_ddos"))
    setattr(branch, "always_online",
            self._add_with_auth(base, "zones", "settings/always_online"))
    setattr(branch, "always_use_https",
            self._add_with_auth(base, "zones", "settings/always_use_https"))
    setattr(branch, "browser_cache_ttl",
            self._add_with_auth(base, "zones", "settings/browser_cache_ttl"))
    setattr(branch, "browser_check",
            self._add_with_auth(base, "zones", "settings/browser_check"))
    setattr(branch, "cache_level",
            self._add_with_auth(base, "zones", "settings/cache_level"))
    setattr(branch, "challenge_ttl",
            self._add_with_auth(base, "zones", "settings/challenge_ttl"))
    setattr(branch, "development_mode",
            self._add_with_auth(base, "zones", "settings/development_mode"))
    setattr(branch, "email_obfuscation",
            self._add_with_auth(base, "zones", "settings/email_obfuscation"))
    setattr(branch, "hotlink_protection",
            self._add_with_auth(base, "zones", "settings/hotlink_protection"))
    setattr(branch, "ip_geolocation",
            self._add_with_auth(base, "zones", "settings/ip_geolocation"))
    setattr(branch, "ipv6",
            self._add_with_auth(base, "zones", "settings/ipv6"))
    setattr(branch, "minify",
            self._add_with_auth(base, "zones", "settings/minify"))
    setattr(branch, "mirage",
            self._add_with_auth(base, "zones", "settings/mirage"))
    setattr(branch, "mobile_redirect",
            self._add_with_auth(base, "zones", "settings/mobile_redirect"))
    setattr(branch, "origin_error_page_pass_thru",
            self._add_with_auth(base, "zones", "settings/origin_error_page_pass_thru"))
    setattr(branch, "polish",
            self._add_with_auth(base, "zones", "settings/polish"))
    setattr(branch, "prefetch_preload",
            self._add_with_auth(base, "zones", "settings/prefetch_preload"))
    setattr(branch, "response_buffering",
            self._add_with_auth(base, "zones", "settings/response_buffering"))
    setattr(branch, "rocket_loader",
            self._add_with_auth(base, "zones", "settings/rocket_loader"))
    setattr(branch, "security_header",
            self._add_with_auth(base, "zones", "settings/security_header"))
    setattr(branch, "security_level",
            self._add_with_auth(base, "zones", "settings/security_level"))
    setattr(branch, "server_side_exclude",
            self._add_with_auth(base, "zones", "settings/server_side_exclude"))
    setattr(branch, "sort_query_string_for_cache",
            self._add_with_auth(base, "zones", "settings/sort_query_string_for_cache"))
    setattr(branch, "ssl",
            self._add_with_auth(base, "zones", "settings/ssl"))
    setattr(branch, "tls_client_auth",
            self._add_with_auth(base, "zones", "settings/tls_client_auth"))
    setattr(branch, "true_client_ip_header",
            self._add_with_auth(base, "zones", "settings/true_client_ip_header"))
    setattr(branch, "tls_1_2_only",
            self._add_with_auth(base, "zones", "settings/tls_1_2_only"))
    setattr(branch, "tls_1_3",
            self._add_with_auth(base, "zones", "settings/tls_1_3"))
    # setattr(branch, "tlsadd_auth",
    #         self._add_with_auth(base, "zones", "settings/tlsadd_auth"))
    # setattr(branch, "trueadd_ip_header",
    #         self._add_with_auth(base, "zones", "settings/trueadd_ip_header"))
    setattr(branch, "websockets",
            self._add_with_auth(base, "zones", "settings/websockets"))
    setattr(branch, "waf",
            self._add_with_auth(base, "zones", "settings/waf"))
    setattr(branch, "webp",
            self._add_with_auth(base, "zones", "settings/webp"))
    setattr(branch, "http2",
            self._add_with_auth(base, "zones", "settings/http2"))
    setattr(branch, "pseudo_ipv4",
            self._add_with_auth(base, "zones", "settings/pseudo_ipv4"))
    setattr(branch, "opportunistic_encryption",
            self._add_with_auth(base, "zones", "settings/opportunistic_encryption"))
    setattr(branch, "automatic_https_rewrites",
            self._add_with_auth(base, "zones", "settings/automatic_https_rewrites"))

def zones_analytics(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "analytics",
            self._add_unused(base, "zones", "analytics"))
    branch = self.zones.analytics
    setattr(branch, "colos",
            self._add_with_auth(base, "zones", "analytics/colos"))
    setattr(branch, "dashboard",
            self._add_with_auth(base, "zones", "analytics/dashboard"))

def zones_firewall(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "firewall",
            self._add_unused(branch, "zones", "firewall"))
    branch = self.zones.firewall
    setattr(branch, "access_rules",
            self._add_unused(base, "zones", "firewall/access_rules"))
    setattr(branch, "waf",
            self._add_unused(base, "zones", "firewall/waf"))
    branch = self.zones.firewall.waf
    setattr(branch, "packages",
            self._add_with_auth(base, "zones", "firewall/waf/packages"))
    branch = self.zones.firewall.waf.packages
    setattr(branch, "groups",
            self._add_with_auth(base, "zones", "firewall/waf/packages", "groups"))
    setattr(branch, "rules",
            self._add_with_auth(base, "zones", "firewall/waf/packages", "rules"))
    branch = self.zones.firewall.access_rules
    setattr(branch, "rules",
            self._add_with_auth(base, "zones", "firewall/access_rules/rules"))
    branch = self.zones.firewall
    setattr(branch, "lockdowns",
            self._add_with_auth(base, "zones", "firewall/lockdowns"))
    setattr(branch, "ua_rules",
            self._add_with_auth(base, "zones", "firewall/ua_rules"))

def zones_rate_limits(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "rate_limits",
            self._add_with_auth(base, "zones", "rate_limits"))

def zones_dns_analytics(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "dns_analytics",
            self._add_unused(base, "zones", "dns_analytics"))
    branch = self.zones.dns_analytics
    setattr(branch, "report",
            self._add_with_auth(base, "zones", "dns_analytics/report"))
    branch = self.zones.dns_analytics.report
    setattr(branch, "bytime",
            self._add_with_auth(base, "zones", "dns_analytics/report/bytime"))

def zones_amp(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "amp",
            self._add_unused(base, "zones", "amp"))
    branch = self.zones.amp
    setattr(branch, "viewer",
            self._add_with_auth(base, "zones", "amp/viewer"))

def railguns(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "railguns",
            self._add_with_auth(base, "railguns"))
    branch = self.railguns
    setattr(branch, "zones",
            self._add_with_auth(base, "railguns", "zones"))

def organizations(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "organizations",
            self._add_with_auth(base, "organizations"))
    branch = self.organizations
    setattr(branch, "members",
            self._add_with_auth(base, "organizations", "members"))
    setattr(branch, "invite",
            self._add_with_auth(base, "organizations", "invite"))
    setattr(branch, "invites",
            self._add_with_auth(base, "organizations", "invites"))
    setattr(branch, "railguns",
            self._add_with_auth(base, "organizations", "railguns"))
    branch = self.organizations.railguns
    setattr(branch, "zones",
            self._add_with_auth(base, "organizations", "railguns", "zones"))
    branch = self.organizations
    setattr(branch, "roles",
            self._add_with_auth(base, "organizations", "roles"))
    setattr(branch, "firewall",
            self._add_unused(base, "organizations", "firewall"))
    branch = self.organizations.firewall
    setattr(branch, "access_rules",
            self._add_unused(base, "organizations", "firewall/access_rules"))
    branch = self.organizations.firewall.access_rules
    setattr(branch, "rules",
            self._add_with_auth(base, "organizations", "firewall/access_rules/rules"))
    branch = self.organizations
    setattr(branch, "load_balancers",
            self._add_with_auth(base, "organizations", "load_balancers"))
    branch = self.organizations.load_balancers
    setattr(branch, "monitors",
            self._add_with_auth(base, "organizations", "load_balancers/monitors"))
    setattr(branch, "pools",
            self._add_with_auth(base, "organizations", "load_balancers/pools"))

def certificates(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "certificates",
            self._add_with_cert_auth(base, "certificates"))

def ips(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    setattr(self, "ips",
            self._add_noauth(base, "ips"))

def zones_argo(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "argo",
            self._add_unused(base, "zones", "argo"))
    branch = self.zones.argo
    setattr(branch, "tiered_caching",
            self._add_with_auth(base, "zones", "argo/tiered_caching"))
    setattr(branch, "smart_routing",
            self._add_with_auth(base, "zones", "argo/smart_routing"))

def zones_dnssec(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "dnssec",
            self._add_with_auth(base, "zones", "dnssec"))

def zones_ssl(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "ssl",
            self._add_unused(base, "zones", "ssl"))
    branch = self.zones.ssl
    setattr(branch, "analyze",
            self._add_with_auth(base, "zones", "ssl/analyze"))
    setattr(branch, "certificate_packs",
            self._add_with_auth(base, "zones", "ssl/certificate_packs"))
    setattr(branch, "verification",
            self._add_with_auth(base, "zones", "ssl/verification"))

def zones_load_balancers(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.zones
    setattr(branch, "load_balancers",
            self._add_with_auth(base, "zones", "load_balancers"))

def user_load_balancers(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.user
    setattr(branch, "load_balancers",
            self._add_unused(base, "user/load_balancers"))
    branch = self.user.load_balancers
    setattr(branch, "monitors",
            self._add_with_auth(base, "user/load_balancers/monitors"))
    setattr(branch, "pools",
            self._add_with_auth(base, "user/load_balancers/pools"))

def user_virtual_dns(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.user
    setattr(branch, "virtual_dns",
            self._add_with_auth(base, "user/virtual_dns"))
    branch = self.user.virtual_dns
    setattr(branch, "dns_analytics",
            self._add_unused(base, "user/virtual_dns", "dns_analytics"))
    branch = self.user.virtual_dns.dns_analytics
    setattr(branch, "report",
            self._add_with_auth(base, "user/virtual_dns", "dns_analytics/report"))
    branch = self.user.virtual_dns.dns_analytics.report
    setattr(branch, "bytime",
            self._add_with_auth(base, "user/virtual_dns", "dns_analytics/report/bytime"))

def organizations_virtual_dns(self):
    """ API core commands for Cloudflare API"""

    base = self._base
    branch = self.organizations
    setattr(branch, "virtual_dns",
            self._add_with_auth(base, "organizations", "virtual_dns"))
    branch = self.organizations.virtual_dns
    setattr(branch, "dns_analytics",
            self._add_unused(base, "organizations", "virtual_dns", "dns_analytics"))
    branch = self.organizations.virtual_dns.dns_analytics
    setattr(branch, "report",
            self._add_with_auth(base, "organizations", "virtual_dns", "dns_analytics/report"))
    branch = self.organizations.virtual_dns.dns_analytics.report
    setattr(branch, "bytime",
            self._add_with_auth(base, "organizations", "virtual_dns", "dns_analytics/report/bytime"))
API core commands for Cloudflare API API core commands for Cloudflare API # The API commands for /user/ # The API commands for /zones/ # The API commands for /railguns/ # The API commands for /organizations/ # The API commands for /certificates/ # The API commands for /ips/ # The API commands for /zones/:zone_id/argo # The API commands for /zones/:zone_id/dnssec # The API commands for /zones/:zone_id/ssl # The API commands for CLB /zones/:zone_id/load_balancers & /user/load_balancers API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API # setattr(branch, "tlsadd_auth", #         self._add_with_auth(base, "zones", "settings/tlsadd_auth")) # setattr(branch, "trueadd_ip_header", #         self._add_with_auth(base, "zones", "settings/trueadd_ip_header")) API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API API core commands for Cloudflare API