From fc6ca90779cd230dc06445ba42e4c540da186ce0 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 18 Mar 2025 15:42:23 +1100
Subject: [PATCH] release: 4.1.0 (#2359)
---
.devcontainer/Dockerfile | 4 +-
.devcontainer/devcontainer.json | 3 +
.github/workflows/ci.yml | 8 +-
.github/workflows/publish-pypi.yml | 2 +-
.release-please-manifest.json | 2 +-
.stats.yml | 4 +-
CHANGELOG.md | 90 +
README.md | 36 +
SECURITY.md | 2 +-
api.md | 1835 +++++--
bin/publish-pypi | 3 -
mypy.ini | 2 +-
pyproject.toml | 9 +-
requirements-dev.lock | 8 +-
requirements.lock | 1 +
scripts/bootstrap | 2 +-
scripts/lint | 1 -
scripts/test | 2 +
scripts/utils/ruffen-docs.py | 4 +-
src/cloudflare/_base_client.py | 118 +-
src/cloudflare/_client.py | 238 +-
src/cloudflare/_constants.py | 2 +-
src/cloudflare/_files.py | 2 +-
src/cloudflare/_models.py | 17 +-
src/cloudflare/_response.py | 12 +-
src/cloudflare/_utils/_sync.py | 99 +-
src/cloudflare/_utils/_transform.py | 12 +-
src/cloudflare/_version.py | 2 +-
src/cloudflare/resources/abuse_reports.py | 2665 +++++++++-
src/cloudflare/resources/accounts/accounts.py | 4 +-
.../resources/accounts/logs/audit.py | 4 +-
.../resources/accounts/logs/logs.py | 4 +-
src/cloudflare/resources/accounts/members.py | 4 +-
src/cloudflare/resources/accounts/roles.py | 52 +-
.../resources/accounts/subscriptions.py | 39 +-
.../accounts/tokens/permission_groups.py | 102 +-
.../resources/accounts/tokens/tokens.py | 4 +-
.../resources/accounts/tokens/value.py | 4 +-
src/cloudflare/resources/acm/acm.py | 4 +-
src/cloudflare/resources/acm/total_tls.py | 4 +-
.../addressing/address_maps/accounts.py | 4 +-
.../addressing/address_maps/address_maps.py | 4 +-
.../resources/addressing/address_maps/ips.py | 4 +-
.../addressing/address_maps/zones.py | 4 +-
.../resources/addressing/addressing.py | 4 +-
.../resources/addressing/loa_documents.py | 4 +-
.../prefixes/advertisement_status.py | 4 +-
.../addressing/prefixes/bgp_prefixes.py | 4 +-
.../addressing/prefixes/delegations.py | 4 +-
.../resources/addressing/prefixes/prefixes.py | 4 +-
.../addressing/prefixes/service_bindings.py | 4 +-
.../regional_hostnames/regional_hostnames.py | 4 +-
.../addressing/regional_hostnames/regions.py | 4 +-
.../resources/addressing/services.py | 4 +-
src/cloudflare/resources/ai/ai.py | 64 +-
src/cloudflare/resources/ai/authors.py | 4 +-
.../resources/ai/finetunes/assets.py | 4 +-
.../resources/ai/finetunes/finetunes.py | 4 +-
.../resources/ai/finetunes/public.py | 4 +-
src/cloudflare/resources/ai/models/models.py | 4 +-
src/cloudflare/resources/ai/models/schema.py | 4 +-
src/cloudflare/resources/ai/tasks.py | 4 +-
.../resources/ai_gateway/__init__.py | 14 +
.../resources/ai_gateway/ai_gateway.py | 60 +-
.../resources/ai_gateway/datasets.py | 4 +-
.../resources/ai_gateway/evaluation_types.py | 60 +-
.../resources/ai_gateway/evaluations.py | 4 +-
src/cloudflare/resources/ai_gateway/logs.py | 4 +-
src/cloudflare/resources/ai_gateway/urls.py | 190 +
src/cloudflare/resources/alerting/alerting.py | 4 +-
.../resources/alerting/available_alerts.py | 4 +-
.../alerting/destinations/destinations.py | 4 +-
.../alerting/destinations/eligible.py | 4 +-
.../alerting/destinations/pagerduty.py | 37 +-
.../alerting/destinations/webhooks.py | 4 +-
src/cloudflare/resources/alerting/history.py | 4 +-
src/cloudflare/resources/alerting/policies.py | 16 +-
.../resources/api_gateway/api_gateway.py | 4 +-
.../resources/api_gateway/configurations.py | 4 +-
.../api_gateway/discovery/discovery.py | 4 +-
.../api_gateway/discovery/operations.py | 4 +-
.../expression_template.py | 4 +-
.../expression_template/fallthrough.py | 4 +-
.../api_gateway/operations/operations.py | 38 +-
.../operations/schema_validation.py | 4 +-
.../resources/api_gateway/schemas.py | 4 +-
.../api_gateway/settings/schema_validation.py | 4 +-
.../api_gateway/settings/settings.py | 4 +-
.../api_gateway/user_schemas/hosts.py | 4 +-
.../api_gateway/user_schemas/operations.py | 4 +-
.../api_gateway/user_schemas/user_schemas.py | 4 +-
src/cloudflare/resources/argo/argo.py | 4 +-
.../resources/argo/smart_routing.py | 4 +-
.../resources/argo/tiered_caching.py | 4 +-
src/cloudflare/resources/audit_logs.py | 4 +-
src/cloudflare/resources/billing/billing.py | 4 +-
src/cloudflare/resources/billing/profiles.py | 4 +-
src/cloudflare/resources/bot_management.py | 4 +-
src/cloudflare/resources/botnet_feed/asn.py | 4 +-
.../resources/botnet_feed/botnet_feed.py | 4 +-
.../resources/botnet_feed/configs/asn.py | 4 +-
.../resources/botnet_feed/configs/configs.py | 4 +-
src/cloudflare/resources/brand_protection.py | 4 +-
.../resources/browser_rendering/__init__.py | 89 +
.../browser_rendering/browser_rendering.py | 230 +
.../resources/browser_rendering/content.py | 442 ++
.../resources/browser_rendering/pdf.py | 448 ++
.../resources/browser_rendering/scrape.py | 442 ++
.../resources/browser_rendering/screenshot.py | 459 ++
.../resources/browser_rendering/snapshot.py | 450 ++
src/cloudflare/resources/cache/cache.py | 4 +-
.../resources/cache/cache_reserve.py | 4 +-
.../resources/cache/regional_tiered_cache.py | 4 +-
.../resources/cache/smart_tiered_cache.py | 4 +-
src/cloudflare/resources/cache/variants.py | 4 +-
src/cloudflare/resources/calls/calls.py | 4 +-
src/cloudflare/resources/calls/sfu.py | 4 +-
src/cloudflare/resources/calls/turn.py | 4 +-
.../certificate_authorities.py | 4 +-
.../hostname_associations.py | 4 +-
.../resources/client_certificates.py | 4 +-
.../cloud_connector/cloud_connector.py | 4 +-
.../resources/cloud_connector/rules.py | 48 +-
.../resources/cloudforce_one/__init__.py | 28 +
.../cloudforce_one/cloudforce_one.py | 68 +-
.../cloudforce_one/requests/assets.py | 67 +-
.../cloudforce_one/requests/message.py | 40 +-
.../cloudforce_one/requests/priority.py | 4 +-
.../cloudforce_one/requests/requests.py | 44 +-
.../cloudforce_one/scans/__init__.py | 47 +
.../resources/cloudforce_one/scans/config.py | 550 +++
.../resources/cloudforce_one/scans/results.py | 188 +
.../resources/cloudforce_one/scans/scans.py | 134 +
.../cloudforce_one/threat_events/__init__.py | 187 +
.../cloudforce_one/threat_events/attackers.py | 163 +
.../threat_events/categories.py | 568 +++
.../cloudforce_one/threat_events/countries.py | 163 +
.../cloudforce_one/threat_events/crons.py | 242 +
.../cloudforce_one/threat_events/datasets.py | 580 +++
.../threat_events/event_tags.py | 290 ++
.../threat_events/indicator_types.py | 163 +
.../cloudforce_one/threat_events/insights.py | 518 ++
.../cloudforce_one/threat_events/raw.py | 309 ++
.../cloudforce_one/threat_events/relate.py | 184 +
.../cloudforce_one/threat_events/tags.py | 172 +
.../threat_events/target_industries.py | 163 +
.../threat_events/threat_events.py | 1039 ++++
.../content_scanning/content_scanning.py | 4 +-
.../resources/content_scanning/payloads.py | 74 +-
.../resources/content_scanning/settings.py | 4 +-
.../custom_certificates.py | 4 +-
.../custom_certificates/prioritize.py | 51 +-
.../resources/custom_hostnames/__init__.py | 14 +
.../certificate_pack/__init__.py | 33 +
.../certificate_pack/certificate_pack.py | 102 +
.../certificate_pack/certificates.py | 372 ++
.../custom_hostnames/custom_hostnames.py | 56 +-
.../custom_hostnames/fallback_origin.py | 4 +-
.../resources/custom_nameservers.py | 98 +-
src/cloudflare/resources/custom_pages.py | 504 ++
src/cloudflare/resources/d1/d1.py | 4 +-
src/cloudflare/resources/d1/database.py | 108 +-
src/cloudflare/resources/dcv_delegation.py | 4 +-
.../resources/diagnostics/diagnostics.py | 4 +-
.../resources/diagnostics/traceroutes.py | 49 +-
.../resources/dns/analytics/analytics.py | 4 +-
.../dns/analytics/reports/bytimes.py | 4 +-
.../dns/analytics/reports/reports.py | 4 +-
src/cloudflare/resources/dns/dns.py | 4 +-
src/cloudflare/resources/dns/dnssec.py | 4 +-
src/cloudflare/resources/dns/records.py | 4 +-
.../resources/dns/settings/__init__.py | 40 +-
.../dns/settings/account/__init__.py | 33 +
.../resources/dns/settings/account/account.py | 310 ++
.../dns/settings/{ => account}/views.py | 32 +-
.../resources/dns/settings/settings.py | 324 +-
src/cloudflare/resources/dns/settings/zone.py | 365 ++
.../resources/dns/zone_transfers/acls.py | 4 +-
.../dns/zone_transfers/force_axfr.py | 4 +-
.../resources/dns/zone_transfers/incoming.py | 4 +-
.../dns/zone_transfers/outgoing/outgoing.py | 4 +-
.../dns/zone_transfers/outgoing/status.py | 4 +-
.../resources/dns/zone_transfers/peers.py | 4 +-
.../resources/dns/zone_transfers/tsigs.py | 4 +-
.../dns/zone_transfers/zone_transfers.py | 4 +-
.../dns_firewall/analytics/analytics.py | 4 +-
.../dns_firewall/analytics/reports/bytimes.py | 4 +-
.../dns_firewall/analytics/reports/reports.py | 4 +-
.../resources/dns_firewall/dns_firewall.py | 4 +-
.../resources/dns_firewall/reverse_dns.py | 4 +-
.../durable_objects/durable_objects.py | 4 +-
.../durable_objects/namespaces/namespaces.py | 4 +-
.../durable_objects/namespaces/objects.py | 4 +-
.../resources/email_routing/addresses.py | 4 +-
src/cloudflare/resources/email_routing/dns.py | 45 +-
.../resources/email_routing/email_routing.py | 4 +-
.../email_routing/rules/catch_alls.py | 4 +-
.../resources/email_routing/rules/rules.py | 4 +-
.../email_security/email_security.py | 4 +-
.../email_security/investigate/detections.py | 4 +-
.../email_security/investigate/investigate.py | 8 +-
.../email_security/investigate/move.py | 79 +-
.../email_security/investigate/preview.py | 4 +-
.../email_security/investigate/raw.py | 4 +-
.../email_security/investigate/reclassify.py | 4 +-
.../email_security/investigate/release.py | 47 +-
.../email_security/investigate/trace.py | 4 +-
.../email_security/settings/allow_policies.py | 4 +-
.../email_security/settings/block_senders.py | 4 +-
.../email_security/settings/domains.py | 44 +-
.../settings/impersonation_registry.py | 4 +-
.../email_security/settings/settings.py | 4 +-
.../settings/trusted_domains.py | 4 +-
.../resources/email_security/submissions.py | 4 +-
src/cloudflare/resources/filters.py | 103 +-
.../resources/firewall/access_rules.py | 4 +-
src/cloudflare/resources/firewall/firewall.py | 4 +-
.../resources/firewall/lockdowns.py | 4 +-
src/cloudflare/resources/firewall/rules.py | 178 +-
src/cloudflare/resources/firewall/ua_rules.py | 4 +-
.../resources/firewall/waf/overrides.py | 4 +-
.../resources/firewall/waf/packages/groups.py | 4 +-
.../firewall/waf/packages/packages.py | 4 +-
.../resources/firewall/waf/packages/rules.py | 4 +-
src/cloudflare/resources/firewall/waf/waf.py | 4 +-
.../resources/healthchecks/healthchecks.py | 4 +-
.../resources/healthchecks/previews.py | 4 +-
.../resources/hostnames/hostnames.py | 4 +-
.../resources/hostnames/settings/settings.py | 4 +-
.../resources/hostnames/settings/tls.py | 35 +-
.../resources/hyperdrive/configs.py | 4 +-
.../resources/hyperdrive/hyperdrive.py | 4 +-
src/cloudflare/resources/iam/iam.py | 4 +-
.../resources/iam/permission_groups.py | 17 +-
.../resources/iam/resource_groups.py | 17 +-
src/cloudflare/resources/images/images.py | 4 +-
src/cloudflare/resources/images/v1/blobs.py | 4 +-
src/cloudflare/resources/images/v1/keys.py | 4 +-
src/cloudflare/resources/images/v1/stats.py | 4 +-
src/cloudflare/resources/images/v1/v1.py | 4 +-
.../resources/images/v1/variants.py | 4 +-
.../resources/images/v2/direct_uploads.py | 4 +-
src/cloudflare/resources/images/v2/v2.py | 4 +-
src/cloudflare/resources/intel/asn/asn.py | 4 +-
src/cloudflare/resources/intel/asn/subnets.py | 4 +-
.../attack_surface_report.py | 4 +-
.../attack_surface_report/issue_types.py | 38 +-
.../intel/attack_surface_report/issues.py | 4 +-
src/cloudflare/resources/intel/dns.py | 4 +-
.../resources/intel/domain_history.py | 4 +-
.../resources/intel/domains/bulks.py | 4 +-
.../resources/intel/domains/domains.py | 4 +-
.../intel/indicator_feeds/downloads.py | 4 +-
.../intel/indicator_feeds/indicator_feeds.py | 4 +-
.../intel/indicator_feeds/permissions.py | 4 +-
.../intel/indicator_feeds/snapshots.py | 4 +-
src/cloudflare/resources/intel/intel.py | 4 +-
src/cloudflare/resources/intel/ip_lists.py | 40 +-
src/cloudflare/resources/intel/ips.py | 4 +-
.../resources/intel/miscategorizations.py | 4 +-
src/cloudflare/resources/intel/sinkholes.py | 4 +-
src/cloudflare/resources/intel/whois.py | 4 +-
src/cloudflare/resources/ips.py | 4 +-
.../resources/keyless_certificates.py | 4 +-
src/cloudflare/resources/kv/kv.py | 4 +-
.../resources/kv/namespaces/analytics.py | 4 +-
.../resources/kv/namespaces/keys.py | 4 +-
.../resources/kv/namespaces/metadata.py | 4 +-
.../resources/kv/namespaces/namespaces.py | 4 +-
.../resources/kv/namespaces/values.py | 4 +-
.../leaked_credential_checks/detections.py | 4 +-
.../leaked_credential_checks.py | 4 +-
.../load_balancers/load_balancers.py | 4 +-
.../load_balancers/monitors/monitors.py | 4 +-
.../load_balancers/monitors/previews.py | 4 +-
.../load_balancers/monitors/references.py | 38 +-
.../resources/load_balancers/pools/health.py | 4 +-
.../resources/load_balancers/pools/pools.py | 39 +-
.../load_balancers/pools/references.py | 38 +-
.../resources/load_balancers/previews.py | 4 +-
.../resources/load_balancers/regions.py | 4 +-
.../resources/load_balancers/searches.py | 65 +-
.../resources/logpush/datasets/datasets.py | 4 +-
.../resources/logpush/datasets/fields.py | 4 +-
.../resources/logpush/datasets/jobs.py | 40 +-
src/cloudflare/resources/logpush/edge.py | 36 +-
src/cloudflare/resources/logpush/jobs.py | 4 +-
src/cloudflare/resources/logpush/logpush.py | 4 +-
src/cloudflare/resources/logpush/ownership.py | 4 +-
src/cloudflare/resources/logpush/validate.py | 157 +-
.../resources/logs/control/cmb/cmb.py | 4 +-
.../resources/logs/control/cmb/config.py | 4 +-
.../resources/logs/control/control.py | 4 +-
.../resources/logs/control/retention.py | 4 +-
src/cloudflare/resources/logs/logs.py | 4 +-
src/cloudflare/resources/logs/rayid.py | 4 +-
.../resources/logs/received/fields.py | 4 +-
.../resources/logs/received/received.py | 4 +-
.../magic_cloud_networking/__init__.py | 75 +
.../catalog_syncs/__init__.py | 33 +
.../catalog_syncs/catalog_syncs.py | 861 ++++
.../catalog_syncs/prebuilt_policies.py | 188 +
.../cloud_integrations.py | 1067 ++++
.../magic_cloud_networking.py | 198 +
.../on_ramps/__init__.py | 33 +
.../on_ramps/address_spaces.py | 363 ++
.../on_ramps/on_ramps.py | 1184 +++++
.../magic_cloud_networking/resources.py | 834 ++++
.../magic_network_monitoring/__init__.py | 14 +
.../configs/configs.py | 4 +-
.../magic_network_monitoring/configs/full.py | 4 +-
.../magic_network_monitoring.py | 36 +-
.../rules/advertisements.py | 4 +-
.../magic_network_monitoring/rules/rules.py | 41 +-
.../vpc_flows/__init__.py | 33 +
.../vpc_flows/tokens.py | 174 +
.../vpc_flows/vpc_flows.py | 102 +
.../resources/magic_transit/apps.py | 4 +-
.../magic_transit/cf_interconnects.py | 4 +-
.../magic_transit/connectors/__init__.py | 47 +
.../{ => connectors}/connectors.py | 110 +-
.../magic_transit/connectors/events.py | 300 ++
.../magic_transit/connectors/snapshots.py | 298 ++
.../resources/magic_transit/gre_tunnels.py | 4 +-
.../resources/magic_transit/ipsec_tunnels.py | 4 +-
.../resources/magic_transit/magic_transit.py | 20 +-
.../resources/magic_transit/pcaps/download.py | 4 +-
.../magic_transit/pcaps/ownership.py | 38 +-
.../resources/magic_transit/pcaps/pcaps.py | 19 +-
.../resources/magic_transit/routes.py | 4 +-
.../resources/magic_transit/sites/acls.py | 40 +-
.../resources/magic_transit/sites/lans.py | 37 +-
.../resources/magic_transit/sites/sites.py | 24 +-
.../resources/magic_transit/sites/wans.py | 37 +-
.../resources/managed_transforms.py | 4 +-
src/cloudflare/resources/memberships.py | 4 +-
.../mtls_certificates/associations.py | 40 +-
.../mtls_certificates/mtls_certificates.py | 4 +-
.../network_interconnects/__init__.py | 75 +
.../resources/network_interconnects/cnis.py | 645 +++
.../network_interconnects/interconnects.py | 837 ++++
.../network_interconnects.py | 198 +
.../network_interconnects/settings.py | 253 +
.../resources/network_interconnects/slots.py | 319 ++
.../resources/origin_ca_certificates.py | 8 +-
.../origin_post_quantum_encryption.py | 4 +-
.../hostnames/certificates.py | 4 +-
.../hostnames/hostnames.py | 44 +-
.../origin_tls_client_auth.py | 4 +-
.../origin_tls_client_auth/settings.py | 4 +-
src/cloudflare/resources/page_rules.py | 4 +-
.../resources/page_shield/connections.py | 4 +-
.../resources/page_shield/cookies.py | 4 +-
.../resources/page_shield/page_shield.py | 4 +-
.../resources/page_shield/policies.py | 4 +-
.../resources/page_shield/scripts.py | 4 +-
src/cloudflare/resources/pages/pages.py | 4 +-
.../pages/projects/deployments/deployments.py | 4 +-
.../projects/deployments/history/history.py | 4 +-
.../projects/deployments/history/logs.py | 4 +-
.../resources/pages/projects/domains.py | 4 +-
.../resources/pages/projects/projects.py | 4 +-
src/cloudflare/resources/queues/consumers.py | 38 +-
src/cloudflare/resources/queues/messages.py | 39 +-
src/cloudflare/resources/queues/queues.py | 4 +-
.../resources/r2/buckets/__init__.py | 28 +
.../resources/r2/buckets/buckets.py | 76 +-
src/cloudflare/resources/r2/buckets/cors.py | 4 +-
.../resources/r2/buckets/domains/custom.py | 64 +-
.../resources/r2/buckets/domains/domains.py | 4 +-
.../resources/r2/buckets/domains/managed.py | 4 +-
.../r2/buckets/event_notifications.py | 472 ++
.../buckets/event_notifications/__init__.py | 33 -
.../configuration/__init__.py | 33 -
.../configuration/configuration.py | 236 -
.../event_notifications.py | 102 -
.../resources/r2/buckets/lifecycle.py | 4 +-
.../configuration/queues.py => locks.py} | 175 +-
.../resources/r2/buckets/metrics.py | 182 +
src/cloudflare/resources/r2/buckets/sippy.py | 4 +-
src/cloudflare/resources/r2/r2.py | 4 +-
.../resources/r2/temporary_credentials.py | 4 +-
src/cloudflare/resources/radar/__init__.py | 28 +
src/cloudflare/resources/radar/ai/__init__.py | 14 +
src/cloudflare/resources/radar/ai/ai.py | 36 +-
.../resources/radar/ai/bots/bots.py | 4 +-
.../resources/radar/ai/bots/summary.py | 82 +-
.../resources/radar/ai/inference/__init__.py | 47 +
.../resources/radar/ai/inference/inference.py | 134 +
.../resources/radar/ai/inference/summary.py | 392 ++
.../inference/timeseries_groups/__init__.py | 33 +
.../ai/inference/timeseries_groups/summary.py | 416 ++
.../timeseries_groups/timeseries_groups.py | 102 +
.../resources/radar/ai/timeseries_groups.py | 80 +-
.../radar/annotations/annotations.py | 28 +-
.../resources/radar/annotations/outages.py | 40 +-
src/cloudflare/resources/radar/as112/as112.py | 320 +-
.../resources/radar/as112/summary.py | 1668 ++++++-
.../radar/as112/timeseries_groups.py | 1674 ++++++-
src/cloudflare/resources/radar/as112/top.py | 300 +-
.../resources/radar/attacks/attacks.py | 4 +-
.../resources/radar/attacks/layer3/layer3.py | 72 +-
.../resources/radar/attacks/layer3/summary.py | 466 +-
.../radar/attacks/layer3/timeseries_groups.py | 614 +--
.../radar/attacks/layer3/top/locations.py | 124 +-
.../resources/radar/attacks/layer3/top/top.py | 214 +-
.../resources/radar/attacks/layer7/layer7.py | 106 +-
.../resources/radar/attacks/layer7/summary.py | 580 +--
.../radar/attacks/layer7/timeseries_groups.py | 768 ++-
.../radar/attacks/layer7/top/ases.py | 80 +-
.../radar/attacks/layer7/top/locations.py | 264 +-
.../resources/radar/attacks/layer7/top/top.py | 378 +-
src/cloudflare/resources/radar/bgp/bgp.py | 54 +-
.../resources/radar/bgp/hijacks/events.py | 62 +-
.../resources/radar/bgp/hijacks/hijacks.py | 4 +-
src/cloudflare/resources/radar/bgp/ips.py | 60 +-
.../resources/radar/bgp/leaks/events.py | 44 +-
.../resources/radar/bgp/leaks/leaks.py | 4 +-
src/cloudflare/resources/radar/bgp/routes.py | 80 +-
.../resources/radar/bgp/top/ases.py | 70 +-
src/cloudflare/resources/radar/bgp/top/top.py | 56 +-
src/cloudflare/resources/radar/datasets.py | 63 +-
.../resources/radar/dns/__init__.py | 28 +
src/cloudflare/resources/radar/dns/dns.py | 541 +-
src/cloudflare/resources/radar/dns/summary.py | 4259 ++++++++++++++++
.../resources/radar/dns/timeseries_groups.py | 4383 +++++++++++++++++
src/cloudflare/resources/radar/dns/top.py | 172 +-
src/cloudflare/resources/radar/email/email.py | 4 +-
.../resources/radar/email/routing/routing.py | 4 +-
.../resources/radar/email/routing/summary.py | 312 +-
.../radar/email/routing/timeseries_groups.py | 312 +-
.../radar/email/security/security.py | 4 +-
.../resources/radar/email/security/summary.py | 448 +-
.../radar/email/security/timeseries_groups.py | 450 +-
.../email/security/top/tlds/malicious.py | 66 +-
.../radar/email/security/top/tlds/spam.py | 66 +-
.../radar/email/security/top/tlds/spoof.py | 66 +-
.../radar/email/security/top/tlds/tlds.py | 70 +-
.../resources/radar/email/security/top/top.py | 4 +-
.../resources/radar/entities/asns.py | 96 +-
.../resources/radar/entities/entities.py | 12 +-
.../resources/radar/entities/locations.py | 48 +-
.../resources/radar/http/ases/ases.py | 112 +-
.../resources/radar/http/ases/bot_class.py | 116 +-
.../radar/http/ases/browser_family.py | 104 +-
.../resources/radar/http/ases/device_type.py | 104 +-
.../resources/radar/http/ases/http_method.py | 104 +-
.../radar/http/ases/http_protocol.py | 112 +-
.../resources/radar/http/ases/ip_version.py | 104 +-
.../resources/radar/http/ases/os.py | 104 +-
.../resources/radar/http/ases/tls_version.py | 104 +-
src/cloudflare/resources/radar/http/http.py | 104 +-
.../radar/http/locations/bot_class.py | 118 +-
.../radar/http/locations/browser_family.py | 108 +-
.../radar/http/locations/device_type.py | 108 +-
.../radar/http/locations/http_method.py | 108 +-
.../radar/http/locations/http_protocol.py | 116 +-
.../radar/http/locations/ip_version.py | 108 +-
.../radar/http/locations/locations.py | 112 +-
.../resources/radar/http/locations/os.py | 104 +-
.../radar/http/locations/tls_version.py | 104 +-
.../resources/radar/http/summary.py | 800 +--
.../resources/radar/http/timeseries_groups.py | 1020 ++--
src/cloudflare/resources/radar/http/top.py | 224 +-
.../radar/leaked_credentials/__init__.py | 47 +
.../leaked_credentials/leaked_credentials.py | 134 +
.../radar/leaked_credentials/summary.py | 384 ++
.../leaked_credentials/timeseries_groups.py | 410 ++
.../resources/radar/netflows/netflows.py | 148 +-
.../resources/radar/netflows/top.py | 144 +-
src/cloudflare/resources/radar/quality/iqi.py | 152 +-
.../resources/radar/quality/quality.py | 4 +-
.../resources/radar/quality/speed/speed.py | 112 +-
.../resources/radar/quality/speed/top.py | 124 +-
src/cloudflare/resources/radar/radar.py | 68 +-
.../resources/radar/ranking/__init__.py | 14 +
.../resources/radar/ranking/domain.py | 44 +-
.../radar/ranking/internet_services.py | 507 ++
.../resources/radar/ranking/ranking.py | 146 +-
.../resources/radar/robots_txt/__init__.py | 33 +
.../resources/radar/robots_txt/robots_txt.py | 102 +
.../radar/robots_txt/top/__init__.py | 33 +
.../resources/radar/robots_txt/top/top.py | 257 +
.../radar/robots_txt/top/user_agents.py | 241 +
src/cloudflare/resources/radar/search.py | 20 +-
.../resources/radar/tcp_resets_timeouts.py | 140 +-
.../radar/traffic_anomalies/locations.py | 24 +-
.../traffic_anomalies/traffic_anomalies.py | 42 +-
.../resources/radar/verified_bots/top.py | 144 +-
.../radar/verified_bots/verified_bots.py | 4 +-
src/cloudflare/resources/rate_limits.py | 4 +-
src/cloudflare/resources/registrar/domains.py | 4 +-
.../resources/registrar/registrar.py | 4 +-
.../request_tracers/request_tracers.py | 4 +-
.../resources/request_tracers/traces.py | 4 +-
.../resources/resource_sharing/recipients.py | 4 +-
.../resource_sharing/resource_sharing.py | 4 +-
.../resources/resource_sharing/resources.py | 4 +-
.../resources/rules/lists/bulk_operations.py | 4 +-
src/cloudflare/resources/rules/lists/items.py | 4 +-
src/cloudflare/resources/rules/lists/lists.py | 4 +-
src/cloudflare/resources/rules/rules.py | 4 +-
.../resources/rulesets/phases/phases.py | 20 +-
.../resources/rulesets/phases/versions.py | 4 +-
src/cloudflare/resources/rulesets/rules.py | 4 +-
src/cloudflare/resources/rulesets/rulesets.py | 84 +-
src/cloudflare/resources/rulesets/versions.py | 4 +-
src/cloudflare/resources/rum/rules.py | 4 +-
src/cloudflare/resources/rum/rum.py | 4 +-
src/cloudflare/resources/rum/site_info.py | 24 +-
.../resources/security_center/__init__.py | 33 +
.../security_center/insights/__init__.py | 61 +
.../security_center/insights/class_.py | 265 +
.../security_center/insights/insights.py | 496 ++
.../security_center/insights/severity.py | 265 +
.../security_center/insights/type.py | 265 +
.../security_center/security_center.py | 102 +
src/cloudflare/resources/security_txt.py | 4 +-
src/cloudflare/resources/snippets/content.py | 4 +-
src/cloudflare/resources/snippets/rules.py | 44 +-
src/cloudflare/resources/snippets/snippets.py | 4 +-
.../analytics/aggregates/aggregates.py | 4 +-
.../spectrum/analytics/aggregates/currents.py | 4 +-
.../resources/spectrum/analytics/analytics.py | 4 +-
.../spectrum/analytics/events/bytimes.py | 4 +-
.../spectrum/analytics/events/events.py | 4 +-
.../spectrum/analytics/events/summaries.py | 4 +-
src/cloudflare/resources/spectrum/apps.py | 4 +-
src/cloudflare/resources/spectrum/spectrum.py | 4 +-
.../resources/speed/availabilities.py | 4 +-
src/cloudflare/resources/speed/pages/pages.py | 4 +-
src/cloudflare/resources/speed/pages/tests.py | 4 +-
src/cloudflare/resources/speed/schedule.py | 4 +-
src/cloudflare/resources/speed/speed.py | 4 +-
src/cloudflare/resources/ssl/analyze.py | 4 +-
.../certificate_packs/certificate_packs.py | 4 +-
.../resources/ssl/certificate_packs/quota.py | 4 +-
.../resources/ssl/recommendations.py | 24 +-
src/cloudflare/resources/ssl/ssl.py | 4 +-
.../resources/ssl/universal/settings.py | 4 +-
.../resources/ssl/universal/universal.py | 4 +-
src/cloudflare/resources/ssl/verification.py | 4 +-
.../resources/stream/audio_tracks.py | 36 +-
.../resources/stream/captions/captions.py | 40 +-
.../stream/captions/language/language.py | 4 +-
.../resources/stream/captions/language/vtt.py | 4 +-
src/cloudflare/resources/stream/clip.py | 4 +-
src/cloudflare/resources/stream/copy.py | 4 +-
.../resources/stream/direct_upload.py | 4 +-
src/cloudflare/resources/stream/downloads.py | 4 +-
src/cloudflare/resources/stream/embed.py | 4 +-
src/cloudflare/resources/stream/keys.py | 35 +-
.../stream/live_inputs/live_inputs.py | 4 +-
.../resources/stream/live_inputs/outputs.py | 4 +-
src/cloudflare/resources/stream/stream.py | 26 +-
src/cloudflare/resources/stream/token.py | 4 +-
src/cloudflare/resources/stream/videos.py | 4 +-
src/cloudflare/resources/stream/watermarks.py | 4 +-
src/cloudflare/resources/stream/webhooks.py | 4 +-
.../resources/turnstile/turnstile.py | 4 +-
src/cloudflare/resources/turnstile/widgets.py | 4 +-
src/cloudflare/resources/url_normalization.py | 4 +-
.../resources/url_scanner/responses.py | 12 +-
src/cloudflare/resources/url_scanner/scans.py | 36 +-
.../resources/url_scanner/url_scanner.py | 4 +-
src/cloudflare/resources/user/audit_logs.py | 4 +-
.../resources/user/billing/billing.py | 4 +-
.../resources/user/billing/history.py | 4 +-
.../resources/user/billing/profile.py | 4 +-
src/cloudflare/resources/user/invites.py | 4 +-
.../resources/user/organizations.py | 4 +-
.../resources/user/subscriptions.py | 39 +-
.../user/tokens/permission_groups.py | 17 +-
.../resources/user/tokens/tokens.py | 4 +-
src/cloudflare/resources/user/tokens/value.py | 4 +-
src/cloudflare/resources/user/user.py | 4 +-
.../resources/vectorize/indexes/indexes.py | 14 +-
.../vectorize/indexes/metadata_index.py | 4 +-
.../resources/vectorize/vectorize.py | 4 +-
.../resources/waiting_rooms/events/details.py | 4 +-
.../resources/waiting_rooms/events/events.py | 4 +-
.../resources/waiting_rooms/page.py | 4 +-
.../resources/waiting_rooms/rules.py | 175 +-
.../resources/waiting_rooms/settings.py | 4 +-
.../resources/waiting_rooms/statuses.py | 6 +-
.../resources/waiting_rooms/waiting_rooms.py | 54 +-
.../resources/web3/hostnames/hostnames.py | 4 +-
.../content_lists/content_lists.py | 4 +-
.../content_lists/entries.py | 4 +-
.../ipfs_universal_paths.py | 4 +-
src/cloudflare/resources/web3/web3.py | 4 +-
.../resources/workers/account_settings.py | 4 +-
.../resources/workers/assets/assets.py | 4 +-
.../resources/workers/assets/upload.py | 4 +-
src/cloudflare/resources/workers/domains.py | 4 +-
src/cloudflare/resources/workers/routes.py | 4 +-
.../resources/workers/scripts/__init__.py | 14 +
.../workers/scripts/assets/assets.py | 4 +-
.../workers/scripts/assets/upload.py | 4 +-
.../resources/workers/scripts/content.py | 4 +-
.../resources/workers/scripts/deployments.py | 4 +-
.../resources/workers/scripts/schedules.py | 4 +-
.../resources/workers/scripts/scripts.py | 36 +-
.../resources/workers/scripts/secrets.py | 547 ++
.../resources/workers/scripts/settings.py | 4 +-
.../resources/workers/scripts/subdomain.py | 4 +-
.../resources/workers/scripts/tail.py | 4 +-
.../resources/workers/scripts/versions.py | 4 +-
.../resources/workers/subdomains.py | 4 +-
src/cloudflare/resources/workers/workers.py | 4 +-
.../dispatch/dispatch.py | 4 +-
.../dispatch/namespaces/namespaces.py | 4 +-
.../namespaces/scripts/asset_upload.py | 4 +-
.../dispatch/namespaces/scripts/bindings.py | 38 +-
.../dispatch/namespaces/scripts/content.py | 4 +-
.../dispatch/namespaces/scripts/scripts.py | 4 +-
.../dispatch/namespaces/scripts/secrets.py | 138 +-
.../dispatch/namespaces/scripts/settings.py | 4 +-
.../dispatch/namespaces/scripts/tags.py | 41 +-
.../workers_for_platforms.py | 4 +-
.../workflows/instances/instances.py | 103 +-
.../resources/workflows/instances/status.py | 4 +-
.../resources/workflows/versions.py | 4 +-
.../resources/workflows/workflows.py | 4 +-
src/cloudflare/resources/zaraz/__init__.py | 103 +
src/cloudflare/resources/zaraz/config.py | 377 ++
src/cloudflare/resources/zaraz/default.py | 178 +
src/cloudflare/resources/zaraz/export.py | 169 +
.../resources/zaraz/history/__init__.py | 33 +
.../resources/zaraz/history/configs.py | 191 +
.../resources/zaraz/history/history.py | 358 ++
src/cloudflare/resources/zaraz/publish.py | 191 +
src/cloudflare/resources/zaraz/workflow.py | 178 +
src/cloudflare/resources/zaraz/zaraz.py | 383 ++
.../resources/zero_trust/access/access.py | 4 +-
.../access/applications/applications.py | 538 +-
.../zero_trust/access/applications/cas.py | 4 +-
.../access/applications/policies.py | 4 +-
.../applications/policy_tests/policy_tests.py | 185 +-
.../access/applications/policy_tests/users.py | 45 +-
.../access/applications/user_policy_checks.py | 4 +-
.../resources/zero_trust/access/bookmarks.py | 4 +-
.../access/certificates/certificates.py | 4 +-
.../access/certificates/settings.py | 78 +-
.../zero_trust/access/custom_pages.py | 4 +-
.../resources/zero_trust/access/gateway_ca.py | 4 +-
.../resources/zero_trust/access/groups.py | 59 +-
.../access/infrastructure/infrastructure.py | 4 +-
.../access/infrastructure/targets.py | 74 +-
.../resources/zero_trust/access/keys.py | 4 +-
.../zero_trust/access/logs/__init__.py | 14 +
.../zero_trust/access/logs/access_requests.py | 4 +-
.../resources/zero_trust/access/logs/logs.py | 36 +-
.../zero_trust/access/logs/scim/__init__.py | 33 +
.../zero_trust/access/logs/scim/scim.py | 102 +
.../zero_trust/access/logs/scim/updates.py | 292 ++
.../resources/zero_trust/access/policies.py | 6 +-
.../zero_trust/access/service_tokens.py | 4 +-
.../resources/zero_trust/access/tags.py | 4 +-
.../access/users/active_sessions.py | 4 +-
.../zero_trust/access/users/failed_logins.py | 4 +-
.../access/users/last_seen_identity.py | 4 +-
.../zero_trust/access/users/users.py | 18 +-
.../zero_trust/connectivity_settings.py | 4 +-
.../resources/zero_trust/devices/devices.py | 4 +-
.../resources/zero_trust/devices/dex_tests.py | 4 +-
.../zero_trust/devices/fleet_status.py | 4 +-
.../resources/zero_trust/devices/networks.py | 35 +-
.../zero_trust/devices/override_codes.py | 4 +-
.../devices/policies/custom/custom.py | 106 +-
.../devices/policies/custom/excludes.py | 78 +-
.../policies/custom/fallback_domains.py | 78 +-
.../devices/policies/custom/includes.py | 78 +-
.../devices/policies/default/certificates.py | 4 +-
.../devices/policies/default/default.py | 41 +-
.../devices/policies/default/excludes.py | 78 +-
.../policies/default/fallback_domains.py | 78 +-
.../devices/policies/default/includes.py | 78 +-
.../zero_trust/devices/policies/policies.py | 4 +-
.../devices/posture/integrations.py | 4 +-
.../zero_trust/devices/posture/posture.py | 4 +-
.../resources/zero_trust/devices/revoke.py | 4 +-
.../resources/zero_trust/devices/settings.py | 4 +-
.../resources/zero_trust/devices/unrevoke.py | 4 +-
.../resources/zero_trust/dex/colos.py | 4 +-
.../zero_trust/dex/commands/__init__.py | 14 -
.../zero_trust/dex/commands/commands.py | 36 +-
.../zero_trust/dex/commands/devices.py | 4 +-
.../zero_trust/dex/commands/downloads.py | 4 +-
.../zero_trust/dex/commands/quota.py | 4 +-
.../resources/zero_trust/dex/dex.py | 4 +-
.../zero_trust/dex/fleet_status/devices.py | 4 +-
.../dex/fleet_status/fleet_status.py | 4 +-
.../zero_trust/dex/http_tests/http_tests.py | 4 +-
.../zero_trust/dex/http_tests/percentiles.py | 4 +-
.../resources/zero_trust/dex/tests/tests.py | 4 +-
.../zero_trust/dex/tests/unique_devices.py | 4 +-
.../traceroute_test_results/network_path.py | 4 +-
.../traceroute_test_results.py | 4 +-
.../zero_trust/dex/traceroute_tests.py | 4 +-
.../zero_trust/dlp/datasets/datasets.py | 4 +-
.../zero_trust/dlp/datasets/upload.py | 10 +-
.../dlp/datasets/versions/entries.py | 10 +-
.../dlp/datasets/versions/versions.py | 47 +-
.../resources/zero_trust/dlp/dlp.py | 4 +-
.../zero_trust/dlp/email/account_mapping.py | 4 +-
.../resources/zero_trust/dlp/email/email.py | 4 +-
.../resources/zero_trust/dlp/email/rules.py | 4 +-
.../resources/zero_trust/dlp/entries.py | 4 +-
.../resources/zero_trust/dlp/limits.py | 4 +-
.../resources/zero_trust/dlp/patterns.py | 4 +-
.../resources/zero_trust/dlp/payload_logs.py | 4 +-
.../zero_trust/dlp/profiles/custom.py | 14 +-
.../zero_trust/dlp/profiles/predefined.py | 8 +-
.../zero_trust/dlp/profiles/profiles.py | 4 +-
.../resources/zero_trust/gateway/app_types.py | 4 +-
.../zero_trust/gateway/audit_ssh_settings.py | 4 +-
.../zero_trust/gateway/categories.py | 4 +-
.../zero_trust/gateway/certificates.py | 4 +-
.../gateway/configurations/configurations.py | 4 +-
.../configurations/custom_certificate.py | 4 +-
.../resources/zero_trust/gateway/gateway.py | 4 +-
.../zero_trust/gateway/lists/items.py | 4 +-
.../zero_trust/gateway/lists/lists.py | 4 +-
.../resources/zero_trust/gateway/locations.py | 4 +-
.../resources/zero_trust/gateway/logging.py | 4 +-
.../zero_trust/gateway/proxy_endpoints.py | 36 +-
.../resources/zero_trust/gateway/rules.py | 4 +-
.../zero_trust/identity_providers/__init__.py | 33 +
.../identity_providers.py | 66 +-
.../identity_providers/scim/__init__.py | 47 +
.../identity_providers/scim/groups.py | 232 +
.../identity_providers/scim/scim.py | 134 +
.../scim}/users.py | 123 +-
.../resources/zero_trust/networks/__init__.py | 14 +
.../resources/zero_trust/networks/networks.py | 36 +-
.../zero_trust/networks/routes/ips.py | 30 +-
.../zero_trust/networks/routes/networks.py | 10 +-
.../zero_trust/networks/routes/routes.py | 30 +-
.../zero_trust/networks/subnets/__init__.py | 33 +
.../networks/subnets/cloudflare_source.py | 228 +
.../zero_trust/networks/subnets/subnets.py | 318 ++
.../zero_trust/networks/virtual_networks.py | 4 +-
.../resources/zero_trust/organizations/doh.py | 4 +-
.../zero_trust/organizations/organizations.py | 4 +-
.../zero_trust/risk_scoring/behaviours.py | 4 +-
.../risk_scoring/integrations/integrations.py | 4 +-
.../risk_scoring/integrations/references.py | 4 +-
.../zero_trust/risk_scoring/risk_scoring.py | 4 +-
.../zero_trust/risk_scoring/summary.py | 4 +-
src/cloudflare/resources/zero_trust/seats.py | 49 +-
.../resources/zero_trust/tunnels/__init__.py | 82 +-
.../tunnels/cloudflared/__init__.py | 89 +
.../tunnels/cloudflared/cloudflared.py | 940 ++++
.../{ => cloudflared}/configurations.py | 24 +-
.../tunnels/{ => cloudflared}/connections.py | 51 +-
.../tunnels/{ => cloudflared}/connectors.py | 18 +-
.../tunnels/{ => cloudflared}/management.py | 22 +-
.../tunnels/{ => cloudflared}/token.py | 18 +-
.../resources/zero_trust/tunnels/tunnels.py | 744 +--
.../tunnels/warp_connector/__init__.py | 33 +
.../tunnels/warp_connector/token.py | 190 +
.../{ => warp_connector}/warp_connector.py | 181 +-
.../resources/zero_trust/zero_trust.py | 20 +-
.../resources/zones/activation_check.py | 4 +-
.../resources/zones/custom_nameservers.py | 107 +-
src/cloudflare/resources/zones/holds.py | 4 +-
src/cloudflare/resources/zones/plans.py | 4 +-
src/cloudflare/resources/zones/rate_plans.py | 38 +-
src/cloudflare/resources/zones/settings.py | 318 +-
.../resources/zones/subscriptions.py | 4 +-
src/cloudflare/resources/zones/zones.py | 8 +-
.../abuse_report_create_params.py | 1354 ++++-
src/cloudflare/types/accounts/__init__.py | 2 +-
.../types/accounts/role_list_params.py | 18 +
.../accounts/subscription_get_response.py | 10 -
.../types/accounts/tokens/__init__.py | 2 +
.../tokens/permission_group_get_response.py | 28 +
.../tokens/permission_group_list_response.py | 28 +
src/cloudflare/types/ai/ai_run_params.py | 46 +-
src/cloudflare/types/ai/ai_run_response.py | 15 +
src/cloudflare/types/ai_gateway/__init__.py | 5 +-
.../ai_gateway/ai_gateway_create_params.py | 6 +
.../ai_gateway/ai_gateway_create_response.py | 6 +
.../ai_gateway/ai_gateway_delete_response.py | 6 +
.../ai_gateway/ai_gateway_get_response.py | 6 +
.../ai_gateway/ai_gateway_list_response.py | 6 +
.../ai_gateway/ai_gateway_update_params.py | 6 +
.../ai_gateway/ai_gateway_update_response.py | 6 +
...rams.py => evaluation_type_list_params.py} | 4 +-
...se.py => evaluation_type_list_response.py} | 9 +-
.../url_get_response.py} | 4 +-
.../types/alerting/destinations/__init__.py | 1 -
.../destinations/pagerduty_get_response.py | 10 -
.../types/alerting/destinations/webhooks.py | 7 -
src/cloudflare/types/alerting/mechanism.py | 24 +-
.../types/alerting/mechanism_param.py | 25 +-
src/cloudflare/types/alerting/policy.py | 3 +-
.../types/alerting/policy_create_params.py | 3 +-
.../types/alerting/policy_filter.py | 5 +-
.../types/alerting/policy_filter_param.py | 5 +-
.../types/alerting/policy_update_params.py | 3 +-
.../operation_bulk_create_response.py | 126 +-
.../types/browser_rendering/__init__.py | 13 +
.../content_create_params.py | 238 +
.../content_create_response.py} | 7 +-
.../browser_rendering/pdf_create_params.py | 238 +
.../browser_rendering/scrape_create_params.py | 245 +
.../scrape_create_response.py | 53 +
.../screenshot_create_params.py | 279 ++
.../screenshot_create_response.py | 22 +
.../snapshot_create_params.py | 272 +
.../snapshot_create_response.py | 14 +
.../types/cache/cache_purge_params.py | 4 +-
.../cloud_connector/rule_update_params.py | 2 +-
.../cloud_connector/rule_update_response.py | 15 +-
.../types/cloudforce_one/__init__.py | 9 +
.../types/cloudforce_one/request_types.py | 4 +-
.../request_types_response.py} | 7 +-
.../types/cloudforce_one/requests/__init__.py | 1 -
.../requests/asset_create_response.py | 10 +-
.../requests/asset_get_response.py | 10 +-
.../requests/message_get_response.py | 10 -
.../types/cloudforce_one/scans/__init__.py | 11 +
.../scans/config_create_params.py | 30 +
.../scans/config_create_response.py | 31 +
.../scans/config_edit_params.py | 30 +
.../scans/config_edit_response.py | 31 +
.../scans/config_list_response.py | 31 +
.../scans/result_get_response.py | 14 +
.../types/cloudforce_one/scans/scan_result.py | 15 +
.../threat_event_bulk_create_params.py | 58 +
.../threat_event_bulk_create_response.py | 69 +
.../threat_event_create_params.py | 52 +
.../threat_event_create_response.py | 65 +
.../threat_event_delete_response.py | 10 +
.../threat_event_edit_params.py | 36 +
.../threat_event_edit_response.py | 65 +
.../threat_event_get_response.py | 65 +
.../cloudforce_one/threat_events/__init__.py | 39 +
.../threat_events/attacker_list_response.py | 16 +
.../threat_events/category_create_params.py | 23 +
.../threat_events/category_create_response.py | 21 +
.../threat_events/category_delete_response.py | 10 +
.../threat_events/category_edit_params.py | 23 +
.../threat_events/category_edit_response.py | 21 +
.../threat_events/category_get_response.py | 21 +
.../threat_events/category_list_response.py | 25 +
.../threat_events/country_list_response.py | 23 +
.../threat_events/cron_edit_response.py | 12 +
.../threat_events/cron_list_response.py | 10 +
.../threat_events/dataset_create_params.py | 23 +
.../threat_events/dataset_create_response.py | 16 +
.../threat_events/dataset_edit_params.py | 23 +
.../threat_events/dataset_edit_response.py | 16 +
.../threat_events/dataset_get_response.py | 16 +
.../threat_events/dataset_list_response.py | 21 +
.../threat_events/dataset_raw_response.py | 22 +
.../threat_events/event_tag_create_params.py | 15 +
.../event_tag_create_response.py | 10 +
.../event_tag_delete_response.py | 10 +
.../indicator_type_list_response.py | 16 +
.../threat_events/insight_create_params.py | 14 +
.../threat_events/insight_create_response.py | 12 +
.../threat_events/insight_delete_response.py | 10 +
.../threat_events/insight_edit_params.py | 17 +
.../threat_events/insight_edit_response.py | 12 +
.../threat_events/insight_get_response.py | 12 +
.../threat_events/raw_edit_params.py | 21 +
.../threat_events/raw_edit_response.py | 12 +
.../threat_events/raw_get_response.py | 22 +
.../threat_events/relate_delete_response.py | 10 +
.../threat_events/tag_create_params.py | 14 +
.../threat_events/tag_create_response.py | 12 +
.../target_industry_list_response.py | 16 +
.../payload_create_response.py | 10 +-
.../payload_delete_response.py | 10 +-
.../types/custom_certificates/__init__.py | 1 -
.../prioritize_update_response.py | 10 -
.../certificate_pack/__init__.py | 7 +
.../certificate_delete_response.py | 12 +
.../certificate_update_params.py | 24 +
.../certificate_update_response.py | 257 +
.../custom_hostname_create_params.py | 15 +-
.../custom_hostname_edit_params.py | 15 +-
.../types/custom_nameservers/__init__.py | 1 -
.../custom_nameserver_availabilty_response.py | 3 +-
.../custom_nameserver_delete_response.py | 3 +-
.../custom_nameserver_get_response.py | 10 -
src/cloudflare/types/custom_pages/__init__.py | 7 +
.../custom_pages/custom_page_get_response.py | 8 +
.../custom_pages/custom_page_update_params.py | 21 +
.../custom_page_update_response.py | 8 +
src/cloudflare/types/d1/__init__.py | 1 -
src/cloudflare/types/d1/d1.py | 2 +
.../types/d1/database_create_params.py | 1 +
.../types/d1/database_list_response.py | 2 +
.../types/d1/database_query_response.py | 10 -
.../types/d1/database_raw_response.py | 21 +-
src/cloudflare/types/diagnostics/__init__.py | 1 -
.../diagnostics/traceroute_create_response.py | 10 -
src/cloudflare/types/dns/__init__.py | 3 -
src/cloudflare/types/dns/batch_patch_param.py | 120 +-
src/cloudflare/types/dns/batch_put_param.py | 120 +-
src/cloudflare/types/dns/record_response.py | 172 +-
src/cloudflare/types/dns/settings/__init__.py | 14 +-
.../types/dns/settings/account/__init__.py | 12 +
.../{ => account}/view_create_params.py | 0
.../{ => account}/view_create_response.py | 2 +-
.../{ => account}/view_delete_response.py | 2 +-
.../{ => account}/view_edit_params.py | 0
.../{ => account}/view_edit_response.py | 2 +-
.../{ => account}/view_get_response.py | 2 +-
.../{ => account}/view_list_params.py | 0
.../{ => account}/view_list_response.py | 2 +-
.../account_edit_params.py} | 19 +-
.../account_edit_response.py} | 20 +-
.../account_get_response.py} | 20 +-
.../types/dns/settings/zone_edit_params.py | 100 +
.../types/dns/settings/zone_edit_response.py | 98 +
.../types/dns/settings/zone_get_response.py | 98 +
.../types/email_routing/__init__.py | 1 -
.../email_routing/dns_delete_response.py | 54 -
.../investigate/move_bulk_response.py | 9 +-
.../investigate/move_create_response.py | 9 +-
.../investigate/release_bulk_response.py | 8 +-
.../email_security/investigate_list_params.py | 2 +-
.../settings/domain_bulk_delete_response.py | 9 +-
.../settings/domain_edit_response.py | 22 +-
.../settings/domain_get_response.py | 22 +-
.../settings/domain_list_params.py | 3 +
.../settings/domain_list_response.py | 22 +-
.../submission_list_response.py | 2 +
src/cloudflare/types/filters/__init__.py | 3 -
.../filters/filter_bulk_delete_response.py | 10 -
.../filters/filter_bulk_update_response.py | 10 -
.../types/filters/filter_create_response.py | 10 -
src/cloudflare/types/firewall/__init__.py | 6 -
.../firewall/rule_bulk_delete_response.py | 10 -
.../types/firewall/rule_bulk_edit_response.py | 10 -
.../firewall/rule_bulk_update_response.py | 10 -
.../types/firewall/rule_create_response.py | 10 -
.../types/firewall/rule_edit_response.py | 10 -
.../hostnames/settings/tls_get_response.py | 10 +-
.../types/hyperdrive/config_create_params.py | 4 +-
.../types/hyperdrive/config_edit_params.py | 16 +-
.../types/hyperdrive/config_update_params.py | 4 +-
src/cloudflare/types/hyperdrive/hyperdrive.py | 11 +-
src/cloudflare/types/iam/__init__.py | 2 +
.../iam/permission_group_list_response.py | 24 +
.../types/iam/resource_group_list_response.py | 46 +
src/cloudflare/types/intel/__init__.py | 1 -
.../issue_type_get_response.py | 3 +-
.../types/intel/ip_list_get_response.py | 10 -
.../types/load_balancers/__init__.py | 5 +-
.../types/load_balancers/load_balancer.py | 2 +
.../monitors/reference_get_response.py | 11 +-
.../load_balancers/pool_bulk_edit_response.py | 10 -
.../pools/reference_get_response.py | 11 +-
...ch_get_params.py => search_list_params.py} | 4 +-
...et_response.py => search_list_response.py} | 4 +-
src/cloudflare/types/logpush/__init__.py | 3 +-
.../types/logpush/datasets/__init__.py | 2 -
.../logpush/datasets/job_get_response.py | 10 -
.../types/logpush/edge_get_response.py | 10 -
.../types/logpush/output_options.py | 2 +-
.../types/logpush/output_options_param.py | 2 +-
.../validate_destination_exists_params.py | 22 +
.../validate_destination_exists_response.py | 11 +
.../logpush/validate_destination_response.py | 4 +-
.../types/magic_cloud_networking/__init__.py | 55 +
.../catalog_sync_create_params.py | 23 +
.../catalog_sync_create_response.py | 213 +
.../catalog_sync_delete_params.py} | 7 +-
.../catalog_sync_delete_response.py | 10 +
.../catalog_sync_edit_params.py | 19 +
.../catalog_sync_edit_response.py | 213 +
.../catalog_sync_get_response.py | 213 +
.../catalog_sync_list_response.py | 213 +
.../catalog_sync_refresh_response.py} | 7 +-
.../catalog_sync_update_params.py | 19 +
.../catalog_sync_update_response.py | 213 +
.../catalog_syncs/__init__.py | 6 +
.../prebuilt_policy_list_params.py | 14 +
.../prebuilt_policy_list_response.py | 18 +
.../cloud_integration_create_params.py | 19 +
.../cloud_integration_create_response.py | 102 +
.../cloud_integration_delete_response.py | 10 +
...cloud_integration_discover_all_response.py | 382 ++
.../cloud_integration_discover_params.py | 13 +
.../cloud_integration_discover_response.py | 382 ++
.../cloud_integration_edit_params.py | 25 +
.../cloud_integration_edit_response.py | 102 +
.../cloud_integration_get_params.py | 13 +
.../cloud_integration_get_response.py | 102 +
...loud_integration_initial_setup_response.py | 38 +
.../cloud_integration_list_params.py | 20 +
.../cloud_integration_list_response.py | 102 +
.../cloud_integration_update_params.py | 25 +
.../cloud_integration_update_response.py | 102 +
.../on_ramp_apply_response.py | 374 ++
.../on_ramp_create_params.py | 42 +
.../on_ramp_create_response.py | 1664 +++++++
.../on_ramp_delete_params.py | 15 +
.../on_ramp_delete_response.py | 10 +
.../on_ramp_edit_params.py | 30 +
.../on_ramp_edit_response.py | 1664 +++++++
.../on_ramp_get_params.py | 19 +
.../on_ramp_get_response.py | 1664 +++++++
.../on_ramp_list_params.py | 20 +
.../on_ramp_list_response.py | 1664 +++++++
.../on_ramp_plan_response.py | 374 ++
.../on_ramp_update_params.py | 30 +
.../on_ramp_update_response.py | 1664 +++++++
.../on_ramps/__init__.py | 9 +
.../on_ramps/address_space_edit_params.py | 14 +
.../on_ramps/address_space_edit_response.py | 11 +
.../on_ramps/address_space_list_response.py | 11 +
.../on_ramps/address_space_update_params.py | 14 +
.../on_ramps/address_space_update_response.py | 11 +
.../resource_export_params.py | 91 +
.../resource_get_params.py | 13 +
.../resource_get_response.py | 632 +++
.../resource_list_params.py | 99 +
.../resource_list_response.py | 632 +++
.../resource_policy_preview_params.py | 13 +
.../resource_policy_preview_response.py | 7 +
.../magic_network_monitoring_rule.py | 32 +-
.../rule_create_params.py | 8 +-
.../rule_edit_params.py | 8 +-
.../rule_update_params.py | 8 +-
.../vpc_flows}/__init__.py | 2 +-
.../vpc_flows/token_create_response.py | 7 +
.../magic_transit/connector_edit_params.py | 1 -
.../magic_transit/connector_update_params.py | 1 -
.../magic_transit/connectors/__init__.py | 10 +
.../connectors/event_get_response.py | 123 +
.../connectors/event_list_params.py | 21 +
.../connectors/event_list_response.py | 29 +
.../connectors/snapshot_get_response.py | 696 +++
.../connectors/snapshot_list_params.py | 21 +
.../connectors/snapshot_list_response.py | 23 +
src/cloudflare/types/magic_transit/pcap.py | 8 +
.../types/magic_transit/pcap_create_params.py | 11 +-
.../types/magic_transit/pcaps/__init__.py | 1 -
.../pcaps/ownership_get_response.py | 10 -
.../types/magic_transit/site_list_params.py | 2 +-
.../types/magic_transit/sites/__init__.py | 2 -
.../types/magic_transit/sites/acl.py | 8 +
.../magic_transit/sites/acl_configuration.py | 10 +-
.../sites/acl_configuration_param.py | 10 +-
.../magic_transit/sites/acl_create_params.py | 8 +
.../magic_transit/sites/acl_edit_params.py | 8 +
.../magic_transit/sites/acl_update_params.py | 8 +
.../types/magic_transit/sites/dhcp_server.py | 4 +-
.../magic_transit/sites/dhcp_server_param.py | 4 +-
.../types/mtls_certificates/__init__.py | 1 -
.../association_get_response.py | 10 -
.../types/network_interconnects/__init__.py | 23 +
.../cni_create_params.py | 59 +
.../cni_create_response.py | 67 +
.../network_interconnects/cni_get_response.py | 67 +
.../network_interconnects/cni_list_params.py | 20 +
.../cni_list_response.py | 73 +
.../cni_update_params.py | 71 +
.../cni_update_response.py | 67 +
.../interconnect_create_params.py | 39 +
.../interconnect_create_response.py | 53 +
.../interconnect_get_response.py | 53 +
.../interconnect_list_params.py | 23 +
.../interconnect_list_response.py | 60 +
.../interconnect_status_response.py | 36 +
.../setting_get_response.py | 10 +
.../setting_update_params.py | 14 +
.../setting_update_response.py | 10 +
.../slot_get_response.py | 30 +
.../network_interconnects/slot_list_params.py | 29 +
.../slot_list_response.py | 36 +
.../origin_ca_certificate_list_params.py | 4 +-
.../hostname_update_response.py | 10 +-
src/cloudflare/types/pages/deployment.py | 33 +-
src/cloudflare/types/pages/project.py | 67 +-
.../types/pages/project_create_params.py | 60 +-
.../types/pages/project_edit_params.py | 60 +-
src/cloudflare/types/pages/stage.py | 5 +-
src/cloudflare/types/queues/__init__.py | 1 -
.../types/queues/consumer_get_response.py | 10 -
.../types/queues/message_pull_response.py | 10 +-
src/cloudflare/types/r2/bucket.py | 2 +-
.../types/r2/bucket_create_params.py | 2 +-
src/cloudflare/types/r2/buckets/__init__.py | 5 +
....py => event_notification_get_response.py} | 6 +-
...py => event_notification_update_params.py} | 6 +-
.../types/r2/buckets/lock_get_response.py | 62 +
.../types/r2/buckets/lock_update_params.py | 68 +
.../types/r2/buckets/metric_list_response.py | 85 +
src/cloudflare/types/radar/__init__.py | 2 +
.../ai/bots/summary_user_agent_params.py | 35 +-
.../types/radar/ai/inference/__init__.py | 8 +
.../ai/inference/summary_model_params.py | 41 +
.../ai/inference/summary_model_response.py | 56 +
.../radar/ai/inference/summary_task_params.py | 41 +
.../ai/inference/summary_task_response.py | 56 +
.../inference/timeseries_groups/__init__.py | 8 +
.../summary_model_params.py} | 42 +-
.../summary_model_response.py | 23 +
.../timeseries_groups/summary_task_params.py} | 42 +-
.../summary_task_response.py | 23 +
.../ai/timeseries_group_user_agent_params.py | 35 +-
.../types/radar/annotation_list_params.py | 10 +-
.../radar/annotations/outage_get_params.py | 10 +-
.../annotations/outage_locations_params.py | 4 +-
.../radar/as112/summary_dnssec_params.py | 157 +-
.../types/radar/as112/summary_edns_params.py | 157 +-
.../radar/as112/summary_ip_version_params.py | 157 +-
.../radar/as112/summary_protocol_params.py | 154 +-
.../radar/as112/summary_protocol_response.py | 8 +-
.../radar/as112/summary_query_type_params.py | 64 +-
.../as112/summary_response_codes_params.py | 137 +-
.../as112/timeseries_group_dnssec_params.py | 157 +-
.../as112/timeseries_group_edns_params.py | 157 +-
.../timeseries_group_ip_version_params.py | 157 +-
.../as112/timeseries_group_protocol_params.py | 154 +-
.../timeseries_group_protocol_response.py | 10 +-
.../timeseries_group_query_type_params.py | 64 +-
.../timeseries_group_query_type_response.py | 18 +-
.../timeseries_group_response_codes_params.py | 137 +-
...imeseries_group_response_codes_response.py | 12 +-
.../types/radar/as112/top_dnssec_params.py | 31 +-
.../types/radar/as112/top_edns_params.py | 31 +-
.../radar/as112/top_ip_version_params.py | 31 +-
.../types/radar/as112/top_locations_params.py | 31 +-
.../types/radar/as112_timeseries_params.py | 157 +-
.../types/radar/attacks/layer3/__init__.py | 4 -
.../attacks/layer3/summary_bitrate_params.py | 25 +-
.../attacks/layer3/summary_duration_params.py | 25 +-
.../attacks/layer3/summary_get_params.py | 53 -
.../layer3/summary_ip_version_params.py | 23 +-
.../attacks/layer3/summary_protocol_params.py | 25 +-
.../attacks/layer3/summary_vector_params.py | 31 +-
.../layer3/timeseries_group_bitrate_params.py | 25 +-
.../timeseries_group_duration_params.py | 25 +-
.../timeseries_group_industry_params.py | 31 +-
.../timeseries_group_ip_version_params.py | 23 +-
.../timeseries_group_protocol_params.py | 25 +-
.../layer3/timeseries_group_vector_params.py | 31 +-
.../timeseries_group_vertical_params.py | 31 +-
.../layer3/top/location_origin_params.py | 27 +-
.../layer3/top/location_target_params.py | 27 +-
.../attacks/layer3/top_attacks_params.py | 35 +-
.../attacks/layer3/top_industry_params.py | 27 +-
.../attacks/layer3/top_vertical_params.py | 27 +-
.../radar/attacks/layer3_timeseries_params.py | 31 +-
.../types/radar/attacks/layer7/__init__.py | 4 -
.../attacks/layer7/summary_get_params.py | 53 -
.../layer7/summary_http_method_params.py | 39 +-
.../layer7/summary_http_version_params.py | 33 +-
.../layer7/summary_ip_version_params.py | 33 +-
.../layer7/summary_managed_rules_params.py | 41 +-
.../summary_mitigation_product_params.py | 41 +-
.../timeseries_group_http_method_params.py | 39 +-
.../timeseries_group_http_version_params.py | 33 +-
.../timeseries_group_industry_params.py | 41 +-
.../timeseries_group_ip_version_params.py | 33 +-
.../timeseries_group_managed_rules_params.py | 41 +-
...eseries_group_mitigation_product_params.py | 41 +-
.../timeseries_group_vertical_params.py | 41 +-
.../attacks/layer7/top/ase_origin_params.py | 31 +-
.../layer7/top/location_origin_params.py | 31 +-
.../layer7/top/location_target_params.py | 80 +-
.../attacks/layer7/top_attacks_params.py | 101 +-
.../attacks/layer7/top_industry_params.py | 37 +-
.../attacks/layer7/top_vertical_params.py | 37 +-
.../radar/attacks/layer7_timeseries_params.py | 40 +-
.../radar/bgp/hijacks/event_list_params.py | 24 +-
.../types/radar/bgp/ip_timeseries_params.py | 23 +-
.../radar/bgp/leaks/event_list_params.py | 18 +-
.../types/radar/bgp/route_ases_params.py | 12 +-
.../types/radar/bgp/route_moas_params.py | 6 +-
.../types/radar/bgp/route_pfx2as_params.py | 6 +-
.../types/radar/bgp/route_stats_params.py | 6 +-
.../types/radar/bgp/top/ase_get_params.py | 19 +-
.../radar/bgp/top/ase_prefixes_params.py | 4 +-
.../types/radar/bgp/top_prefixes_params.py | 19 +-
.../types/radar/bgp_timeseries_params.py | 17 +-
.../types/radar/dataset_download_params.py | 2 +-
.../types/radar/dataset_list_params.py | 13 +-
src/cloudflare/types/radar/dns/__init__.py | 52 +
.../radar/dns/summary_cache_hit_params.py | 186 +
.../radar/dns/summary_cache_hit_response.py | 69 +
.../radar/dns/summary_dnssec_aware_params.py | 186 +
.../dns/summary_dnssec_aware_response.py | 69 +
.../radar/dns/summary_dnssec_e2e_params.py | 186 +
.../radar/dns/summary_dnssec_e2e_response.py | 69 +
.../types/radar/dns/summary_dnssec_params.py | 186 +
.../radar/dns/summary_dnssec_response.py | 73 +
.../radar/dns/summary_ip_version_params.py | 186 +
.../radar/dns/summary_ip_version_response.py | 69 +
.../dns/summary_matching_answer_params.py | 186 +
.../dns/summary_matching_answer_response.py | 69 +
.../radar/dns/summary_protocol_params.py | 183 +
.../radar/dns/summary_protocol_response.py | 73 +
.../radar/dns/summary_query_type_params.py | 97 +
.../radar/dns/summary_query_type_response.py | 56 +
.../radar/dns/summary_response_code_params.py | 168 +
.../dns/summary_response_code_response.py | 56 +
.../radar/dns/summary_response_ttl_params.py | 186 +
.../summary_response_ttl_response.py} | 24 +-
.../dns/timeseries_group_cache_hit_params.py | 193 +
.../timeseries_group_cache_hit_response.py | 21 +
.../timeseries_group_dnssec_aware_params.py | 193 +
.../timeseries_group_dnssec_aware_response.py | 21 +
.../dns/timeseries_group_dnssec_e2e_params.py | 193 +
.../timeseries_group_dnssec_e2e_response.py | 21 +
.../dns/timeseries_group_dnssec_params.py | 193 +
.../dns/timeseries_group_dnssec_response.py | 25 +
.../dns/timeseries_group_ip_version_params.py | 193 +
.../timeseries_group_ip_version_response.py | 21 +
...timeseries_group_matching_answer_params.py | 193 +
...meseries_group_matching_answer_response.py | 21 +
.../dns/timeseries_group_protocol_params.py | 190 +
.../dns/timeseries_group_protocol_response.py | 25 +
.../dns/timeseries_group_query_type_params.py | 104 +
.../timeseries_group_query_type_response.py | 23 +
.../timeseries_group_response_code_params.py | 175 +
...timeseries_group_response_code_response.py | 23 +
.../timeseries_group_response_ttl_params.py | 193 +
.../timeseries_group_response_ttl_response.py | 29 +
.../types/radar/dns/top_ases_params.py | 39 +-
.../types/radar/dns/top_locations_params.py | 39 +-
.../types/radar/dns_timeseries_params.py | 193 +
...response.py => dns_timeseries_response.py} | 16 +-
.../radar/email/routing/summary_arc_params.py | 24 +-
.../email/routing/summary_dkim_params.py | 24 +-
.../email/routing/summary_dmarc_params.py | 21 +-
.../email/routing/summary_encrypted_params.py | 24 +-
.../routing/summary_ip_version_params.py | 24 +-
.../radar/email/routing/summary_spf_params.py | 24 +-
.../routing/timeseries_group_arc_params.py | 24 +-
.../routing/timeseries_group_dkim_params.py | 24 +-
.../routing/timeseries_group_dmarc_params.py | 21 +-
.../timeseries_group_encrypted_params.py | 24 +-
.../timeseries_group_ip_version_params.py | 24 +-
.../routing/timeseries_group_spf_params.py | 24 +-
.../email/security/summary_arc_params.py | 22 +-
.../email/security/summary_dkim_params.py | 22 +-
.../email/security/summary_dmarc_params.py | 19 +-
.../security/summary_malicious_params.py | 24 +-
.../email/security/summary_spam_params.py | 24 +-
.../email/security/summary_spf_params.py | 22 +-
.../email/security/summary_spoof_params.py | 24 +-
.../summary_threat_category_params.py | 24 +-
.../security/summary_tls_version_params.py | 22 +-
.../security/timeseries_group_arc_params.py | 22 +-
.../security/timeseries_group_dkim_params.py | 22 +-
.../security/timeseries_group_dmarc_params.py | 19 +-
.../timeseries_group_malicious_params.py | 24 +-
.../security/timeseries_group_spam_params.py | 24 +-
.../security/timeseries_group_spf_params.py | 22 +-
.../security/timeseries_group_spoof_params.py | 24 +-
...timeseries_group_threat_category_params.py | 24 +-
.../timeseries_group_tls_version_params.py | 22 +-
.../email/security/top/tld_get_params.py | 28 +-
.../security/top/tlds/malicious_get_params.py | 28 +-
.../security/top/tlds/spam_get_params.py | 28 +-
.../security/top/tlds/spoof_get_params.py | 28 +-
.../types/radar/entities/asn_get_params.py | 2 +-
.../types/radar/entities/asn_ip_params.py | 2 +-
.../types/radar/entities/asn_list_params.py | 12 +-
.../types/radar/entities/asn_rel_params.py | 4 +-
.../radar/entities/location_get_params.py | 2 +-
.../radar/entities/location_list_params.py | 8 +-
.../types/radar/entity_get_params.py | 2 +-
.../types/radar/http/ase_get_params.py | 47 +-
.../radar/http/ases/bot_class_get_params.py | 45 +-
.../http/ases/browser_family_get_params.py | 45 +-
.../radar/http/ases/device_type_get_params.py | 45 +-
.../radar/http/ases/http_method_get_params.py | 45 +-
.../http/ases/http_protocol_get_params.py | 46 +-
.../radar/http/ases/ip_version_get_params.py | 45 +-
.../types/radar/http/ases/os_get_params.py | 45 +-
.../radar/http/ases/tls_version_get_params.py | 45 +-
.../types/radar/http/location_get_params.py | 47 +-
.../http/locations/bot_class_get_params.py | 45 +-
.../locations/browser_family_get_params.py | 45 +-
.../http/locations/device_type_get_params.py | 45 +-
.../http/locations/http_method_get_params.py | 45 +-
.../locations/http_protocol_get_params.py | 46 +-
.../http/locations/ip_version_get_params.py | 45 +-
.../radar/http/locations/os_get_params.py | 45 +-
.../http/locations/tls_version_get_params.py | 45 +-
.../radar/http/summary_bot_class_params.py | 46 +-
.../radar/http/summary_device_type_params.py | 46 +-
.../http/summary_http_protocol_params.py | 46 +-
.../radar/http/summary_http_version_params.py | 46 +-
.../radar/http/summary_ip_version_params.py | 46 +-
.../types/radar/http/summary_os_params.py | 46 +-
.../radar/http/summary_post_quantum_params.py | 48 +-
.../radar/http/summary_tls_version_params.py | 46 +-
.../http/timeseries_group_bot_class_params.py | 46 +-
.../timeseries_group_browser_family_params.py | 49 +-
.../http/timeseries_group_browser_params.py | 54 +-
.../timeseries_group_device_type_params.py | 46 +-
.../timeseries_group_http_protocol_params.py | 46 +-
.../timeseries_group_http_version_params.py | 46 +-
.../timeseries_group_ip_version_params.py | 46 +-
.../radar/http/timeseries_group_os_params.py | 46 +-
.../timeseries_group_post_quantum_params.py | 48 +-
.../timeseries_group_tls_version_params.py | 46 +-
.../radar/http/top_browser_family_params.py | 48 +-
.../types/radar/http/top_browser_params.py | 47 +-
.../types/radar/http_timeseries_params.py | 48 +-
.../radar/leaked_credentials/__init__.py | 14 +
.../summary_bot_class_params.py | 36 +
.../summary_bot_class_response.py} | 18 +-
.../summary_compromised_params.py | 40 +
.../summary_compromised_response.py | 69 +
.../timeseries_group_bot_class_params.py | 43 +
.../timeseries_group_bot_class_response.py | 21 +
.../timeseries_group_compromised_params.py | 47 +
.../timeseries_group_compromised_response.py | 23 +
.../types/radar/netflow_summary_params.py | 29 +-
.../types/radar/netflow_timeseries_params.py | 31 +-
.../types/radar/netflows/top_ases_params.py | 31 +-
.../radar/netflows/top_locations_params.py | 31 +-
.../types/radar/quality/iqi_summary_params.py | 31 +-
.../quality/iqi_timeseries_groups_params.py | 33 +-
.../radar/quality/speed/top_ases_params.py | 26 +-
.../quality/speed/top_locations_params.py | 26 +-
.../radar/quality/speed_histogram_params.py | 24 +-
.../radar/quality/speed_summary_params.py | 22 +-
.../types/radar/ranking/__init__.py | 10 +
.../types/radar/ranking/domain_get_params.py | 12 +-
.../radar/ranking/domain_get_response.py | 25 +-
.../internet_service_categories_params.py | 25 +
.../internet_service_categories_response.py | 15 +
...ternet_service_timeseries_groups_params.py | 39 +
...rnet_service_timeseries_groups_response.py | 38 +
.../ranking/internet_service_top_params.py | 28 +
.../ranking/internet_service_top_response.py | 31 +
.../radar/ranking_timeseries_groups_params.py | 22 +-
.../types/radar/ranking_top_params.py | 15 +-
.../types/radar/robots_txt/__init__.py | 6 +
.../types/radar/robots_txt/top/__init__.py | 6 +
.../top/user_agent_directive_params.py | 34 +
.../top/user_agent_directive_response.py} | 49 +-
.../top_domain_categories_params.py | 28 +
.../top_domain_categories_response.py | 78 +
.../types/radar/search_global_params.py | 6 +-
.../tcp_resets_timeout_summary_params.py | 29 +-
...resets_timeout_timeseries_groups_params.py | 29 +-
.../traffic_anomalies/location_get_params.py | 4 +-
.../types/radar/traffic_anomaly_get_params.py | 10 +-
.../radar/verified_bots/top_bots_params.py | 31 +-
.../verified_bots/top_categories_params.py | 31 +-
src/cloudflare/types/request_tracers/trace.py | 4 +-
src/cloudflare/types/rulesets/__init__.py | 1 +
.../types/rulesets/log_custom_field_rule.py | 28 +-
.../rulesets/log_custom_field_rule_param.py | 28 +-
.../types/rulesets/phase_update_params.py | 6 +-
.../types/rulesets/rule_create_params.py | 119 +-
.../types/rulesets/rule_edit_params.py | 119 +-
.../types/rulesets/ruleset_create_params.py | 6 +-
.../types/rulesets/ruleset_list_params.py | 21 +
.../types/rulesets/ruleset_update_params.py | 6 +-
.../types/rulesets/set_cache_settings_rule.py | 91 +-
.../rulesets/set_cache_settings_rule_param.py | 91 +-
.../types/rum/site_info_update_params.py | 12 +
.../types/security_center/__init__.py | 8 +
.../security_center/insight_dismiss_params.py | 17 +
.../insight_dismiss_response.py | 18 +
.../security_center/insight_list_params.py | 48 +
.../security_center/insight_list_response.py | 47 +
.../security_center/insights/__init__.py | 10 +
.../insights/class_get_params.py | 42 +
.../insights/class_get_response.py | 17 +
.../insights/severity_get_params.py | 42 +
.../insights/severity_get_response.py | 17 +
.../insights/type_get_params.py | 42 +
.../insights/type_get_response.py | 17 +
.../types/shared/cloudflare_tunnel.py | 2 +-
src/cloudflare/types/shared/error_data.py | 10 +-
src/cloudflare/types/shared/rate_plan.py | 16 +-
.../types/shared_params/rate_plan.py | 15 +-
.../types/shared_params/token_policy.py | 3 +
.../types/snippets/rule_update_response.py | 10 +-
.../types/ssl/recommendation_get_response.py | 2 +-
src/cloudflare/types/stream/__init__.py | 2 -
.../types/stream/audio_track_get_response.py | 10 -
.../types/stream/caption_get_response.py | 10 -
.../types/stream/key_get_response.py | 10 +-
.../types/stream/stream_create_params.py | 6 +
.../url_scanner/scan_bulk_create_params.py | 2 +-
src/cloudflare/types/user/__init__.py | 1 -
.../types/user/subscription_get_response.py | 10 -
src/cloudflare/types/user/tokens/__init__.py | 1 +
.../tokens/permission_group_list_response.py | 28 +
.../types/vectorize/index_insert_params.py | 3 +-
.../types/vectorize/index_upsert_params.py | 3 +-
.../types/waiting_rooms/__init__.py | 5 -
.../waiting_rooms/rule_create_response.py | 10 -
.../waiting_rooms/rule_delete_response.py | 10 -
.../types/waiting_rooms/rule_edit_response.py | 10 -
.../types/waiting_rooms/rule_get_response.py | 10 -
.../waiting_rooms/rule_update_response.py | 10 -
.../waiting_rooms/status_get_response.py | 2 +-
.../waiting_rooms/waiting_room_list_params.py | 9 +-
.../types/workers/script_update_params.py | 504 +-
.../types/workers/scripts/__init__.py | 4 +
.../workers/scripts/secret_get_response.py | 19 +
.../workers/scripts/secret_list_response.py | 19 +
.../workers/scripts/secret_update_params.py | 24 +
.../workers/scripts/secret_update_response.py | 19 +
.../workers/scripts/version_create_params.py | 497 +-
.../namespaces/script_update_params.py | 504 +-
.../scripts/binding_get_response.py | 569 ++-
.../namespaces/scripts/setting_edit_params.py | 497 +-
.../scripts/setting_edit_response.py | 462 +-
.../scripts/setting_get_response.py | 462 +-
.../namespaces/scripts/tag_update_response.py | 3 +-
src/cloudflare/types/workflows/__init__.py | 2 +
.../types/workflows/instance_bulk_params.py | 20 +
.../types/workflows/instance_bulk_response.py | 19 +
src/cloudflare/types/zaraz/__init__.py | 17 +
.../types/zaraz/button_text_translation.py | 18 +
.../zaraz/button_text_translation_param.py | 19 +
.../types/zaraz/config_update_params.py | 612 +++
src/cloudflare/types/zaraz/configuration.py | 609 +++
.../types/zaraz/history/__init__.py | 6 +
.../types/zaraz/history/config_get_params.py | 16 +
.../zaraz/history/config_get_response.py | 32 +
.../types/zaraz/history_list_params.py | 28 +
.../types/zaraz/history_list_response.py | 26 +
.../types/zaraz/history_update_params.py | 15 +
src/cloudflare/types/zaraz/neo_event.py | 23 +
src/cloudflare/types/zaraz/neo_event_param.py | 24 +
.../publish_create_params.py} | 8 +-
.../types/zaraz/publish_create_response.py | 7 +
src/cloudflare/types/zaraz/workflow.py | 7 +
.../types/zaraz/zaraz_update_params.py | 17 +
src/cloudflare/types/zero_trust/__init__.py | 47 -
.../types/zero_trust/access/__init__.py | 5 +
.../types/zero_trust/access/access_user.py | 65 +-
.../access/application_create_params.py | 488 +-
.../access/application_create_response.py | 435 +-
.../access/application_get_response.py | 435 +-
.../access/application_list_response.py | 435 +-
.../zero_trust/access/application_policy.py | 5 +-
.../zero_trust/access/application_type.py | 2 +-
.../access/application_update_params.py | 488 +-
.../access/application_update_response.py | 435 +-
.../access/applications/__init__.py | 41 +
.../access_device_posture_rule.py | 2 +-
.../access_device_posture_rule_param.py | 0
.../{ => access/applications}/access_rule.py | 14 +-
.../applications}/access_rule_param.py | 12 +
.../any_valid_service_token_rule.py | 2 +-
.../any_valid_service_token_rule_param.py | 0
.../authentication_method_rule.py | 2 +-
.../authentication_method_rule_param.py | 0
.../applications}/azure_group_rule.py | 2 +-
.../applications}/azure_group_rule_param.py | 2 +-
.../applications}/certificate_rule.py | 2 +-
.../applications}/certificate_rule_param.py | 0
.../{ => access/applications}/country_rule.py | 2 +-
.../applications}/country_rule_param.py | 0
.../{ => access/applications}/domain_rule.py | 2 +-
.../applications}/domain_rule_param.py | 0
.../applications}/email_list_rule.py | 2 +-
.../applications}/email_list_rule_param.py | 0
.../{ => access/applications}/email_rule.py | 2 +-
.../applications}/email_rule_param.py | 0
.../applications}/everyone_rule.py | 2 +-
.../applications}/everyone_rule_param.py | 0
.../applications}/external_evaluation_rule.py | 2 +-
.../external_evaluation_rule_param.py | 0
.../applications}/github_organization_rule.py | 2 +-
.../github_organization_rule_param.py | 2 +-
.../{ => access/applications}/group_rule.py | 2 +-
.../applications}/group_rule_param.py | 0
.../applications}/gsuite_group_rule.py | 2 +-
.../applications}/gsuite_group_rule_param.py | 0
.../{ => access/applications}/ip_list_rule.py | 2 +-
.../applications}/ip_list_rule_param.py | 0
.../{ => access/applications}/ip_rule.py | 2 +-
.../applications}/ip_rule_param.py | 0
.../applications}/okta_group_rule.py | 2 +-
.../applications}/okta_group_rule_param.py | 0
.../applications/policy_test_create_params.py | 46 +-
.../applications/policy_test_get_params.py | 14 +
.../applications/policy_tests/__init__.py | 1 +
.../policy_tests/user_list_params.py | 15 +
.../policy_tests/user_list_response.py | 11 +-
.../applications}/saml_group_rule.py | 2 +-
.../applications}/saml_group_rule_param.py | 0
.../applications}/service_token_rule.py | 2 +-
.../applications}/service_token_rule_param.py | 0
.../access/certificates/__init__.py | 2 -
.../certificates/setting_get_response.py | 10 -
.../certificates/setting_update_response.py | 10 -
.../zero_trust/access/group_create_params.py | 2 +-
.../access/group_create_response.py | 45 +
.../zero_trust/access/group_get_response.py | 45 +
.../zero_trust/access/group_list_response.py | 45 +
.../zero_trust/access/group_update_params.py | 2 +-
.../access/group_update_response.py | 45 +
.../infrastructure/target_list_params.py | 37 +
.../types/zero_trust/access/logs/__init__.py | 2 +-
.../{access_requests.py => access_request.py} | 4 +-
.../logs/access_request_list_response.py | 4 +-
.../zero_trust/access/logs/scim/__init__.py | 6 +
.../access/logs/scim/update_list_params.py | 52 +
.../access/logs/scim/update_list_response.py | 45 +
.../zero_trust/access/policy_create_params.py | 2 +-
.../access/policy_create_response.py | 2 +-
.../zero_trust/access/policy_get_response.py | 2 +-
.../zero_trust/access/policy_list_response.py | 2 +-
.../zero_trust/access/policy_update_params.py | 2 +-
.../access/policy_update_response.py | 2 +-
.../types/zero_trust/access/saml_saas_app.py | 14 +-
.../zero_trust/access/saml_saas_app_param.py | 14 +-
.../types/zero_trust/access/service_token.py | 2 +
.../zero_trust/access/user_list_response.py | 41 +
.../zero_trust/access/zero_trust_group.py | 52 +-
.../types/zero_trust/devices/__init__.py | 1 -
.../devices/network_delete_response.py | 10 -
.../zero_trust/devices/policies/__init__.py | 1 -
.../devices/policies/custom/__init__.py | 6 -
.../policies/custom/exclude_get_response.py | 10 -
.../custom/exclude_update_response.py | 10 -
.../custom/fallback_domain_get_response.py | 10 -
.../custom/fallback_domain_update_response.py | 10 -
.../policies/custom/include_get_response.py | 10 -
.../custom/include_update_response.py | 10 -
.../devices/policies/custom_create_params.py | 23 +-
.../policies/custom_delete_response.py | 10 -
.../devices/policies/custom_edit_params.py | 23 +-
.../devices/policies/default/__init__.py | 6 -
.../policies/default/exclude_get_response.py | 10 -
.../default/exclude_update_response.py | 10 -
.../default/fallback_domain_get_response.py | 10 -
.../fallback_domain_update_response.py | 10 -
.../policies/default/include_get_response.py | 10 -
.../default/include_update_response.py | 10 -
.../devices/policies/default_edit_params.py | 23 +-
.../devices/policies/default_edit_response.py | 10 +-
.../devices/policies/default_get_response.py | 10 +-
.../zero_trust/devices/settings_policy.py | 10 +-
.../types/zero_trust/dex/commands/__init__.py | 2 -
.../dex/commands/device_list_response.py | 6 +
.../dex/commands/user_list_response.py | 14 -
.../dlp/datasets/upload_edit_params.py | 4 +-
.../dlp/datasets/version_create_response.py | 10 +-
.../datasets/versions/entry_create_params.py | 4 +-
.../dlp/email/rule_bulk_edit_response.py | 4 +-
.../dlp/email/rule_create_params.py | 4 +-
.../dlp/email/rule_create_response.py | 4 +-
.../dlp/email/rule_delete_response.py | 4 +-
.../zero_trust/dlp/email/rule_get_response.py | 4 +-
.../dlp/email/rule_list_response.py | 4 +-
.../dlp/email/rule_update_params.py | 4 +-
.../dlp/email/rule_update_response.py | 4 +-
.../zero_trust/dlp/entry_get_response.py | 8 +-
.../zero_trust/dlp/entry_list_response.py | 8 +-
.../zero_trust/dlp/entry_update_response.py | 8 +-
.../types/zero_trust/dlp/profile.py | 28 +-
.../dlp/profiles/custom_create_params.py | 4 +
.../dlp/profiles/custom_create_response.py | 28 +-
.../dlp/profiles/custom_update_params.py | 2 +
.../dlp/profiles/predefined_update_params.py | 2 +
.../types/zero_trust/gateway/__init__.py | 1 -
.../zero_trust/gateway/gateway_filter.py | 2 +-
.../gateway/proxy_endpoint_get_response.py | 10 -
.../types/zero_trust/gateway/rule_setting.py | 87 +-
.../zero_trust/gateway/rule_setting_param.py | 85 +-
.../identity_provider_scim_config.py | 5 +-
.../zero_trust/identity_providers/__init__.py | 3 +
.../identity_providers/scim/__init__.py | 6 +
.../scim/group_list_params.py | 27 +
.../scim/user_list_params.py | 32 +
.../types/zero_trust/networks/__init__.py | 2 +
.../zero_trust/networks/route_list_params.py | 17 +-
.../networks/routes/ip_get_params.py | 8 +
.../networks/routes/network_delete_params.py | 2 +-
.../zero_trust/networks/subnet_list_params.py | 59 +
.../networks/subnet_list_response.py | 41 +
.../zero_trust/networks/subnets/__init__.py | 6 +
.../cloudflare_source_update_params.py | 21 +
.../cloudflare_source_update_response.py | 41 +
.../types/zero_trust/networks/teamnet.py | 2 +-
.../organizations/doh_get_response.py | 2 +
.../organizations/doh_update_response.py | 2 +
.../types/zero_trust/tunnel_list_params.py | 13 +-
.../types/zero_trust/tunnel_list_response.py | 2 +-
.../types/zero_trust/tunnels/__init__.py | 18 +-
.../tunnels/cloudflared/__init__.py | 12 +
.../tunnels/{ => cloudflared}/client.py | 2 +-
.../configuration_get_response.py | 2 +-
.../configuration_update_params.py | 2 +-
.../configuration_update_response.py | 2 +-
.../connection_delete_params.py | 0
.../management_create_params.py | 0
.../management_create_response.py | 0
.../{ => cloudflared}/token_get_response.py | 0
.../cloudflared_create_params.py} | 4 +-
.../cloudflared_create_response.py} | 10 +-
.../tunnels/cloudflared_delete_response.py | 94 +
.../cloudflared_edit_params.py} | 4 +-
.../cloudflared_edit_response.py} | 10 +-
.../cloudflared_get_response.py} | 10 +-
.../tunnels/cloudflared_list_params.py | 57 +
.../cloudflared_list_response.py} | 10 +-
.../tunnels/connection_get_response.py | 10 -
.../tunnels/warp_connector}/__init__.py | 2 +-
.../warp_connector/token_get_response.py | 7 +
.../tunnels/warp_connector_create_response.py | 2 +-
.../tunnels/warp_connector_delete_response.py | 2 +-
.../tunnels/warp_connector_edit_response.py | 2 +-
.../tunnels/warp_connector_get_response.py | 2 +-
.../tunnels/warp_connector_list_params.py | 6 +-
.../tunnels/warp_connector_list_response.py | 2 +-
.../custom_nameserver_update_response.py | 3 +-
.../types/zones/rate_plan_get_response.py | 13 +-
.../types/zones/setting_edit_params.py | 64 +
.../types/zones/setting_edit_response.py | 70 +
.../types/zones/setting_get_response.py | 70 +
src/cloudflare/types/zones/zone.py | 3 +
.../types/zones/zone_edit_params.py | 2 +-
tests/api_resources/accounts/test_roles.py | 32 +-
.../accounts/test_subscriptions.py | 17 +-
tests/api_resources/accounts/test_tokens.py | 114 +-
.../accounts/tokens/test_permission_groups.py | 97 +-
.../ai_gateway/test_evaluation_types.py | 63 +-
tests/api_resources/ai_gateway/test_urls.py | 141 +
.../alerting/destinations/test_pagerduty.py | 15 +-
tests/api_resources/alerting/test_policies.py | 76 +-
.../api_gateway/test_operations.py | 14 +-
.../__init__.py | 0
.../browser_rendering/test_content.py | 249 +
.../browser_rendering/test_pdf.py | 306 ++
.../browser_rendering/test_scrape.py | 260 +
.../browser_rendering/test_screenshot.py | 288 ++
.../browser_rendering/test_snapshot.py | 282 ++
.../cloud_connector/test_rules.py | 56 +-
.../cloudforce_one/requests/test_assets.py | 25 +-
.../cloudforce_one/requests/test_message.py | 18 +-
.../scans}/__init__.py | 0
.../cloudforce_one/scans/test_config.py | 421 ++
.../cloudforce_one/scans/test_results.py | 118 +
.../cloudforce_one/test_requests.py | 32 +-
.../cloudforce_one/test_threat_events.py | 657 +++
.../cloudforce_one/threat_events/__init__.py | 1 +
.../threat_events/test_attackers.py | 90 +
.../threat_events/test_categories.py | 502 ++
.../threat_events/test_countries.py | 90 +
.../threat_events/test_crons.py | 158 +
.../threat_events/test_datasets.py | 490 ++
.../threat_events/test_event_tags.py | 217 +
.../threat_events/test_indicator_types.py | 90 +
.../threat_events/test_insights.py | 479 ++
.../cloudforce_one/threat_events/test_raw.py | 276 ++
.../threat_events/test_relate.py | 114 +
.../cloudforce_one/threat_events/test_tags.py | 96 +
.../threat_events/test_target_industries.py | 90 +
.../content_scanning/test_payloads.py | 26 +-
.../custom_certificates/test_prioritize.py | 17 +-
.../certificate_pack/__init__.py | 1 +
.../certificate_pack/test_certificates.py | 349 ++
tests/api_resources/d1/test_database.py | 36 +-
.../diagnostics/test_traceroutes.py | 21 +-
.../dns/settings/account/__init__.py | 1 +
.../dns/settings/{ => account}/test_views.py | 102 +-
.../test_account.py} | 152 +-
tests/api_resources/dns/settings/test_zone.py | 246 +
tests/api_resources/email_routing/test_dns.py | 23 +-
.../email_security/investigate/test_move.py | 25 +-
.../investigate/test_release.py | 13 +-
.../email_security/settings/test_domains.py | 16 +-
.../firewall/test_access_rules.py | 40 +-
tests/api_resources/firewall/test_rules.py | 95 +-
.../hostnames/settings/test_tls.py | 13 +-
.../api_resources/hyperdrive/test_configs.py | 2 -
.../iam/test_permission_groups.py | 28 +-
.../api_resources/iam/test_resource_groups.py | 19 +-
.../attack_surface_report/test_issue_types.py | 15 +-
tests/api_resources/intel/test_ip_lists.py | 17 +-
.../monitors/test_references.py | 13 +-
.../load_balancers/pools/test_references.py | 13 +-
.../load_balancers/test_pools.py | 17 +-
.../load_balancers/test_searches.py | 59 +-
.../logpush/datasets/test_fields.py | 8 +-
.../logpush/datasets/test_jobs.py | 27 +-
tests/api_resources/logpush/test_edge.py | 15 +-
tests/api_resources/logpush/test_jobs.py | 48 +-
tests/api_resources/logpush/test_ownership.py | 16 +-
tests/api_resources/logpush/test_validate.py | 139 +-
.../magic_cloud_networking/__init__.py | 1 +
.../catalog_syncs/__init__.py | 1 +
.../catalog_syncs/test_prebuilt_policies.py | 117 +
.../on_ramps/__init__.py | 1 +
.../on_ramps/test_address_spaces.py | 270 +
.../test_catalog_syncs.py | 778 +++
.../test_cloud_integrations.py | 993 ++++
.../magic_cloud_networking/test_on_ramps.py | 1118 +++++
.../magic_cloud_networking/test_resources.py | 506 ++
.../magic_network_monitoring/test_rules.py | 44 +-
.../vpc_flows/__init__.py | 1 +
.../vpc_flows/test_tokens.py | 97 +
.../magic_transit/connectors/__init__.py | 1 +
.../magic_transit/connectors/test_events.py | 246 +
.../connectors/test_snapshots.py | 238 +
.../magic_transit/pcaps/test_ownership.py | 20 +-
.../magic_transit/sites/test_acls.py | 18 +
.../magic_transit/sites/test_lans.py | 23 +-
.../magic_transit/sites/test_wans.py | 17 +-
.../api_resources/magic_transit/test_apps.py | 4 +-
.../api_resources/magic_transit/test_pcaps.py | 3 +
.../api_resources/magic_transit/test_sites.py | 4 +-
.../mtls_certificates/test_associations.py | 17 +-
.../network_interconnects/__init__.py | 1 +
.../network_interconnects/test_cnis.py | 727 +++
.../test_interconnects.py | 739 +++
.../network_interconnects/test_settings.py | 190 +
.../network_interconnects/test_slots.py | 220 +
.../origin_tls_client_auth/test_hostnames.py | 13 +-
tests/api_resources/pages/test_projects.py | 40 +-
tests/api_resources/queues/test_consumers.py | 19 +-
tests/api_resources/queues/test_messages.py | 17 +-
.../r2/buckets/domains/test_custom.py | 96 +-
.../event_notifications/test_configuration.py | 146 -
..._queues.py => test_event_notifications.py} | 233 +-
tests/api_resources/r2/buckets/test_locks.py | 292 ++
.../api_resources/r2/buckets/test_metrics.py | 106 +
.../radar/ai/bots/test_summary.py | 4 +-
.../radar/ai/inference/__init__.py | 1 +
.../radar/ai/inference/test_summary.py | 174 +
.../inference/timeseries_groups/__init__.py | 1 +
.../timeseries_groups/test_summary.py | 180 +
.../radar/ai/test_timeseries_groups.py | 4 +-
.../api_resources/radar/as112/test_summary.py | 54 +-
.../radar/as112/test_timeseries_groups.py | 54 +-
tests/api_resources/radar/as112/test_top.py | 16 +-
.../radar/attacks/layer3/test_summary.py | 99 +-
.../attacks/layer3/test_timeseries_groups.py | 109 +-
.../radar/attacks/layer3/test_top.py | 14 +-
.../attacks/layer3/top/test_locations.py | 8 +-
.../radar/attacks/layer7/test_summary.py | 99 +-
.../attacks/layer7/test_timeseries_groups.py | 125 +-
.../radar/attacks/layer7/test_top.py | 18 +-
.../radar/attacks/layer7/top/test_ases.py | 4 +-
.../attacks/layer7/top/test_locations.py | 14 +-
.../radar/attacks/test_layer3.py | 4 +-
.../radar/attacks/test_layer7.py | 6 +-
tests/api_resources/radar/bgp/test_ips.py | 4 +-
tests/api_resources/radar/bgp/test_routes.py | 4 +-
tests/api_resources/radar/bgp/test_top.py | 4 +-
.../api_resources/radar/bgp/top/test_ases.py | 4 +-
tests/api_resources/radar/dns/test_summary.py | 912 ++++
.../radar/dns/test_timeseries_groups.py | 932 ++++
tests/api_resources/radar/dns/test_top.py | 64 +-
.../radar/email/routing/test_summary.py | 24 +-
.../email/routing/test_timeseries_groups.py | 24 +-
.../radar/email/security/test_summary.py | 36 +-
.../email/security/test_timeseries_groups.py | 44 +-
.../radar/email/security/top/test_tlds.py | 4 +-
.../email/security/top/tlds/test_malicious.py | 4 +-
.../email/security/top/tlds/test_spam.py | 4 +-
.../email/security/top/tlds/test_spoof.py | 4 +-
.../api_resources/radar/entities/test_asns.py | 16 +-
.../radar/http/ases/test_bot_class.py | 4 +-
.../radar/http/ases/test_browser_family.py | 4 +-
.../radar/http/ases/test_device_type.py | 4 +-
.../radar/http/ases/test_http_method.py | 4 +-
.../radar/http/ases/test_http_protocol.py | 6 +-
.../radar/http/ases/test_ip_version.py | 4 +-
.../api_resources/radar/http/ases/test_os.py | 4 +-
.../radar/http/ases/test_tls_version.py | 4 +-
.../radar/http/locations/test_bot_class.py | 4 +-
.../http/locations/test_browser_family.py | 4 +-
.../radar/http/locations/test_device_type.py | 4 +-
.../radar/http/locations/test_http_method.py | 4 +-
.../http/locations/test_http_protocol.py | 6 +-
.../radar/http/locations/test_ip_version.py | 4 +-
.../radar/http/locations/test_os.py | 4 +-
.../radar/http/locations/test_tls_version.py | 4 +-
tests/api_resources/radar/http/test_ases.py | 4 +-
.../radar/http/test_locations.py | 4 +-
.../api_resources/radar/http/test_summary.py | 48 +-
.../radar/http/test_timeseries_groups.py | 58 +-
tests/api_resources/radar/http/test_top.py | 10 +-
.../radar/leaked_credentials/__init__.py | 1 +
.../radar/leaked_credentials/test_summary.py | 174 +
.../test_timeseries_groups.py | 182 +
.../api_resources/radar/netflows/test_top.py | 8 +-
.../radar/quality/speed/test_top.py | 8 +-
tests/api_resources/radar/quality/test_iqi.py | 8 +-
.../api_resources/radar/quality/test_speed.py | 8 +-
.../radar/ranking/test_domain.py | 4 +-
.../radar/ranking/test_internet_services.py | 245 +
.../radar/robots_txt/__init__.py | 1 +
.../radar/robots_txt/test_top.py | 95 +
.../radar/robots_txt/top/__init__.py | 1 +
.../radar/robots_txt/top/test_user_agents.py | 99 +
tests/api_resources/radar/test_as112.py | 10 +-
tests/api_resources/radar/test_bgp.py | 4 +-
tests/api_resources/radar/test_datasets.py | 3 +
tests/api_resources/radar/test_dns.py | 113 +
tests/api_resources/radar/test_http.py | 6 +-
tests/api_resources/radar/test_netflows.py | 8 +-
tests/api_resources/radar/test_ranking.py | 12 +-
.../radar/test_tcp_resets_timeouts.py | 8 +-
.../radar/verified_bots/test_top.py | 8 +-
.../rulesets/phases/test_versions.py | 16 +-
tests/api_resources/rulesets/test_phases.py | 38 +-
tests/api_resources/rulesets/test_rules.py | 412 +-
tests/api_resources/rulesets/test_versions.py | 24 +-
tests/api_resources/rum/test_site_info.py | 4 +
.../api_resources/security_center/__init__.py | 1 +
.../security_center/insights/__init__.py | 1 +
.../security_center/insights/test_class_.py | 154 +
.../security_center/insights/test_severity.py | 154 +
.../security_center/insights/test_type.py | 154 +
.../security_center/test_insights.py | 298 ++
tests/api_resources/snippets/test_rules.py | 18 +-
.../api_resources/ssl/test_recommendations.py | 20 +-
.../api_resources/stream/test_audio_tracks.py | 18 +-
tests/api_resources/stream/test_captions.py | 17 +-
tests/api_resources/stream/test_keys.py | 13 +-
tests/api_resources/test_abuse_reports.py | 1506 +++++-
tests/api_resources/test_ai.py | 32 +-
tests/api_resources/test_ai_gateway.py | 12 +
tests/api_resources/test_custom_hostnames.py | 24 +
.../api_resources/test_custom_nameservers.py | 42 +-
tests/api_resources/test_custom_pages.py | 429 ++
tests/api_resources/test_dns_firewall.py | 24 +-
tests/api_resources/test_filters.py | 47 +-
.../test_origin_ca_certificates.py | 28 +-
tests/api_resources/test_page_rules.py | 200 +-
tests/api_resources/test_rulesets.py | 112 +-
tests/api_resources/test_stream.py | 2 +
tests/api_resources/test_waiting_rooms.py | 64 +-
tests/api_resources/test_zaraz.py | 106 +
tests/api_resources/url_scanner/test_scans.py | 42 +-
.../api_resources/user/test_subscriptions.py | 22 +-
tests/api_resources/user/test_tokens.py | 94 +-
.../user/tokens/test_permission_groups.py | 13 +-
tests/api_resources/vectorize/test_indexes.py | 48 +-
.../api_resources/waiting_rooms/test_rules.py | 79 +-
.../content_lists/test_entries.py | 36 +-
.../workers/scripts/test_secrets.py | 481 ++
.../workers/scripts/test_versions.py | 4 +-
tests/api_resources/workers/test_scripts.py | 6 +-
.../namespaces/scripts/test_asset_upload.py | 10 +-
.../namespaces/scripts/test_bindings.py | 15 +-
.../namespaces/scripts/test_content.py | 12 +-
.../namespaces/scripts/test_secrets.py | 162 +-
.../namespaces/scripts/test_settings.py | 4 +-
.../dispatch/namespaces/scripts/test_tags.py | 14 +-
.../dispatch/namespaces/test_scripts.py | 6 +-
.../api_resources/workflows/test_instances.py | 127 +-
tests/api_resources/zaraz/__init__.py | 1 +
tests/api_resources/zaraz/history/__init__.py | 1 +
.../zaraz/history/test_configs.py | 106 +
tests/api_resources/zaraz/test_config.py | 782 +++
tests/api_resources/zaraz/test_default.py | 98 +
tests/api_resources/zaraz/test_export.py | 98 +
tests/api_resources/zaraz/test_history.py | 205 +
tests/api_resources/zaraz/test_publish.py | 113 +
tests/api_resources/zaraz/test_workflow.py | 98 +
.../applications/policy_tests/test_users.py | 31 +-
.../access/applications/test_cas.py | 32 +-
.../access/applications/test_policies.py | 40 +-
.../access/applications/test_policy_tests.py | 138 +-
.../applications/test_user_policy_checks.py | 8 +-
.../access/certificates/test_settings.py | 56 +-
.../access/infrastructure/test_targets.py | 12 +
.../zero_trust/access/logs/scim/__init__.py | 1 +
.../access/logs/scim/test_updates.py | 146 +
.../zero_trust/access/test_applications.py | 1362 ++++-
.../zero_trust/access/test_certificates.py | 40 +-
.../zero_trust/access/test_groups.py | 109 +-
.../zero_trust/access/test_service_tokens.py | 40 +-
.../zero_trust/access/test_users.py | 18 +-
.../devices/policies/custom/test_excludes.py | 32 +-
.../policies/custom/test_fallback_domains.py | 32 +-
.../devices/policies/custom/test_includes.py | 32 +-
.../devices/policies/default/test_excludes.py | 32 +-
.../policies/default/test_fallback_domains.py | 32 +-
.../devices/policies/default/test_includes.py | 32 +-
.../devices/policies/test_custom.py | 73 +-
.../devices/policies/test_default.py | 30 +
.../zero_trust/devices/test_networks.py | 17 +-
.../zero_trust/dex/commands/test_users.py | 114 -
.../zero_trust/dlp/datasets/test_upload.py | 20 +-
.../zero_trust/dlp/datasets/test_versions.py | 15 +-
.../dlp/datasets/versions/test_entries.py | 24 +-
.../zero_trust/dlp/email/test_rules.py | 44 +-
.../zero_trust/dlp/profiles/test_custom.py | 4 +
.../dlp/profiles/test_predefined.py | 2 +
.../gateway/test_proxy_endpoints.py | 18 +-
.../zero_trust/gateway/test_rules.py | 44 +
.../zero_trust/identity_providers/__init__.py | 1 +
.../identity_providers/scim/__init__.py | 1 +
.../identity_providers/scim/test_groups.py | 141 +
.../identity_providers/scim/test_users.py | 145 +
.../zero_trust/networks/routes/test_ips.py | 2 +
.../zero_trust/networks/subnets/__init__.py | 1 +
.../subnets/test_cloudflare_source.py | 128 +
.../zero_trust/networks/test_routes.py | 9 +-
.../zero_trust/networks/test_subnets.py | 135 +
.../zero_trust/test_identity_providers.py | 248 +-
.../zero_trust/test_organizations.py | 32 +-
tests/api_resources/zero_trust/test_seats.py | 17 +-
.../api_resources/zero_trust/test_tunnels.py | 426 +-
.../tunnels/cloudflared/__init__.py | 1 +
.../{ => cloudflared}/test_configurations.py | 46 +-
.../{ => cloudflared}/test_connections.py | 61 +-
.../{ => cloudflared}/test_connectors.py | 26 +-
.../{ => cloudflared}/test_management.py | 20 +-
.../tunnels/{ => cloudflared}/test_token.py | 20 +-
.../zero_trust/tunnels/test_cloudflared.py | 554 +++
.../zero_trust/tunnels/test_warp_connector.py | 100 +-
.../tunnels/warp_connector/__init__.py | 1 +
.../tunnels/warp_connector/test_token.py | 117 +
.../zones/test_custom_nameservers.py | 201 +-
tests/api_resources/zones/test_rate_plans.py | 15 +-
tests/api_resources/zones/test_settings.py | 2884 ++++++-----
tests/test_client.py | 75 +-
tests/test_models.py | 32 +
tests/test_transform.py | 11 +-
1930 files changed, 126730 insertions(+), 23072 deletions(-)
create mode 100644 src/cloudflare/resources/ai_gateway/urls.py
create mode 100644 src/cloudflare/resources/browser_rendering/__init__.py
create mode 100644 src/cloudflare/resources/browser_rendering/browser_rendering.py
create mode 100644 src/cloudflare/resources/browser_rendering/content.py
create mode 100644 src/cloudflare/resources/browser_rendering/pdf.py
create mode 100644 src/cloudflare/resources/browser_rendering/scrape.py
create mode 100644 src/cloudflare/resources/browser_rendering/screenshot.py
create mode 100644 src/cloudflare/resources/browser_rendering/snapshot.py
create mode 100644 src/cloudflare/resources/cloudforce_one/scans/__init__.py
create mode 100644 src/cloudflare/resources/cloudforce_one/scans/config.py
create mode 100644 src/cloudflare/resources/cloudforce_one/scans/results.py
create mode 100644 src/cloudflare/resources/cloudforce_one/scans/scans.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/__init__.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/attackers.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/categories.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/countries.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/crons.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/datasets.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/event_tags.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/indicator_types.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/insights.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/raw.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/relate.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/tags.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/target_industries.py
create mode 100644 src/cloudflare/resources/cloudforce_one/threat_events/threat_events.py
create mode 100644 src/cloudflare/resources/custom_hostnames/certificate_pack/__init__.py
create mode 100644 src/cloudflare/resources/custom_hostnames/certificate_pack/certificate_pack.py
create mode 100644 src/cloudflare/resources/custom_hostnames/certificate_pack/certificates.py
create mode 100644 src/cloudflare/resources/custom_pages.py
create mode 100644 src/cloudflare/resources/dns/settings/account/__init__.py
create mode 100644 src/cloudflare/resources/dns/settings/account/account.py
rename src/cloudflare/resources/dns/settings/{ => account}/views.py (96%)
create mode 100644 src/cloudflare/resources/dns/settings/zone.py
create mode 100644 src/cloudflare/resources/magic_cloud_networking/__init__.py
create mode 100644 src/cloudflare/resources/magic_cloud_networking/catalog_syncs/__init__.py
create mode 100644 src/cloudflare/resources/magic_cloud_networking/catalog_syncs/catalog_syncs.py
create mode 100644 src/cloudflare/resources/magic_cloud_networking/catalog_syncs/prebuilt_policies.py
create mode 100644 src/cloudflare/resources/magic_cloud_networking/cloud_integrations.py
create mode 100644 src/cloudflare/resources/magic_cloud_networking/magic_cloud_networking.py
create mode 100644 src/cloudflare/resources/magic_cloud_networking/on_ramps/__init__.py
create mode 100644 src/cloudflare/resources/magic_cloud_networking/on_ramps/address_spaces.py
create mode 100644 src/cloudflare/resources/magic_cloud_networking/on_ramps/on_ramps.py
create mode 100644 src/cloudflare/resources/magic_cloud_networking/resources.py
create mode 100644 src/cloudflare/resources/magic_network_monitoring/vpc_flows/__init__.py
create mode 100644 src/cloudflare/resources/magic_network_monitoring/vpc_flows/tokens.py
create mode 100644 src/cloudflare/resources/magic_network_monitoring/vpc_flows/vpc_flows.py
create mode 100644 src/cloudflare/resources/magic_transit/connectors/__init__.py
rename src/cloudflare/resources/magic_transit/{ => connectors}/connectors.py (86%)
create mode 100644 src/cloudflare/resources/magic_transit/connectors/events.py
create mode 100644 src/cloudflare/resources/magic_transit/connectors/snapshots.py
create mode 100644 src/cloudflare/resources/network_interconnects/__init__.py
create mode 100644 src/cloudflare/resources/network_interconnects/cnis.py
create mode 100644 src/cloudflare/resources/network_interconnects/interconnects.py
create mode 100644 src/cloudflare/resources/network_interconnects/network_interconnects.py
create mode 100644 src/cloudflare/resources/network_interconnects/settings.py
create mode 100644 src/cloudflare/resources/network_interconnects/slots.py
create mode 100644 src/cloudflare/resources/r2/buckets/event_notifications.py
delete mode 100644 src/cloudflare/resources/r2/buckets/event_notifications/__init__.py
delete mode 100644 src/cloudflare/resources/r2/buckets/event_notifications/configuration/__init__.py
delete mode 100644 src/cloudflare/resources/r2/buckets/event_notifications/configuration/configuration.py
delete mode 100644 src/cloudflare/resources/r2/buckets/event_notifications/event_notifications.py
rename src/cloudflare/resources/r2/buckets/{event_notifications/configuration/queues.py => locks.py} (67%)
create mode 100644 src/cloudflare/resources/r2/buckets/metrics.py
create mode 100644 src/cloudflare/resources/radar/ai/inference/__init__.py
create mode 100644 src/cloudflare/resources/radar/ai/inference/inference.py
create mode 100644 src/cloudflare/resources/radar/ai/inference/summary.py
create mode 100644 src/cloudflare/resources/radar/ai/inference/timeseries_groups/__init__.py
create mode 100644 src/cloudflare/resources/radar/ai/inference/timeseries_groups/summary.py
create mode 100644 src/cloudflare/resources/radar/ai/inference/timeseries_groups/timeseries_groups.py
create mode 100644 src/cloudflare/resources/radar/dns/summary.py
create mode 100644 src/cloudflare/resources/radar/dns/timeseries_groups.py
create mode 100644 src/cloudflare/resources/radar/leaked_credentials/__init__.py
create mode 100644 src/cloudflare/resources/radar/leaked_credentials/leaked_credentials.py
create mode 100644 src/cloudflare/resources/radar/leaked_credentials/summary.py
create mode 100644 src/cloudflare/resources/radar/leaked_credentials/timeseries_groups.py
create mode 100644 src/cloudflare/resources/radar/ranking/internet_services.py
create mode 100644 src/cloudflare/resources/radar/robots_txt/__init__.py
create mode 100644 src/cloudflare/resources/radar/robots_txt/robots_txt.py
create mode 100644 src/cloudflare/resources/radar/robots_txt/top/__init__.py
create mode 100644 src/cloudflare/resources/radar/robots_txt/top/top.py
create mode 100644 src/cloudflare/resources/radar/robots_txt/top/user_agents.py
create mode 100644 src/cloudflare/resources/security_center/__init__.py
create mode 100644 src/cloudflare/resources/security_center/insights/__init__.py
create mode 100644 src/cloudflare/resources/security_center/insights/class_.py
create mode 100644 src/cloudflare/resources/security_center/insights/insights.py
create mode 100644 src/cloudflare/resources/security_center/insights/severity.py
create mode 100644 src/cloudflare/resources/security_center/insights/type.py
create mode 100644 src/cloudflare/resources/security_center/security_center.py
create mode 100644 src/cloudflare/resources/workers/scripts/secrets.py
create mode 100644 src/cloudflare/resources/zaraz/__init__.py
create mode 100644 src/cloudflare/resources/zaraz/config.py
create mode 100644 src/cloudflare/resources/zaraz/default.py
create mode 100644 src/cloudflare/resources/zaraz/export.py
create mode 100644 src/cloudflare/resources/zaraz/history/__init__.py
create mode 100644 src/cloudflare/resources/zaraz/history/configs.py
create mode 100644 src/cloudflare/resources/zaraz/history/history.py
create mode 100644 src/cloudflare/resources/zaraz/publish.py
create mode 100644 src/cloudflare/resources/zaraz/workflow.py
create mode 100644 src/cloudflare/resources/zaraz/zaraz.py
create mode 100644 src/cloudflare/resources/zero_trust/access/logs/scim/__init__.py
create mode 100644 src/cloudflare/resources/zero_trust/access/logs/scim/scim.py
create mode 100644 src/cloudflare/resources/zero_trust/access/logs/scim/updates.py
create mode 100644 src/cloudflare/resources/zero_trust/identity_providers/__init__.py
rename src/cloudflare/resources/zero_trust/{ => identity_providers}/identity_providers.py (98%)
create mode 100644 src/cloudflare/resources/zero_trust/identity_providers/scim/__init__.py
create mode 100644 src/cloudflare/resources/zero_trust/identity_providers/scim/groups.py
create mode 100644 src/cloudflare/resources/zero_trust/identity_providers/scim/scim.py
rename src/cloudflare/resources/zero_trust/{dex/commands => identity_providers/scim}/users.py (58%)
create mode 100644 src/cloudflare/resources/zero_trust/networks/subnets/__init__.py
create mode 100644 src/cloudflare/resources/zero_trust/networks/subnets/cloudflare_source.py
create mode 100644 src/cloudflare/resources/zero_trust/networks/subnets/subnets.py
create mode 100644 src/cloudflare/resources/zero_trust/tunnels/cloudflared/__init__.py
create mode 100644 src/cloudflare/resources/zero_trust/tunnels/cloudflared/cloudflared.py
rename src/cloudflare/resources/zero_trust/tunnels/{ => cloudflared}/configurations.py (94%)
rename src/cloudflare/resources/zero_trust/tunnels/{ => cloudflared}/connections.py (88%)
rename src/cloudflare/resources/zero_trust/tunnels/{ => cloudflared}/connectors.py (94%)
rename src/cloudflare/resources/zero_trust/tunnels/{ => cloudflared}/management.py (92%)
rename src/cloudflare/resources/zero_trust/tunnels/{ => cloudflared}/token.py (93%)
create mode 100644 src/cloudflare/resources/zero_trust/tunnels/warp_connector/__init__.py
create mode 100644 src/cloudflare/resources/zero_trust/tunnels/warp_connector/token.py
rename src/cloudflare/resources/zero_trust/tunnels/{ => warp_connector}/warp_connector.py (84%)
create mode 100644 src/cloudflare/types/accounts/role_list_params.py
delete mode 100644 src/cloudflare/types/accounts/subscription_get_response.py
create mode 100644 src/cloudflare/types/accounts/tokens/permission_group_get_response.py
create mode 100644 src/cloudflare/types/accounts/tokens/permission_group_list_response.py
rename src/cloudflare/types/ai_gateway/{evaluation_type_get_params.py => evaluation_type_list_params.py} (76%)
rename src/cloudflare/types/ai_gateway/{evaluation_type_get_response.py => evaluation_type_list_response.py} (54%)
rename src/cloudflare/types/{zero_trust/tunnels/warp_connector_token_response.py => ai_gateway/url_get_response.py} (60%)
delete mode 100644 src/cloudflare/types/alerting/destinations/pagerduty_get_response.py
create mode 100644 src/cloudflare/types/browser_rendering/__init__.py
create mode 100644 src/cloudflare/types/browser_rendering/content_create_params.py
rename src/cloudflare/types/{magic_transit/sites/lan_create_response.py => browser_rendering/content_create_response.py} (52%)
create mode 100644 src/cloudflare/types/browser_rendering/pdf_create_params.py
create mode 100644 src/cloudflare/types/browser_rendering/scrape_create_params.py
create mode 100644 src/cloudflare/types/browser_rendering/scrape_create_response.py
create mode 100644 src/cloudflare/types/browser_rendering/screenshot_create_params.py
create mode 100644 src/cloudflare/types/browser_rendering/screenshot_create_response.py
create mode 100644 src/cloudflare/types/browser_rendering/snapshot_create_params.py
create mode 100644 src/cloudflare/types/browser_rendering/snapshot_create_response.py
rename src/cloudflare/types/{magic_transit/sites/wan_create_response.py => cloudforce_one/request_types_response.py} (52%)
delete mode 100644 src/cloudflare/types/cloudforce_one/requests/message_get_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/scans/__init__.py
create mode 100644 src/cloudflare/types/cloudforce_one/scans/config_create_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/scans/config_create_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/scans/config_edit_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/scans/config_edit_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/scans/config_list_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/scans/result_get_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/scans/scan_result.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_event_bulk_create_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_event_bulk_create_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_event_create_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_event_create_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_event_delete_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_event_edit_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_event_edit_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_event_get_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/__init__.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/attacker_list_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/category_create_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/category_create_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/category_delete_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/category_edit_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/category_edit_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/category_get_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/category_list_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/country_list_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/cron_edit_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/cron_list_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/dataset_create_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/dataset_create_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/dataset_edit_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/dataset_edit_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/dataset_get_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/dataset_list_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/dataset_raw_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/event_tag_create_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/event_tag_create_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/event_tag_delete_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/indicator_type_list_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/insight_create_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/insight_create_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/insight_delete_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/insight_edit_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/insight_edit_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/insight_get_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/raw_edit_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/raw_edit_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/raw_get_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/relate_delete_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/tag_create_params.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/tag_create_response.py
create mode 100644 src/cloudflare/types/cloudforce_one/threat_events/target_industry_list_response.py
delete mode 100644 src/cloudflare/types/custom_certificates/prioritize_update_response.py
create mode 100644 src/cloudflare/types/custom_hostnames/certificate_pack/__init__.py
create mode 100644 src/cloudflare/types/custom_hostnames/certificate_pack/certificate_delete_response.py
create mode 100644 src/cloudflare/types/custom_hostnames/certificate_pack/certificate_update_params.py
create mode 100644 src/cloudflare/types/custom_hostnames/certificate_pack/certificate_update_response.py
delete mode 100644 src/cloudflare/types/custom_nameservers/custom_nameserver_get_response.py
create mode 100644 src/cloudflare/types/custom_pages/__init__.py
create mode 100644 src/cloudflare/types/custom_pages/custom_page_get_response.py
create mode 100644 src/cloudflare/types/custom_pages/custom_page_update_params.py
create mode 100644 src/cloudflare/types/custom_pages/custom_page_update_response.py
delete mode 100644 src/cloudflare/types/d1/database_query_response.py
delete mode 100644 src/cloudflare/types/diagnostics/traceroute_create_response.py
create mode 100644 src/cloudflare/types/dns/settings/account/__init__.py
rename src/cloudflare/types/dns/settings/{ => account}/view_create_params.py (100%)
rename src/cloudflare/types/dns/settings/{ => account}/view_create_response.py (93%)
rename src/cloudflare/types/dns/settings/{ => account}/view_delete_response.py (87%)
rename src/cloudflare/types/dns/settings/{ => account}/view_edit_params.py (100%)
rename src/cloudflare/types/dns/settings/{ => account}/view_edit_response.py (93%)
rename src/cloudflare/types/dns/settings/{ => account}/view_get_response.py (93%)
rename src/cloudflare/types/dns/settings/{ => account}/view_list_params.py (100%)
rename src/cloudflare/types/dns/settings/{ => account}/view_list_response.py (93%)
rename src/cloudflare/types/dns/{setting_edit_params.py => settings/account_edit_params.py} (85%)
rename src/cloudflare/types/dns/{setting_get_response.py => settings/account_edit_response.py} (85%)
rename src/cloudflare/types/dns/{setting_edit_response.py => settings/account_get_response.py} (85%)
create mode 100644 src/cloudflare/types/dns/settings/zone_edit_params.py
create mode 100644 src/cloudflare/types/dns/settings/zone_edit_response.py
create mode 100644 src/cloudflare/types/dns/settings/zone_get_response.py
delete mode 100644 src/cloudflare/types/email_routing/dns_delete_response.py
delete mode 100644 src/cloudflare/types/filters/filter_bulk_delete_response.py
delete mode 100644 src/cloudflare/types/filters/filter_bulk_update_response.py
delete mode 100644 src/cloudflare/types/filters/filter_create_response.py
delete mode 100644 src/cloudflare/types/firewall/rule_bulk_delete_response.py
delete mode 100644 src/cloudflare/types/firewall/rule_bulk_edit_response.py
delete mode 100644 src/cloudflare/types/firewall/rule_bulk_update_response.py
delete mode 100644 src/cloudflare/types/firewall/rule_create_response.py
delete mode 100644 src/cloudflare/types/firewall/rule_edit_response.py
create mode 100644 src/cloudflare/types/iam/permission_group_list_response.py
create mode 100644 src/cloudflare/types/iam/resource_group_list_response.py
delete mode 100644 src/cloudflare/types/intel/ip_list_get_response.py
delete mode 100644 src/cloudflare/types/load_balancers/pool_bulk_edit_response.py
rename src/cloudflare/types/load_balancers/{search_get_params.py => search_list_params.py} (84%)
rename src/cloudflare/types/load_balancers/{search_get_response.py => search_list_response.py} (91%)
delete mode 100644 src/cloudflare/types/logpush/datasets/job_get_response.py
delete mode 100644 src/cloudflare/types/logpush/edge_get_response.py
create mode 100644 src/cloudflare/types/logpush/validate_destination_exists_params.py
create mode 100644 src/cloudflare/types/logpush/validate_destination_exists_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/__init__.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_sync_create_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_sync_create_response.py
rename src/cloudflare/types/{zero_trust/dex/commands/user_list_params.py => magic_cloud_networking/catalog_sync_delete_params.py} (61%)
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_sync_delete_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_sync_edit_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_sync_edit_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_sync_get_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_sync_list_response.py
rename src/cloudflare/types/{zero_trust/seat_edit_response.py => magic_cloud_networking/catalog_sync_refresh_response.py} (51%)
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_sync_update_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_sync_update_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_syncs/__init__.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_syncs/prebuilt_policy_list_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/catalog_syncs/prebuilt_policy_list_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_create_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_create_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_delete_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_discover_all_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_discover_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_discover_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_edit_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_edit_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_get_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_get_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_initial_setup_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_list_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_list_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_update_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/cloud_integration_update_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_apply_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_create_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_create_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_delete_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_delete_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_edit_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_edit_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_get_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_get_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_list_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_list_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_plan_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_update_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramp_update_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramps/__init__.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramps/address_space_edit_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramps/address_space_edit_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramps/address_space_list_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramps/address_space_update_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/on_ramps/address_space_update_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/resource_export_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/resource_get_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/resource_get_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/resource_list_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/resource_list_response.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/resource_policy_preview_params.py
create mode 100644 src/cloudflare/types/magic_cloud_networking/resource_policy_preview_response.py
rename src/cloudflare/types/{r2/buckets/event_notifications => magic_network_monitoring/vpc_flows}/__init__.py (56%)
create mode 100644 src/cloudflare/types/magic_network_monitoring/vpc_flows/token_create_response.py
create mode 100644 src/cloudflare/types/magic_transit/connectors/__init__.py
create mode 100644 src/cloudflare/types/magic_transit/connectors/event_get_response.py
create mode 100644 src/cloudflare/types/magic_transit/connectors/event_list_params.py
create mode 100644 src/cloudflare/types/magic_transit/connectors/event_list_response.py
create mode 100644 src/cloudflare/types/magic_transit/connectors/snapshot_get_response.py
create mode 100644 src/cloudflare/types/magic_transit/connectors/snapshot_list_params.py
create mode 100644 src/cloudflare/types/magic_transit/connectors/snapshot_list_response.py
delete mode 100644 src/cloudflare/types/magic_transit/pcaps/ownership_get_response.py
delete mode 100644 src/cloudflare/types/mtls_certificates/association_get_response.py
create mode 100644 src/cloudflare/types/network_interconnects/__init__.py
create mode 100644 src/cloudflare/types/network_interconnects/cni_create_params.py
create mode 100644 src/cloudflare/types/network_interconnects/cni_create_response.py
create mode 100644 src/cloudflare/types/network_interconnects/cni_get_response.py
create mode 100644 src/cloudflare/types/network_interconnects/cni_list_params.py
create mode 100644 src/cloudflare/types/network_interconnects/cni_list_response.py
create mode 100644 src/cloudflare/types/network_interconnects/cni_update_params.py
create mode 100644 src/cloudflare/types/network_interconnects/cni_update_response.py
create mode 100644 src/cloudflare/types/network_interconnects/interconnect_create_params.py
create mode 100644 src/cloudflare/types/network_interconnects/interconnect_create_response.py
create mode 100644 src/cloudflare/types/network_interconnects/interconnect_get_response.py
create mode 100644 src/cloudflare/types/network_interconnects/interconnect_list_params.py
create mode 100644 src/cloudflare/types/network_interconnects/interconnect_list_response.py
create mode 100644 src/cloudflare/types/network_interconnects/interconnect_status_response.py
create mode 100644 src/cloudflare/types/network_interconnects/setting_get_response.py
create mode 100644 src/cloudflare/types/network_interconnects/setting_update_params.py
create mode 100644 src/cloudflare/types/network_interconnects/setting_update_response.py
create mode 100644 src/cloudflare/types/network_interconnects/slot_get_response.py
create mode 100644 src/cloudflare/types/network_interconnects/slot_list_params.py
create mode 100644 src/cloudflare/types/network_interconnects/slot_list_response.py
delete mode 100644 src/cloudflare/types/queues/consumer_get_response.py
rename src/cloudflare/types/r2/buckets/{event_notifications/configuration_get_response.py => event_notification_get_response.py} (90%)
rename src/cloudflare/types/r2/buckets/{event_notifications/configuration/queue_update_params.py => event_notification_update_params.py} (88%)
create mode 100644 src/cloudflare/types/r2/buckets/lock_get_response.py
create mode 100644 src/cloudflare/types/r2/buckets/lock_update_params.py
create mode 100644 src/cloudflare/types/r2/buckets/metric_list_response.py
create mode 100644 src/cloudflare/types/radar/ai/inference/__init__.py
create mode 100644 src/cloudflare/types/radar/ai/inference/summary_model_params.py
create mode 100644 src/cloudflare/types/radar/ai/inference/summary_model_response.py
create mode 100644 src/cloudflare/types/radar/ai/inference/summary_task_params.py
create mode 100644 src/cloudflare/types/radar/ai/inference/summary_task_response.py
create mode 100644 src/cloudflare/types/radar/ai/inference/timeseries_groups/__init__.py
rename src/cloudflare/types/radar/{attacks/layer7/timeseries_group_get_params.py => ai/inference/timeseries_groups/summary_model_params.py} (50%)
create mode 100644 src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_model_response.py
rename src/cloudflare/types/radar/{attacks/layer3/timeseries_group_get_params.py => ai/inference/timeseries_groups/summary_task_params.py} (50%)
create mode 100644 src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_task_response.py
delete mode 100644 src/cloudflare/types/radar/attacks/layer3/summary_get_params.py
delete mode 100644 src/cloudflare/types/radar/attacks/layer7/summary_get_params.py
create mode 100644 src/cloudflare/types/radar/dns/summary_cache_hit_params.py
create mode 100644 src/cloudflare/types/radar/dns/summary_cache_hit_response.py
create mode 100644 src/cloudflare/types/radar/dns/summary_dnssec_aware_params.py
create mode 100644 src/cloudflare/types/radar/dns/summary_dnssec_aware_response.py
create mode 100644 src/cloudflare/types/radar/dns/summary_dnssec_e2e_params.py
create mode 100644 src/cloudflare/types/radar/dns/summary_dnssec_e2e_response.py
create mode 100644 src/cloudflare/types/radar/dns/summary_dnssec_params.py
create mode 100644 src/cloudflare/types/radar/dns/summary_dnssec_response.py
create mode 100644 src/cloudflare/types/radar/dns/summary_ip_version_params.py
create mode 100644 src/cloudflare/types/radar/dns/summary_ip_version_response.py
create mode 100644 src/cloudflare/types/radar/dns/summary_matching_answer_params.py
create mode 100644 src/cloudflare/types/radar/dns/summary_matching_answer_response.py
create mode 100644 src/cloudflare/types/radar/dns/summary_protocol_params.py
create mode 100644 src/cloudflare/types/radar/dns/summary_protocol_response.py
create mode 100644 src/cloudflare/types/radar/dns/summary_query_type_params.py
create mode 100644 src/cloudflare/types/radar/dns/summary_query_type_response.py
create mode 100644 src/cloudflare/types/radar/dns/summary_response_code_params.py
create mode 100644 src/cloudflare/types/radar/dns/summary_response_code_response.py
create mode 100644 src/cloudflare/types/radar/dns/summary_response_ttl_params.py
rename src/cloudflare/types/radar/{attacks/layer7/summary_get_response.py => dns/summary_response_ttl_response.py} (75%)
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_cache_hit_params.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_cache_hit_response.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_dnssec_aware_params.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_dnssec_aware_response.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_dnssec_e2e_params.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_dnssec_e2e_response.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_dnssec_params.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_dnssec_response.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_ip_version_params.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_ip_version_response.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_matching_answer_params.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_matching_answer_response.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_protocol_params.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_protocol_response.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_query_type_params.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_query_type_response.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_response_code_params.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_response_code_response.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_response_ttl_params.py
create mode 100644 src/cloudflare/types/radar/dns/timeseries_group_response_ttl_response.py
create mode 100644 src/cloudflare/types/radar/dns_timeseries_params.py
rename src/cloudflare/types/radar/{attacks/layer3/timeseries_group_get_response.py => dns_timeseries_response.py} (87%)
create mode 100644 src/cloudflare/types/radar/leaked_credentials/__init__.py
create mode 100644 src/cloudflare/types/radar/leaked_credentials/summary_bot_class_params.py
rename src/cloudflare/types/radar/{attacks/layer3/summary_get_response.py => leaked_credentials/summary_bot_class_response.py} (86%)
create mode 100644 src/cloudflare/types/radar/leaked_credentials/summary_compromised_params.py
create mode 100644 src/cloudflare/types/radar/leaked_credentials/summary_compromised_response.py
create mode 100644 src/cloudflare/types/radar/leaked_credentials/timeseries_group_bot_class_params.py
create mode 100644 src/cloudflare/types/radar/leaked_credentials/timeseries_group_bot_class_response.py
create mode 100644 src/cloudflare/types/radar/leaked_credentials/timeseries_group_compromised_params.py
create mode 100644 src/cloudflare/types/radar/leaked_credentials/timeseries_group_compromised_response.py
create mode 100644 src/cloudflare/types/radar/ranking/internet_service_categories_params.py
create mode 100644 src/cloudflare/types/radar/ranking/internet_service_categories_response.py
create mode 100644 src/cloudflare/types/radar/ranking/internet_service_timeseries_groups_params.py
create mode 100644 src/cloudflare/types/radar/ranking/internet_service_timeseries_groups_response.py
create mode 100644 src/cloudflare/types/radar/ranking/internet_service_top_params.py
create mode 100644 src/cloudflare/types/radar/ranking/internet_service_top_response.py
create mode 100644 src/cloudflare/types/radar/robots_txt/__init__.py
create mode 100644 src/cloudflare/types/radar/robots_txt/top/__init__.py
create mode 100644 src/cloudflare/types/radar/robots_txt/top/user_agent_directive_params.py
rename src/cloudflare/types/radar/{attacks/layer7/timeseries_group_get_response.py => robots_txt/top/user_agent_directive_response.py} (66%)
create mode 100644 src/cloudflare/types/radar/robots_txt/top_domain_categories_params.py
create mode 100644 src/cloudflare/types/radar/robots_txt/top_domain_categories_response.py
create mode 100644 src/cloudflare/types/rulesets/ruleset_list_params.py
create mode 100644 src/cloudflare/types/security_center/__init__.py
create mode 100644 src/cloudflare/types/security_center/insight_dismiss_params.py
create mode 100644 src/cloudflare/types/security_center/insight_dismiss_response.py
create mode 100644 src/cloudflare/types/security_center/insight_list_params.py
create mode 100644 src/cloudflare/types/security_center/insight_list_response.py
create mode 100644 src/cloudflare/types/security_center/insights/__init__.py
create mode 100644 src/cloudflare/types/security_center/insights/class_get_params.py
create mode 100644 src/cloudflare/types/security_center/insights/class_get_response.py
create mode 100644 src/cloudflare/types/security_center/insights/severity_get_params.py
create mode 100644 src/cloudflare/types/security_center/insights/severity_get_response.py
create mode 100644 src/cloudflare/types/security_center/insights/type_get_params.py
create mode 100644 src/cloudflare/types/security_center/insights/type_get_response.py
delete mode 100644 src/cloudflare/types/stream/audio_track_get_response.py
delete mode 100644 src/cloudflare/types/stream/caption_get_response.py
delete mode 100644 src/cloudflare/types/user/subscription_get_response.py
create mode 100644 src/cloudflare/types/user/tokens/permission_group_list_response.py
delete mode 100644 src/cloudflare/types/waiting_rooms/rule_create_response.py
delete mode 100644 src/cloudflare/types/waiting_rooms/rule_delete_response.py
delete mode 100644 src/cloudflare/types/waiting_rooms/rule_edit_response.py
delete mode 100644 src/cloudflare/types/waiting_rooms/rule_get_response.py
delete mode 100644 src/cloudflare/types/waiting_rooms/rule_update_response.py
create mode 100644 src/cloudflare/types/workers/scripts/secret_get_response.py
create mode 100644 src/cloudflare/types/workers/scripts/secret_list_response.py
create mode 100644 src/cloudflare/types/workers/scripts/secret_update_params.py
create mode 100644 src/cloudflare/types/workers/scripts/secret_update_response.py
create mode 100644 src/cloudflare/types/workflows/instance_bulk_params.py
create mode 100644 src/cloudflare/types/workflows/instance_bulk_response.py
create mode 100644 src/cloudflare/types/zaraz/__init__.py
create mode 100644 src/cloudflare/types/zaraz/button_text_translation.py
create mode 100644 src/cloudflare/types/zaraz/button_text_translation_param.py
create mode 100644 src/cloudflare/types/zaraz/config_update_params.py
create mode 100644 src/cloudflare/types/zaraz/configuration.py
create mode 100644 src/cloudflare/types/zaraz/history/__init__.py
create mode 100644 src/cloudflare/types/zaraz/history/config_get_params.py
create mode 100644 src/cloudflare/types/zaraz/history/config_get_response.py
create mode 100644 src/cloudflare/types/zaraz/history_list_params.py
create mode 100644 src/cloudflare/types/zaraz/history_list_response.py
create mode 100644 src/cloudflare/types/zaraz/history_update_params.py
create mode 100644 src/cloudflare/types/zaraz/neo_event.py
create mode 100644 src/cloudflare/types/zaraz/neo_event_param.py
rename src/cloudflare/types/{firewall/rule_get_params.py => zaraz/publish_create_params.py} (61%)
create mode 100644 src/cloudflare/types/zaraz/publish_create_response.py
create mode 100644 src/cloudflare/types/zaraz/workflow.py
create mode 100644 src/cloudflare/types/zaraz/zaraz_update_params.py
rename src/cloudflare/types/zero_trust/{ => access/applications}/access_device_posture_rule.py (90%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/access_device_posture_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/access_rule.py (87%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/access_rule_param.py (88%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/any_valid_service_token_rule.py (91%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/any_valid_service_token_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/authentication_method_rule.py (91%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/authentication_method_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/azure_group_rule.py (92%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/azure_group_rule_param.py (93%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/certificate_rule.py (87%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/certificate_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/country_rule.py (88%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/country_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/domain_rule.py (88%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/domain_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/email_list_rule.py (89%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/email_list_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/email_rule.py (87%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/email_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/everyone_rule.py (88%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/everyone_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/external_evaluation_rule.py (93%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/external_evaluation_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/github_organization_rule.py (94%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/github_organization_rule_param.py (94%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/group_rule.py (88%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/group_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/gsuite_group_rule.py (91%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/gsuite_group_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/ip_list_rule.py (88%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/ip_list_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/ip_rule.py (86%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/ip_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/okta_group_rule.py (90%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/okta_group_rule_param.py (100%)
create mode 100644 src/cloudflare/types/zero_trust/access/applications/policy_test_get_params.py
create mode 100644 src/cloudflare/types/zero_trust/access/applications/policy_tests/user_list_params.py
rename src/cloudflare/types/zero_trust/{ => access/applications}/saml_group_rule.py (92%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/saml_group_rule_param.py (100%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/service_token_rule.py (89%)
rename src/cloudflare/types/zero_trust/{ => access/applications}/service_token_rule_param.py (100%)
delete mode 100644 src/cloudflare/types/zero_trust/access/certificates/setting_get_response.py
delete mode 100644 src/cloudflare/types/zero_trust/access/certificates/setting_update_response.py
create mode 100644 src/cloudflare/types/zero_trust/access/group_create_response.py
create mode 100644 src/cloudflare/types/zero_trust/access/group_get_response.py
create mode 100644 src/cloudflare/types/zero_trust/access/group_list_response.py
create mode 100644 src/cloudflare/types/zero_trust/access/group_update_response.py
rename src/cloudflare/types/zero_trust/access/logs/{access_requests.py => access_request.py} (94%)
create mode 100644 src/cloudflare/types/zero_trust/access/logs/scim/__init__.py
create mode 100644 src/cloudflare/types/zero_trust/access/logs/scim/update_list_params.py
create mode 100644 src/cloudflare/types/zero_trust/access/logs/scim/update_list_response.py
create mode 100644 src/cloudflare/types/zero_trust/access/user_list_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/network_delete_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/custom/exclude_get_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/custom/exclude_update_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/custom/fallback_domain_get_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/custom/fallback_domain_update_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/custom/include_get_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/custom/include_update_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/custom_delete_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/default/exclude_get_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/default/exclude_update_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/default/fallback_domain_get_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/default/fallback_domain_update_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/default/include_get_response.py
delete mode 100644 src/cloudflare/types/zero_trust/devices/policies/default/include_update_response.py
delete mode 100644 src/cloudflare/types/zero_trust/dex/commands/user_list_response.py
delete mode 100644 src/cloudflare/types/zero_trust/gateway/proxy_endpoint_get_response.py
create mode 100644 src/cloudflare/types/zero_trust/identity_providers/__init__.py
create mode 100644 src/cloudflare/types/zero_trust/identity_providers/scim/__init__.py
create mode 100644 src/cloudflare/types/zero_trust/identity_providers/scim/group_list_params.py
create mode 100644 src/cloudflare/types/zero_trust/identity_providers/scim/user_list_params.py
create mode 100644 src/cloudflare/types/zero_trust/networks/subnet_list_params.py
create mode 100644 src/cloudflare/types/zero_trust/networks/subnet_list_response.py
create mode 100644 src/cloudflare/types/zero_trust/networks/subnets/__init__.py
create mode 100644 src/cloudflare/types/zero_trust/networks/subnets/cloudflare_source_update_params.py
create mode 100644 src/cloudflare/types/zero_trust/networks/subnets/cloudflare_source_update_response.py
create mode 100644 src/cloudflare/types/zero_trust/tunnels/cloudflared/__init__.py
rename src/cloudflare/types/zero_trust/tunnels/{ => cloudflared}/client.py (98%)
rename src/cloudflare/types/zero_trust/tunnels/{ => cloudflared}/configuration_get_response.py (99%)
rename src/cloudflare/types/zero_trust/tunnels/{ => cloudflared}/configuration_update_params.py (99%)
rename src/cloudflare/types/zero_trust/tunnels/{ => cloudflared}/configuration_update_response.py (99%)
rename src/cloudflare/types/zero_trust/tunnels/{ => cloudflared}/connection_delete_params.py (100%)
rename src/cloudflare/types/zero_trust/tunnels/{ => cloudflared}/management_create_params.py (100%)
rename src/cloudflare/types/zero_trust/tunnels/{ => cloudflared}/management_create_response.py (100%)
rename src/cloudflare/types/zero_trust/tunnels/{ => cloudflared}/token_get_response.py (100%)
rename src/cloudflare/types/zero_trust/{tunnel_create_params.py => tunnels/cloudflared_create_params.py} (88%)
rename src/cloudflare/types/zero_trust/{tunnel_create_response.py => tunnels/cloudflared_create_response.py} (89%)
create mode 100644 src/cloudflare/types/zero_trust/tunnels/cloudflared_delete_response.py
rename src/cloudflare/types/zero_trust/{tunnel_edit_params.py => tunnels/cloudflared_edit_params.py} (83%)
rename src/cloudflare/types/zero_trust/{tunnel_delete_response.py => tunnels/cloudflared_edit_response.py} (89%)
rename src/cloudflare/types/zero_trust/{tunnel_edit_response.py => tunnels/cloudflared_get_response.py} (89%)
create mode 100644 src/cloudflare/types/zero_trust/tunnels/cloudflared_list_params.py
rename src/cloudflare/types/zero_trust/{tunnel_get_response.py => tunnels/cloudflared_list_response.py} (89%)
delete mode 100644 src/cloudflare/types/zero_trust/tunnels/connection_get_response.py
rename src/cloudflare/types/{r2/buckets/event_notifications/configuration => zero_trust/tunnels/warp_connector}/__init__.py (63%)
create mode 100644 src/cloudflare/types/zero_trust/tunnels/warp_connector/token_get_response.py
create mode 100644 tests/api_resources/ai_gateway/test_urls.py
rename tests/api_resources/{r2/buckets/event_notifications => browser_rendering}/__init__.py (100%)
create mode 100644 tests/api_resources/browser_rendering/test_content.py
create mode 100644 tests/api_resources/browser_rendering/test_pdf.py
create mode 100644 tests/api_resources/browser_rendering/test_scrape.py
create mode 100644 tests/api_resources/browser_rendering/test_screenshot.py
create mode 100644 tests/api_resources/browser_rendering/test_snapshot.py
rename tests/api_resources/{r2/buckets/event_notifications/configuration => cloudforce_one/scans}/__init__.py (100%)
create mode 100644 tests/api_resources/cloudforce_one/scans/test_config.py
create mode 100644 tests/api_resources/cloudforce_one/scans/test_results.py
create mode 100644 tests/api_resources/cloudforce_one/test_threat_events.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/__init__.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_attackers.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_categories.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_countries.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_crons.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_datasets.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_event_tags.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_indicator_types.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_insights.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_raw.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_relate.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_tags.py
create mode 100644 tests/api_resources/cloudforce_one/threat_events/test_target_industries.py
create mode 100644 tests/api_resources/custom_hostnames/certificate_pack/__init__.py
create mode 100644 tests/api_resources/custom_hostnames/certificate_pack/test_certificates.py
create mode 100644 tests/api_resources/dns/settings/account/__init__.py
rename tests/api_resources/dns/settings/{ => account}/test_views.py (84%)
rename tests/api_resources/dns/{test_settings.py => settings/test_account.py} (57%)
create mode 100644 tests/api_resources/dns/settings/test_zone.py
create mode 100644 tests/api_resources/magic_cloud_networking/__init__.py
create mode 100644 tests/api_resources/magic_cloud_networking/catalog_syncs/__init__.py
create mode 100644 tests/api_resources/magic_cloud_networking/catalog_syncs/test_prebuilt_policies.py
create mode 100644 tests/api_resources/magic_cloud_networking/on_ramps/__init__.py
create mode 100644 tests/api_resources/magic_cloud_networking/on_ramps/test_address_spaces.py
create mode 100644 tests/api_resources/magic_cloud_networking/test_catalog_syncs.py
create mode 100644 tests/api_resources/magic_cloud_networking/test_cloud_integrations.py
create mode 100644 tests/api_resources/magic_cloud_networking/test_on_ramps.py
create mode 100644 tests/api_resources/magic_cloud_networking/test_resources.py
create mode 100644 tests/api_resources/magic_network_monitoring/vpc_flows/__init__.py
create mode 100644 tests/api_resources/magic_network_monitoring/vpc_flows/test_tokens.py
create mode 100644 tests/api_resources/magic_transit/connectors/__init__.py
create mode 100644 tests/api_resources/magic_transit/connectors/test_events.py
create mode 100644 tests/api_resources/magic_transit/connectors/test_snapshots.py
create mode 100644 tests/api_resources/network_interconnects/__init__.py
create mode 100644 tests/api_resources/network_interconnects/test_cnis.py
create mode 100644 tests/api_resources/network_interconnects/test_interconnects.py
create mode 100644 tests/api_resources/network_interconnects/test_settings.py
create mode 100644 tests/api_resources/network_interconnects/test_slots.py
delete mode 100644 tests/api_resources/r2/buckets/event_notifications/test_configuration.py
rename tests/api_resources/r2/buckets/{event_notifications/configuration/test_queues.py => test_event_notifications.py} (53%)
create mode 100644 tests/api_resources/r2/buckets/test_locks.py
create mode 100644 tests/api_resources/r2/buckets/test_metrics.py
create mode 100644 tests/api_resources/radar/ai/inference/__init__.py
create mode 100644 tests/api_resources/radar/ai/inference/test_summary.py
create mode 100644 tests/api_resources/radar/ai/inference/timeseries_groups/__init__.py
create mode 100644 tests/api_resources/radar/ai/inference/timeseries_groups/test_summary.py
create mode 100644 tests/api_resources/radar/dns/test_summary.py
create mode 100644 tests/api_resources/radar/dns/test_timeseries_groups.py
create mode 100644 tests/api_resources/radar/leaked_credentials/__init__.py
create mode 100644 tests/api_resources/radar/leaked_credentials/test_summary.py
create mode 100644 tests/api_resources/radar/leaked_credentials/test_timeseries_groups.py
create mode 100644 tests/api_resources/radar/ranking/test_internet_services.py
create mode 100644 tests/api_resources/radar/robots_txt/__init__.py
create mode 100644 tests/api_resources/radar/robots_txt/test_top.py
create mode 100644 tests/api_resources/radar/robots_txt/top/__init__.py
create mode 100644 tests/api_resources/radar/robots_txt/top/test_user_agents.py
create mode 100644 tests/api_resources/radar/test_dns.py
create mode 100644 tests/api_resources/security_center/__init__.py
create mode 100644 tests/api_resources/security_center/insights/__init__.py
create mode 100644 tests/api_resources/security_center/insights/test_class_.py
create mode 100644 tests/api_resources/security_center/insights/test_severity.py
create mode 100644 tests/api_resources/security_center/insights/test_type.py
create mode 100644 tests/api_resources/security_center/test_insights.py
create mode 100644 tests/api_resources/test_custom_pages.py
create mode 100644 tests/api_resources/test_zaraz.py
create mode 100644 tests/api_resources/workers/scripts/test_secrets.py
create mode 100644 tests/api_resources/zaraz/__init__.py
create mode 100644 tests/api_resources/zaraz/history/__init__.py
create mode 100644 tests/api_resources/zaraz/history/test_configs.py
create mode 100644 tests/api_resources/zaraz/test_config.py
create mode 100644 tests/api_resources/zaraz/test_default.py
create mode 100644 tests/api_resources/zaraz/test_export.py
create mode 100644 tests/api_resources/zaraz/test_history.py
create mode 100644 tests/api_resources/zaraz/test_publish.py
create mode 100644 tests/api_resources/zaraz/test_workflow.py
create mode 100644 tests/api_resources/zero_trust/access/logs/scim/__init__.py
create mode 100644 tests/api_resources/zero_trust/access/logs/scim/test_updates.py
delete mode 100644 tests/api_resources/zero_trust/dex/commands/test_users.py
create mode 100644 tests/api_resources/zero_trust/identity_providers/__init__.py
create mode 100644 tests/api_resources/zero_trust/identity_providers/scim/__init__.py
create mode 100644 tests/api_resources/zero_trust/identity_providers/scim/test_groups.py
create mode 100644 tests/api_resources/zero_trust/identity_providers/scim/test_users.py
create mode 100644 tests/api_resources/zero_trust/networks/subnets/__init__.py
create mode 100644 tests/api_resources/zero_trust/networks/subnets/test_cloudflare_source.py
create mode 100644 tests/api_resources/zero_trust/networks/test_subnets.py
create mode 100644 tests/api_resources/zero_trust/tunnels/cloudflared/__init__.py
rename tests/api_resources/zero_trust/tunnels/{ => cloudflared}/test_configurations.py (87%)
rename tests/api_resources/zero_trust/tunnels/{ => cloudflared}/test_connections.py (77%)
rename tests/api_resources/zero_trust/tunnels/{ => cloudflared}/test_connectors.py (84%)
rename tests/api_resources/zero_trust/tunnels/{ => cloudflared}/test_management.py (85%)
rename tests/api_resources/zero_trust/tunnels/{ => cloudflared}/test_token.py (84%)
create mode 100644 tests/api_resources/zero_trust/tunnels/test_cloudflared.py
create mode 100644 tests/api_resources/zero_trust/tunnels/warp_connector/__init__.py
create mode 100644 tests/api_resources/zero_trust/tunnels/warp_connector/test_token.py
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index ac9a2e752..ff261bad7 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -3,7 +3,7 @@ FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
USER vscode
-RUN curl -sSf https://rye.astral.sh/get | RYE_VERSION="0.35.0" RYE_INSTALL_OPTION="--yes" bash
+RUN curl -sSf https://rye.astral.sh/get | RYE_VERSION="0.44.0" RYE_INSTALL_OPTION="--yes" bash
ENV PATH=/home/vscode/.rye/shims:$PATH
-RUN echo "[[ -d .venv ]] && source .venv/bin/activate" >> /home/vscode/.bashrc
+RUN echo "[[ -d .venv ]] && source .venv/bin/activate || export PATH=\$PATH" >> /home/vscode/.bashrc
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index bbeb30b14..c17fdc169 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -24,6 +24,9 @@
}
}
}
+ },
+ "features": {
+ "ghcr.io/devcontainers/features/node:1": {}
}
// Features to add to the dev container. More info: https://containers.dev/features.
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d8463e3a0..a2426e86d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -27,7 +27,7 @@ jobs:
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
- RYE_VERSION: '0.35.0'
+ RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'
- name: Install dependencies
@@ -35,6 +35,7 @@ jobs:
- name: Run lints
run: ./scripts/lint
+
test:
name: test
runs-on: ubuntu-latest
@@ -48,7 +49,7 @@ jobs:
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
- RYE_VERSION: '0.35.0'
+ RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'
- name: Bootstrap
@@ -56,6 +57,7 @@ jobs:
- name: Run tests
run: ./scripts/test
+
examples:
name: examples
runs-on: ubuntu-latest
@@ -69,7 +71,7 @@ jobs:
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
- RYE_VERSION: '0.35.0'
+ RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'
- name: Install dependencies
run: |
diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml
index 60c0cde40..afdcd266e 100644
--- a/.github/workflows/publish-pypi.yml
+++ b/.github/workflows/publish-pypi.yml
@@ -21,7 +21,7 @@ jobs:
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
- RYE_VERSION: '0.35.0'
+ RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'
- name: Publish to PyPI
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 127ac87b5..3b4c2d4ba 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "4.0.0"
+ ".": "4.1.0"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index 0858e86c2..025f3a286 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
-configured_endpoints: 1493
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3d78f855257b55bbb80884f99c3802cae877968d140eed3557fcb2cdd5f937b3.yml
+configured_endpoints: 1655
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0ed9f898b31619623e50d660d04beca50e44987bfd3eb3a6ff98d3bca2a9c569.yml
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6de0b896c..9c1c116b5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,95 @@
# Changelog
+## 4.1.0 (2025-03-18)
+
+Full Changelog: [v4.0.0...v4.1.0](https://github.com/cloudflare/cloudflare-python/compare/v4.0.0...v4.1.0)
+
+### Features
+
+* **ai_gateway:** add urls support ([#2539](https://github.com/cloudflare/cloudflare-python/issues/2539)) ([650366e](https://github.com/cloudflare/cloudflare-python/commit/650366eb7f562d7ff3f9cdcdc713a0dac4eef742))
+* **api:** api update ([#2472](https://github.com/cloudflare/cloudflare-python/issues/2472)) ([6b81c50](https://github.com/cloudflare/cloudflare-python/commit/6b81c502a95ebe8973614434039e87fbf7c59bcb))
+* **api:** api update ([#2473](https://github.com/cloudflare/cloudflare-python/issues/2473)) ([eb8ac49](https://github.com/cloudflare/cloudflare-python/commit/eb8ac49d7eed6aa5c5a6ff45aaa8b582013976ea))
+* **api:** api update ([#2474](https://github.com/cloudflare/cloudflare-python/issues/2474)) ([f7a03e2](https://github.com/cloudflare/cloudflare-python/commit/f7a03e224765a2162b5f74ab8ea36eef76fa7237))
+* **api:** api update ([#2476](https://github.com/cloudflare/cloudflare-python/issues/2476)) ([48bdd22](https://github.com/cloudflare/cloudflare-python/commit/48bdd220c6b7ab8ea54853cf6ef7862de9e89e56))
+* **api:** api update ([#2477](https://github.com/cloudflare/cloudflare-python/issues/2477)) ([da2ce0d](https://github.com/cloudflare/cloudflare-python/commit/da2ce0dcaf3806da245f6a9b040d8b5d17d992d3))
+* **api:** api update ([#2478](https://github.com/cloudflare/cloudflare-python/issues/2478)) ([94e997a](https://github.com/cloudflare/cloudflare-python/commit/94e997ac4f6ccf4eeb97726f67139790b6477a95))
+* **api:** api update ([#2479](https://github.com/cloudflare/cloudflare-python/issues/2479)) ([b49f05d](https://github.com/cloudflare/cloudflare-python/commit/b49f05d2186c4166171570236b639f7e77aabd2e))
+* **api:** api update ([#2480](https://github.com/cloudflare/cloudflare-python/issues/2480)) ([b27f1bb](https://github.com/cloudflare/cloudflare-python/commit/b27f1bbc27264c0fe8ee683052e0b698deb91a58))
+* **api:** api update ([#2489](https://github.com/cloudflare/cloudflare-python/issues/2489)) ([7f6d335](https://github.com/cloudflare/cloudflare-python/commit/7f6d33530f1cec482662ad53611ef62d63bcad25))
+* **api:** api update ([#2492](https://github.com/cloudflare/cloudflare-python/issues/2492)) ([12d3ff5](https://github.com/cloudflare/cloudflare-python/commit/12d3ff52795e5da6c30f90ce659f8d4d0bacab18))
+* **api:** api update ([#2493](https://github.com/cloudflare/cloudflare-python/issues/2493)) ([9061b65](https://github.com/cloudflare/cloudflare-python/commit/9061b659bcae3340e18e75eb8178e654a39361a0))
+* **api:** api update ([#2495](https://github.com/cloudflare/cloudflare-python/issues/2495)) ([28d11c6](https://github.com/cloudflare/cloudflare-python/commit/28d11c6027d2ff4546b4f48f929a1140da015740))
+* **api:** api update ([#2496](https://github.com/cloudflare/cloudflare-python/issues/2496)) ([538f71d](https://github.com/cloudflare/cloudflare-python/commit/538f71df81d2181e7724a73b86c181ce3f9b479d))
+* **api:** api update ([#2497](https://github.com/cloudflare/cloudflare-python/issues/2497)) ([e826a02](https://github.com/cloudflare/cloudflare-python/commit/e826a024ab9bad3105cde190ab1e8717ebda80bb))
+* **api:** api update ([#2500](https://github.com/cloudflare/cloudflare-python/issues/2500)) ([b8f02a0](https://github.com/cloudflare/cloudflare-python/commit/b8f02a087be93011eb24532eea5a4c5c0c61dbd1))
+* **api:** api update ([#2501](https://github.com/cloudflare/cloudflare-python/issues/2501)) ([b8b3891](https://github.com/cloudflare/cloudflare-python/commit/b8b3891a42db6f5a1631ceddf5ab581d224e0b40))
+* **api:** api update ([#2502](https://github.com/cloudflare/cloudflare-python/issues/2502)) ([345ac45](https://github.com/cloudflare/cloudflare-python/commit/345ac45b5700bc3d80005c61d716792e39fa4c99))
+* **api:** api update ([#2503](https://github.com/cloudflare/cloudflare-python/issues/2503)) ([80fdb8f](https://github.com/cloudflare/cloudflare-python/commit/80fdb8f78726e093afbfb6e966df4a5b74ded3c9))
+* **api:** api update ([#2516](https://github.com/cloudflare/cloudflare-python/issues/2516)) ([b6adc14](https://github.com/cloudflare/cloudflare-python/commit/b6adc142da1c6f6693c6c41ff3fde485aedd588d))
+* **api:** api update ([#2517](https://github.com/cloudflare/cloudflare-python/issues/2517)) ([401b717](https://github.com/cloudflare/cloudflare-python/commit/401b717505df1746f6ffbbf7f111e7c93e6fae4a))
+* **api:** api update ([#2518](https://github.com/cloudflare/cloudflare-python/issues/2518)) ([e1a2474](https://github.com/cloudflare/cloudflare-python/commit/e1a2474555a21af53b67e13be76d4c99dfbe4814))
+* **api:** api update ([#2520](https://github.com/cloudflare/cloudflare-python/issues/2520)) ([151a44a](https://github.com/cloudflare/cloudflare-python/commit/151a44a584d21d4acbf2459513c585ef937eb984))
+* **api:** api update ([#2522](https://github.com/cloudflare/cloudflare-python/issues/2522)) ([fc6d9d6](https://github.com/cloudflare/cloudflare-python/commit/fc6d9d6359390476e531499034ab114baeb1bcfe))
+* **api:** api update ([#2523](https://github.com/cloudflare/cloudflare-python/issues/2523)) ([43ebeee](https://github.com/cloudflare/cloudflare-python/commit/43ebeee56dea63a55d23665e70ae2a0391d9e66b))
+* **api:** api update ([#2528](https://github.com/cloudflare/cloudflare-python/issues/2528)) ([cc14467](https://github.com/cloudflare/cloudflare-python/commit/cc14467fce380ffe7d1baddb678415b319d48e22))
+* **api:** api update ([#2530](https://github.com/cloudflare/cloudflare-python/issues/2530)) ([4def3c7](https://github.com/cloudflare/cloudflare-python/commit/4def3c7bb1f0fa1189fb0d0e644f54e6453f27ad))
+* **api:** api update ([#2531](https://github.com/cloudflare/cloudflare-python/issues/2531)) ([4aef71e](https://github.com/cloudflare/cloudflare-python/commit/4aef71e490884d29a3e3d8f5cdd97101a464bc3b))
+* **api:** api update ([#2533](https://github.com/cloudflare/cloudflare-python/issues/2533)) ([d231762](https://github.com/cloudflare/cloudflare-python/commit/d23176293003e4788c907ff0417f5470aaa4a31b))
+* **api:** api update ([#2534](https://github.com/cloudflare/cloudflare-python/issues/2534)) ([6bae2c2](https://github.com/cloudflare/cloudflare-python/commit/6bae2c2223a2047270110c8d1cd934e69ef306a9))
+* **api:** api update ([#2535](https://github.com/cloudflare/cloudflare-python/issues/2535)) ([d3821d2](https://github.com/cloudflare/cloudflare-python/commit/d3821d225922bf8bae3484c498e440d4e90dc194))
+* **api:** api update ([#2537](https://github.com/cloudflare/cloudflare-python/issues/2537)) ([7cace87](https://github.com/cloudflare/cloudflare-python/commit/7cace874090689ada3ea6b099e7f304e6b7da6a1))
+* **api:** api update ([#2544](https://github.com/cloudflare/cloudflare-python/issues/2544)) ([7ea429d](https://github.com/cloudflare/cloudflare-python/commit/7ea429d47d7741d1062eded3374c25f6f5965868))
+* **api:** api update ([#2547](https://github.com/cloudflare/cloudflare-python/issues/2547)) ([7b0ce60](https://github.com/cloudflare/cloudflare-python/commit/7b0ce60f9a2ea2b7b7560cbc7da733247f31d63b))
+* **api:** api update ([#2549](https://github.com/cloudflare/cloudflare-python/issues/2549)) ([aca2b76](https://github.com/cloudflare/cloudflare-python/commit/aca2b76e0daa7bef7936aee794b9cbf173ac4e4d))
+* **api:** manual updates ([#2491](https://github.com/cloudflare/cloudflare-python/issues/2491)) ([e93ce12](https://github.com/cloudflare/cloudflare-python/commit/e93ce12a62dc48376a2fafba968a2eeff7f83345))
+* **api:** manual updates ([#2513](https://github.com/cloudflare/cloudflare-python/issues/2513)) ([71e522b](https://github.com/cloudflare/cloudflare-python/commit/71e522b756012338f5909c2644b18c62b430cc0f))
+* **api:** manual updates ([#2526](https://github.com/cloudflare/cloudflare-python/issues/2526)) ([f0b7af9](https://github.com/cloudflare/cloudflare-python/commit/f0b7af9d7cbad933520d3e50657d4762c2ca156d))
+* **api:** manual updates ([#2527](https://github.com/cloudflare/cloudflare-python/issues/2527)) ([aa892cc](https://github.com/cloudflare/cloudflare-python/commit/aa892cc55f7fb177521c2b2010bf760a9975c7cd))
+* **api:** rename browsing_rendering to browser_rendering ([#2488](https://github.com/cloudflare/cloudflare-python/issues/2488)) ([6b3425f](https://github.com/cloudflare/cloudflare-python/commit/6b3425fe978466d1536f77212c4ac36c93aa6105))
+* **browser_rendering:** move methods to top level ([#2490](https://github.com/cloudflare/cloudflare-python/issues/2490)) ([19e4cb0](https://github.com/cloudflare/cloudflare-python/commit/19e4cb01cff0811129fbac3e0f474f04532be483))
+* **browsing_rendering:** add support for subresources ([#2484](https://github.com/cloudflare/cloudflare-python/issues/2484)) ([6739a41](https://github.com/cloudflare/cloudflare-python/commit/6739a4123bcf82fe58143ac51e69f590be8c1822))
+* **cloudforce_one:** fix scans model ([#2504](https://github.com/cloudflare/cloudflare-python/issues/2504)) ([23e94c9](https://github.com/cloudflare/cloudflare-python/commit/23e94c9ee7ae82bc2931d077874a9a17dd8bfec3))
+* **dns_settings:** fix hierarchy ([#2514](https://github.com/cloudflare/cloudflare-python/issues/2514)) ([a95d254](https://github.com/cloudflare/cloudflare-python/commit/a95d254cf22932f9f22e3e27171ae7efe35e6abd))
+* **dns:** split account and zone DNS settings ([#2507](https://github.com/cloudflare/cloudflare-python/issues/2507)) ([6a80948](https://github.com/cloudflare/cloudflare-python/commit/6a809488ff2fd32ef13ad1dc37c1d9a052b79b98))
+* **internal:** group browser rendering ([#2508](https://github.com/cloudflare/cloudflare-python/issues/2508)) ([349e280](https://github.com/cloudflare/cloudflare-python/commit/349e280cd359544242e6c78cacce97f437cf9125))
+* **magic_cloud_networking:** add endpoint mappings ([#2550](https://github.com/cloudflare/cloudflare-python/issues/2550)) ([f0a6a21](https://github.com/cloudflare/cloudflare-python/commit/f0a6a21ceb592b32ea1079abfd42278f1da3d392))
+* **radar:** add compromised credential endpoints ([#2552](https://github.com/cloudflare/cloudflare-python/issues/2552)) ([99c9845](https://github.com/cloudflare/cloudflare-python/commit/99c9845e2548528a5ea0fc1099d3b5c39a165dae))
+* **radar:** add DNS endpoint ([#2487](https://github.com/cloudflare/cloudflare-python/issues/2487)) ([a5d4c51](https://github.com/cloudflare/cloudflare-python/commit/a5d4c51312ec12691f9fa4aa1e5ff3721d927d0a))
+* **threat_events:** fix create endpoint ([#2532](https://github.com/cloudflare/cloudflare-python/issues/2532)) ([0a45fe8](https://github.com/cloudflare/cloudflare-python/commit/0a45fe8002fa64e2dda4fb7e91badb43e0436bcc))
+* **threat_events:** shuffle endpoints from POST => PATCH ([#2525](https://github.com/cloudflare/cloudflare-python/issues/2525)) ([dc037a9](https://github.com/cloudflare/cloudflare-python/commit/dc037a9b9385fc979e11f64e5b576bef3d2a2d0a))
+* **vpc_flows:** add token support ([#2485](https://github.com/cloudflare/cloudflare-python/issues/2485)) ([904614f](https://github.com/cloudflare/cloudflare-python/commit/904614f85526fa63f3eee05532f6285c2c5d0cdd))
+* **waiting_rooms:** add account level list API ([#2524](https://github.com/cloudflare/cloudflare-python/issues/2524)) ([d10fb45](https://github.com/cloudflare/cloudflare-python/commit/d10fb45195b6b6d4b689bc5629877a7dee91a74b))
+* **workers:** add in secrets endpoints ([#2540](https://github.com/cloudflare/cloudflare-python/issues/2540)) ([0f3127d](https://github.com/cloudflare/cloudflare-python/commit/0f3127d57e8675a30f10caf8ba052651e5f75954))
+* **workflows:** add `bulk` support ([#2551](https://github.com/cloudflare/cloudflare-python/issues/2551)) ([45d91e2](https://github.com/cloudflare/cloudflare-python/commit/45d91e2a032aac5b4d1471027dbcd50e873dd0c8))
+
+
+### Bug Fixes
+
+* **api:** missing union discriminator naming ([#2548](https://github.com/cloudflare/cloudflare-python/issues/2548)) ([8c842a3](https://github.com/cloudflare/cloudflare-python/commit/8c842a3fc5e1fb641bb1cb279f5b143ed980bbed))
+* **ci:** ensure pip is always available ([#2543](https://github.com/cloudflare/cloudflare-python/issues/2543)) ([5ab256e](https://github.com/cloudflare/cloudflare-python/commit/5ab256eb4d93222012a808fde8a119a60a4a8bc3))
+* **ci:** remove publishing patch ([#2546](https://github.com/cloudflare/cloudflare-python/issues/2546)) ([2316376](https://github.com/cloudflare/cloudflare-python/commit/2316376a75b6a6ff41e1d1d7510206aa050ece09))
+* **internal:** remove port scans pending path fixes ([#2498](https://github.com/cloudflare/cloudflare-python/issues/2498)) ([f3c8131](https://github.com/cloudflare/cloudflare-python/commit/f3c81313a8878f84abdfcd6b6f9af48126ece4c5))
+* **r2_custom_domain:** update path placeholders to de-duplicate internal values ([#2506](https://github.com/cloudflare/cloudflare-python/issues/2506)) ([1288828](https://github.com/cloudflare/cloudflare-python/commit/1288828790c8cb3ddc38e81fb4e870406a0caab9))
+* **workers_for_platforms:** remove cyclic import due to model ([#2542](https://github.com/cloudflare/cloudflare-python/issues/2542)) ([7d9d338](https://github.com/cloudflare/cloudflare-python/commit/7d9d3381eacc52694d477b388165a26f77bde9b5))
+
+
+### Chores
+
+* **docs:** update client docstring ([#2483](https://github.com/cloudflare/cloudflare-python/issues/2483)) ([e98bd28](https://github.com/cloudflare/cloudflare-python/commit/e98bd2880f1f33083e0ce1e585bcaa635eda4176))
+* **internal:** bump rye to 0.44.0 ([#2536](https://github.com/cloudflare/cloudflare-python/issues/2536)) ([b1a4155](https://github.com/cloudflare/cloudflare-python/commit/b1a4155e83b067684f202159ad4b6f2b1d3c5283))
+* **internal:** codegen related update ([#2475](https://github.com/cloudflare/cloudflare-python/issues/2475)) ([329c314](https://github.com/cloudflare/cloudflare-python/commit/329c314d1756618ef5434817f1077173041a0ebc))
+* **internal:** codegen related update ([#2505](https://github.com/cloudflare/cloudflare-python/issues/2505)) ([ea4d061](https://github.com/cloudflare/cloudflare-python/commit/ea4d06178fa05d7907edd1d2869d566c80a1a567))
+* **internal:** codegen related update ([#2511](https://github.com/cloudflare/cloudflare-python/issues/2511)) ([d8e67ed](https://github.com/cloudflare/cloudflare-python/commit/d8e67ede7ad1363353b09e93d29951df62b87ed5))
+* **internal:** codegen related update ([#2512](https://github.com/cloudflare/cloudflare-python/issues/2512)) ([ee0fa76](https://github.com/cloudflare/cloudflare-python/commit/ee0fa7627138689a4115a9a54e3c504d9ef2d7a9))
+* **internal:** mark VPC and PDF as initialisms ([#2486](https://github.com/cloudflare/cloudflare-python/issues/2486)) ([f0b00be](https://github.com/cloudflare/cloudflare-python/commit/f0b00beeebe149cc989e6c398b5f9ccfd2dce33b))
+* **internal:** remove extra empty newlines ([#2529](https://github.com/cloudflare/cloudflare-python/issues/2529)) ([b1cabe6](https://github.com/cloudflare/cloudflare-python/commit/b1cabe63a9238d0e00cbde50b1a8d1843e26b03b))
+* **internal:** remove unused http client options forwarding ([#2494](https://github.com/cloudflare/cloudflare-python/issues/2494)) ([db37526](https://github.com/cloudflare/cloudflare-python/commit/db375269cd6e68fc5b184384d15f5290e6b63cb7))
+
+
+### Documentation
+
+* update URLs from stainlessapi.com to stainless.com ([#2481](https://github.com/cloudflare/cloudflare-python/issues/2481)) ([fe98b1d](https://github.com/cloudflare/cloudflare-python/commit/fe98b1da5bed21d62ff14cb1c84f8f89da4a03ac))
+
## 4.0.0 (2025-01-13)
Full Changelog: [v3.1.1...v4.0.0](https://github.com/cloudflare/cloudflare-python/compare/v3.1.1...v4.0.0)
diff --git a/README.md b/README.md
index ca473229f..44548f084 100644
--- a/README.md
+++ b/README.md
@@ -142,6 +142,42 @@ for account in first_page.result:
# Remove `await` for non-async usage.
```
+## Nested params
+
+Nested parameters are dictionaries, typed using `TypedDict`, for example:
+
+```python
+from cloudflare import Cloudflare
+
+client = Cloudflare()
+
+account = client.accounts.create(
+ name="name",
+ type="standard",
+ unit={"id": "f267e341f3dd4697bd3b9f71dd96247f"},
+)
+print(account.unit)
+```
+
+## File uploads
+
+Request parameters that correspond to file uploads can be passed as `bytes`, a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance or a tuple of `(filename, contents, media type)`.
+
+```python
+from pathlib import Path
+from cloudflare import Cloudflare
+
+client = Cloudflare()
+
+client.api_gateway.user_schemas.create(
+ zone_id="023e105f4ecef8ad9ca31a8372d0c353",
+ file=Path("/path/to/file"),
+ kind="openapi_v3",
+)
+```
+
+The async client uses the exact same interface. If you pass a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance, the file contents will be read asynchronously automatically.
+
## Handling errors
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `cloudflare.APIConnectionError` is raised.
diff --git a/SECURITY.md b/SECURITY.md
index f04da23d1..0735c8929 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -1,3 +1,3 @@
# Reporting Security Vulnerabilities
-Please see [this page](https://www.cloudflare.com/.well-known/security.txt) for information on how to report a vulnerability to Cloudflare. Thanks!
\ No newline at end of file
+Please see [this page](https://www.cloudflare.com/.well-known/security.txt) for information on how to report a vulnerability to Cloudflare. Thanks!
diff --git a/api.md b/api.md
index 05082cde7..50bdbfeb4 100644
--- a/api.md
+++ b/api.md
@@ -65,7 +65,7 @@ Methods:
Methods:
-- client.accounts.roles.list(\*, account_id) -> SyncSinglePage[Role]
+- client.accounts.roles.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[Role]
- client.accounts.roles.get(role_id, \*, account_id) -> Optional[Role]
## Subscriptions
@@ -77,7 +77,6 @@ from cloudflare.types.accounts import (
SubscriptionCreateResponse,
SubscriptionUpdateResponse,
SubscriptionDeleteResponse,
- SubscriptionGetResponse,
)
```
@@ -86,7 +85,7 @@ Methods:
- client.accounts.subscriptions.create(\*, account_id, \*\*params) -> SubscriptionCreateResponse
- client.accounts.subscriptions.update(subscription_identifier, \*, account_id, \*\*params) -> SubscriptionUpdateResponse
- client.accounts.subscriptions.delete(subscription_identifier, \*, account_id) -> SubscriptionDeleteResponse
-- client.accounts.subscriptions.get(\*, account_id) -> Optional[SubscriptionGetResponse]
+- client.accounts.subscriptions.get(\*, account_id) -> SyncSinglePage[Subscription]
## Tokens
@@ -110,12 +109,13 @@ Methods:
Types:
```python
-from cloudflare.types.accounts.tokens import PermissionGroupListResponse
+from cloudflare.types.accounts.tokens import PermissionGroupListResponse, PermissionGroupGetResponse
```
Methods:
-- client.accounts.tokens.permission_groups.list(\*, account_id) -> SyncSinglePage[object]
+- client.accounts.tokens.permission_groups.list(\*, account_id) -> SyncSinglePage[PermissionGroupListResponse]
+- client.accounts.tokens.permission_groups.get(\*, account_id) -> SyncSinglePage[PermissionGroupGetResponse]
### Value
@@ -265,18 +265,14 @@ Methods:
Types:
```python
-from cloudflare.types.user import (
- SubscriptionUpdateResponse,
- SubscriptionDeleteResponse,
- SubscriptionGetResponse,
-)
+from cloudflare.types.user import SubscriptionUpdateResponse, SubscriptionDeleteResponse
```
Methods:
- client.user.subscriptions.update(identifier, \*\*params) -> SubscriptionUpdateResponse
- client.user.subscriptions.delete(identifier) -> SubscriptionDeleteResponse
-- client.user.subscriptions.get() -> Optional[SubscriptionGetResponse]
+- client.user.subscriptions.get() -> SyncSinglePage[Subscription]
## Tokens
@@ -305,7 +301,7 @@ from cloudflare.types.user.tokens import PermissionGroupListResponse
Methods:
-- client.user.tokens.permission_groups.list() -> SyncSinglePage[object]
+- client.user.tokens.permission_groups.list() -> SyncSinglePage[PermissionGroupListResponse]
### Value
@@ -417,7 +413,7 @@ from cloudflare.types.zones import CustomNameserverUpdateResponse, CustomNameser
Methods:
-- client.zones.custom_nameservers.update(\*, zone_id, \*\*params) -> Optional[CustomNameserverUpdateResponse]
+- client.zones.custom_nameservers.update(\*, zone_id, \*\*params) -> SyncSinglePage[CustomNameserverUpdateResponse]
- client.zones.custom_nameservers.get(\*, zone_id) -> CustomNameserverGetResponse
## Holds
@@ -476,7 +472,7 @@ from cloudflare.types.zones import RatePlanGetResponse
Methods:
-- client.zones.rate_plans.get(\*, zone_id) -> Optional[RatePlanGetResponse]
+- client.zones.rate_plans.get(\*, zone_id) -> SyncSinglePage[RatePlanGetResponse]
# LoadBalancers
@@ -553,14 +549,14 @@ from cloudflare.types.load_balancers.monitors import ReferenceGetResponse
Methods:
-- client.load_balancers.monitors.references.get(monitor_id, \*, account_id) -> ReferenceGetResponse
+- client.load_balancers.monitors.references.get(monitor_id, \*, account_id) -> SyncSinglePage[ReferenceGetResponse]
## Pools
Types:
```python
-from cloudflare.types.load_balancers import Pool, PoolDeleteResponse, PoolBulkEditResponse
+from cloudflare.types.load_balancers import Pool, PoolDeleteResponse
```
Methods:
@@ -569,7 +565,7 @@ Methods:
- client.load_balancers.pools.update(pool_id, \*, account_id, \*\*params) -> Pool
- client.load_balancers.pools.list(\*, account_id, \*\*params) -> SyncSinglePage[Pool]
- client.load_balancers.pools.delete(pool_id, \*, account_id) -> PoolDeleteResponse
-- client.load_balancers.pools.bulk_edit(\*, account_id, \*\*params) -> PoolBulkEditResponse
+- client.load_balancers.pools.bulk_edit(\*, account_id, \*\*params) -> SyncSinglePage[Pool]
- client.load_balancers.pools.edit(pool_id, \*, account_id, \*\*params) -> Pool
- client.load_balancers.pools.get(pool_id, \*, account_id) -> Pool
@@ -596,7 +592,7 @@ from cloudflare.types.load_balancers.pools import ReferenceGetResponse
Methods:
-- client.load_balancers.pools.references.get(pool_id, \*, account_id) -> ReferenceGetResponse
+- client.load_balancers.pools.references.get(pool_id, \*, account_id) -> SyncSinglePage[ReferenceGetResponse]
## Previews
@@ -628,12 +624,12 @@ Methods:
Types:
```python
-from cloudflare.types.load_balancers import SearchGetResponse
+from cloudflare.types.load_balancers import SearchListResponse
```
Methods:
-- client.load_balancers.searches.get(\*, account_id, \*\*params) -> SearchGetResponse
+- client.load_balancers.searches.list(\*, account_id, \*\*params) -> SyncV4PagePagination[SearchListResponse]
# Cache
@@ -786,7 +782,7 @@ from cloudflare.types.ssl import RecommendationGetResponse
Methods:
-- client.ssl.recommendations.get(zone_identifier) -> Optional[RecommendationGetResponse]
+- client.ssl.recommendations.get(\*, zone_id) -> Optional[RecommendationGetResponse]
## Universal
@@ -918,15 +914,9 @@ Methods:
## Prioritize
-Types:
-
-```python
-from cloudflare.types.custom_certificates import PrioritizeUpdateResponse
-```
-
Methods:
-- client.custom_certificates.prioritize.update(\*, zone_id, \*\*params) -> Optional[PrioritizeUpdateResponse]
+- client.custom_certificates.prioritize.update(\*, zone_id, \*\*params) -> SyncSinglePage[CustomCertificate]
# CustomHostnames
@@ -972,6 +962,24 @@ Methods:
- client.custom_hostnames.fallback_origin.delete(\*, zone_id) -> Optional[FallbackOriginDeleteResponse]
- client.custom_hostnames.fallback_origin.get(\*, zone_id) -> Optional[FallbackOriginGetResponse]
+## CertificatePack
+
+### Certificates
+
+Types:
+
+```python
+from cloudflare.types.custom_hostnames.certificate_pack import (
+ CertificateUpdateResponse,
+ CertificateDeleteResponse,
+)
+```
+
+Methods:
+
+- client.custom_hostnames.certificate_pack.certificates.update(certificate_id, \*, zone_id, custom_hostname_id, certificate_pack_id, \*\*params) -> Optional[CertificateUpdateResponse]
+- client.custom_hostnames.certificate_pack.certificates.delete(certificate_id, \*, zone_id, custom_hostname_id, certificate_pack_id) -> CertificateDeleteResponse
+
# CustomNameservers
Types:
@@ -981,16 +989,15 @@ from cloudflare.types.custom_nameservers import (
CustomNameserver,
CustomNameserverDeleteResponse,
CustomNameserverAvailabiltyResponse,
- CustomNameserverGetResponse,
)
```
Methods:
- client.custom_nameservers.create(\*, account_id, \*\*params) -> Optional[CustomNameserver]
-- client.custom_nameservers.delete(custom_ns_id, \*, account_id) -> Optional[CustomNameserverDeleteResponse]
-- client.custom_nameservers.availabilty(\*, account_id) -> Optional[CustomNameserverAvailabiltyResponse]
-- client.custom_nameservers.get(\*, account_id) -> Optional[CustomNameserverGetResponse]
+- client.custom_nameservers.delete(custom_ns_id, \*, account_id) -> SyncSinglePage[CustomNameserverDeleteResponse]
+- client.custom_nameservers.availabilty(\*, account_id) -> SyncSinglePage[CustomNameserverAvailabiltyResponse]
+- client.custom_nameservers.get(\*, account_id) -> SyncSinglePage[CustomNameserver]
# DNSFirewall
@@ -1124,20 +1131,41 @@ Methods:
Types:
```python
-from cloudflare.types.dns import DNSSetting, SettingEditResponse, SettingGetResponse
+from cloudflare.types.dns import DNSSetting
```
-Methods:
-
-- client.dns.settings.edit(\*, account_id, zone_id, \*\*params) -> Optional[SettingEditResponse]
-- client.dns.settings.get(\*, account_id, zone_id) -> Optional[SettingGetResponse]
-
-### Views
+### Zone
Types:
```python
-from cloudflare.types.dns.settings import (
+from cloudflare.types.dns.settings import ZoneEditResponse, ZoneGetResponse
+```
+
+Methods:
+
+- client.dns.settings.zone.edit(\*, zone_id, \*\*params) -> Optional[ZoneEditResponse]
+- client.dns.settings.zone.get(\*, zone_id) -> Optional[ZoneGetResponse]
+
+### Account
+
+Types:
+
+```python
+from cloudflare.types.dns.settings import AccountEditResponse, AccountGetResponse
+```
+
+Methods:
+
+- client.dns.settings.account.edit(\*, account_id, \*\*params) -> Optional[AccountEditResponse]
+- client.dns.settings.account.get(\*, account_id) -> Optional[AccountGetResponse]
+
+#### Views
+
+Types:
+
+```python
+from cloudflare.types.dns.settings.account import (
ViewCreateResponse,
ViewListResponse,
ViewDeleteResponse,
@@ -1148,11 +1176,11 @@ from cloudflare.types.dns.settings import (
Methods:
-- client.dns.settings.views.create(\*, account_id, \*\*params) -> Optional[ViewCreateResponse]
-- client.dns.settings.views.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[ViewListResponse]
-- client.dns.settings.views.delete(view_id, \*, account_id) -> Optional[ViewDeleteResponse]
-- client.dns.settings.views.edit(view_id, \*, account_id, \*\*params) -> Optional[ViewEditResponse]
-- client.dns.settings.views.get(view_id, \*, account_id) -> Optional[ViewGetResponse]
+- client.dns.settings.account.views.create(\*, account_id, \*\*params) -> Optional[ViewCreateResponse]
+- client.dns.settings.account.views.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[ViewListResponse]
+- client.dns.settings.account.views.delete(view_id, \*, account_id) -> Optional[ViewDeleteResponse]
+- client.dns.settings.account.views.edit(view_id, \*, account_id, \*\*params) -> Optional[ViewEditResponse]
+- client.dns.settings.account.views.get(view_id, \*, account_id) -> Optional[ViewGetResponse]
## Analytics
@@ -1371,8 +1399,8 @@ from cloudflare.types.email_security.investigate import MoveCreateResponse, Move
Methods:
-- client.email_security.investigate.move.create(postfix_id, \*, account_id, \*\*params) -> MoveCreateResponse
-- client.email_security.investigate.move.bulk(\*, account_id, \*\*params) -> MoveBulkResponse
+- client.email_security.investigate.move.create(postfix_id, \*, account_id, \*\*params) -> SyncSinglePage[MoveCreateResponse]
+- client.email_security.investigate.move.bulk(\*, account_id, \*\*params) -> SyncSinglePage[MoveBulkResponse]
### Reclassify
@@ -1396,7 +1424,7 @@ from cloudflare.types.email_security.investigate import ReleaseBulkResponse
Methods:
-- client.email_security.investigate.release.bulk(\*, account_id, \*\*params) -> ReleaseBulkResponse
+- client.email_security.investigate.release.bulk(\*, account_id, \*\*params) -> SyncSinglePage[ReleaseBulkResponse]
## Settings
@@ -1462,7 +1490,7 @@ Methods:
- client.email_security.settings.domains.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[DomainListResponse]
- client.email_security.settings.domains.delete(domain_id, \*, account_id) -> DomainDeleteResponse
-- client.email_security.settings.domains.bulk_delete(\*, account_id) -> DomainBulkDeleteResponse
+- client.email_security.settings.domains.bulk_delete(\*, account_id) -> SyncSinglePage[DomainBulkDeleteResponse]
- client.email_security.settings.domains.edit(domain_id, \*, account_id, \*\*params) -> DomainEditResponse
- client.email_security.settings.domains.get(domain_id, \*, account_id) -> DomainGetResponse
@@ -1541,13 +1569,13 @@ Methods:
Types:
```python
-from cloudflare.types.email_routing import DNSRecord, DNSDeleteResponse, DNSGetResponse
+from cloudflare.types.email_routing import DNSRecord, DNSGetResponse
```
Methods:
- client.email_routing.dns.create(\*, zone_id, \*\*params) -> Optional[Settings]
-- client.email_routing.dns.delete(\*, zone_id) -> DNSDeleteResponse
+- client.email_routing.dns.delete(\*, zone_id) -> SyncSinglePage[DNSRecord]
- client.email_routing.dns.edit(\*, zone_id, \*\*params) -> Optional[Settings]
- client.email_routing.dns.get(\*, zone_id, \*\*params) -> DNSGetResponse
@@ -1605,22 +1633,17 @@ Methods:
Types:
```python
-from cloudflare.types.filters import (
- FirewallFilter,
- FilterCreateResponse,
- FilterBulkDeleteResponse,
- FilterBulkUpdateResponse,
-)
+from cloudflare.types.filters import FirewallFilter
```
Methods:
-- client.filters.create(\*, zone_id, \*\*params) -> Optional[FilterCreateResponse]
+- client.filters.create(\*, zone_id, \*\*params) -> SyncSinglePage[FirewallFilter]
- client.filters.update(filter_id, \*, zone_id, \*\*params) -> FirewallFilter
- client.filters.list(\*, zone_id, \*\*params) -> SyncV4PagePaginationArray[FirewallFilter]
- client.filters.delete(filter_id, \*, zone_id) -> FirewallFilter
-- client.filters.bulk_delete(\*, zone_id) -> Optional[FilterBulkDeleteResponse]
-- client.filters.bulk_update(\*, zone_id) -> Optional[FilterBulkUpdateResponse]
+- client.filters.bulk_delete(\*, zone_id) -> SyncSinglePage[FirewallFilter]
+- client.filters.bulk_update(\*, zone_id) -> SyncSinglePage[FirewallFilter]
- client.filters.get(filter_id, \*, zone_id) -> FirewallFilter
# Firewall
@@ -1653,29 +1676,20 @@ Methods:
Types:
```python
-from cloudflare.types.firewall import (
- DeletedFilter,
- FirewallRule,
- Product,
- RuleCreateResponse,
- RuleBulkDeleteResponse,
- RuleBulkEditResponse,
- RuleBulkUpdateResponse,
- RuleEditResponse,
-)
+from cloudflare.types.firewall import DeletedFilter, FirewallRule, Product
```
Methods:
-- client.firewall.rules.create(\*, zone_id, \*\*params) -> Optional[RuleCreateResponse]
+- client.firewall.rules.create(\*, zone_id, \*\*params) -> SyncSinglePage[FirewallRule]
- client.firewall.rules.update(rule_id, \*, zone_id, \*\*params) -> FirewallRule
- client.firewall.rules.list(\*, zone_id, \*\*params) -> SyncV4PagePaginationArray[FirewallRule]
- client.firewall.rules.delete(rule_id, \*, zone_id) -> FirewallRule
-- client.firewall.rules.bulk_delete(\*, zone_id) -> Optional[RuleBulkDeleteResponse]
-- client.firewall.rules.bulk_edit(\*, zone_id, \*\*params) -> Optional[RuleBulkEditResponse]
-- client.firewall.rules.bulk_update(\*, zone_id, \*\*params) -> Optional[RuleBulkUpdateResponse]
-- client.firewall.rules.edit(rule_id, \*, zone_id) -> Optional[RuleEditResponse]
-- client.firewall.rules.get(rule_id, \*, zone_id, \*\*params) -> FirewallRule
+- client.firewall.rules.bulk_delete(\*, zone_id) -> SyncSinglePage[FirewallRule]
+- client.firewall.rules.bulk_edit(\*, zone_id, \*\*params) -> SyncSinglePage[FirewallRule]
+- client.firewall.rules.bulk_update(\*, zone_id, \*\*params) -> SyncSinglePage[FirewallRule]
+- client.firewall.rules.edit(rule_id, \*, zone_id) -> SyncSinglePage[FirewallRule]
+- client.firewall.rules.get(rule_id, \*, zone_id) -> FirewallRule
## AccessRules
@@ -1698,11 +1712,11 @@ from cloudflare.types.firewall import (
Methods:
-- client.firewall.access_rules.create(\*, account_id, zone_id, \*\*params) -> AccessRuleCreateResponse
-- client.firewall.access_rules.list(\*, account_id, zone_id, \*\*params) -> SyncV4PagePaginationArray[AccessRuleListResponse]
-- client.firewall.access_rules.delete(rule_id, \*, account_id, zone_id) -> Optional[AccessRuleDeleteResponse]
-- client.firewall.access_rules.edit(rule_id, \*, account_id, zone_id, \*\*params) -> AccessRuleEditResponse
-- client.firewall.access_rules.get(rule_id, \*, account_id, zone_id) -> AccessRuleGetResponse
+- client.firewall.access_rules.create(\*, account_id, zone_id, \*\*params) -> AccessRuleCreateResponse
+- client.firewall.access_rules.list(\*, account_id, zone_id, \*\*params) -> SyncV4PagePaginationArray[AccessRuleListResponse]
+- client.firewall.access_rules.delete(rule_id, \*, account_id, zone_id) -> Optional[AccessRuleDeleteResponse]
+- client.firewall.access_rules.edit(rule_id, \*, account_id, zone_id, \*\*params) -> AccessRuleEditResponse
+- client.firewall.access_rules.get(rule_id, \*, account_id, zone_id) -> AccessRuleGetResponse
## UARules
@@ -1869,32 +1883,26 @@ from cloudflare.types.logpush.datasets import FieldGetResponse
Methods:
-- client.logpush.datasets.fields.get(dataset_id, \*, account_id, zone_id) -> object
+- client.logpush.datasets.fields.get(dataset_id, \*, account_id, zone_id) -> object
### Jobs
-Types:
-
-```python
-from cloudflare.types.logpush.datasets import JobGetResponse
-```
-
Methods:
-- client.logpush.datasets.jobs.get(dataset_id, \*, account_id, zone_id) -> Optional[JobGetResponse]
+- client.logpush.datasets.jobs.get(dataset_id, \*, account_id, zone_id) -> SyncSinglePage[Optional[LogpushJob]]
## Edge
Types:
```python
-from cloudflare.types.logpush import InstantLogpushJob, EdgeGetResponse
+from cloudflare.types.logpush import InstantLogpushJob
```
Methods:
- client.logpush.edge.create(\*, zone_id, \*\*params) -> Optional[InstantLogpushJob]
-- client.logpush.edge.get(\*, zone_id) -> Optional[EdgeGetResponse]
+- client.logpush.edge.get(\*, zone_id) -> SyncSinglePage[Optional[InstantLogpushJob]]
## Jobs
@@ -1906,11 +1914,11 @@ from cloudflare.types.logpush import LogpushJob, OutputOptions, JobDeleteRespons
Methods:
-- client.logpush.jobs.create(\*, account_id, zone_id, \*\*params) -> Optional[LogpushJob]
-- client.logpush.jobs.update(job_id, \*, account_id, zone_id, \*\*params) -> Optional[LogpushJob]
-- client.logpush.jobs.list(\*, account_id, zone_id) -> SyncSinglePage[Optional[LogpushJob]]
-- client.logpush.jobs.delete(job_id, \*, account_id, zone_id) -> Optional[JobDeleteResponse]
-- client.logpush.jobs.get(job_id, \*, account_id, zone_id) -> Optional[LogpushJob]
+- client.logpush.jobs.create(\*, account_id, zone_id, \*\*params) -> Optional[LogpushJob]
+- client.logpush.jobs.update(job_id, \*, account_id, zone_id, \*\*params) -> Optional[LogpushJob]
+- client.logpush.jobs.list(\*, account_id, zone_id) -> SyncSinglePage[Optional[LogpushJob]]
+- client.logpush.jobs.delete(job_id, \*, account_id, zone_id) -> Optional[JobDeleteResponse]
+- client.logpush.jobs.get(job_id, \*, account_id, zone_id) -> Optional[LogpushJob]
## Ownership
@@ -1922,21 +1930,26 @@ from cloudflare.types.logpush import OwnershipValidation, OwnershipCreateRespons
Methods:
-- client.logpush.ownership.create(\*, account_id, zone_id, \*\*params) -> Optional[OwnershipCreateResponse]
-- client.logpush.ownership.validate(\*, account_id, zone_id, \*\*params) -> Optional[OwnershipValidation]
+- client.logpush.ownership.create(\*, account_id, zone_id, \*\*params) -> Optional[OwnershipCreateResponse]
+- client.logpush.ownership.validate(\*, account_id, zone_id, \*\*params) -> Optional[OwnershipValidation]
## Validate
Types:
```python
-from cloudflare.types.logpush import ValidateDestinationResponse, ValidateOriginResponse
+from cloudflare.types.logpush import (
+ ValidateDestinationResponse,
+ ValidateDestinationExistsResponse,
+ ValidateOriginResponse,
+)
```
Methods:
-- client.logpush.validate.destination(\*, account_id, zone_id, \*\*params) -> Optional[ValidateDestinationResponse]
-- client.logpush.validate.origin(\*, account_id, zone_id, \*\*params) -> Optional[ValidateOriginResponse]
+- client.logpush.validate.destination(\*, account_id, zone_id, \*\*params) -> Optional[ValidateDestinationResponse]
+- client.logpush.validate.destination_exists(\*, account_id, zone_id, \*\*params) -> Optional[ValidateDestinationExistsResponse]
+- client.logpush.validate.origin(\*, account_id, zone_id, \*\*params) -> Optional[ValidateOriginResponse]
# Logs
@@ -2038,7 +2051,7 @@ from cloudflare.types.origin_tls_client_auth import AuthenticatedOriginPull, Hos
Methods:
-- client.origin_tls_client_auth.hostnames.update(\*, zone_id, \*\*params) -> Optional[HostnameUpdateResponse]
+- client.origin_tls_client_auth.hostnames.update(\*, zone_id, \*\*params) -> SyncSinglePage[HostnameUpdateResponse]
- client.origin_tls_client_auth.hostnames.get(hostname, \*, zone_id) -> Optional[AuthenticatedOriginPull]
### Certificates
@@ -2131,7 +2144,7 @@ Methods:
- client.waiting_rooms.create(\*, zone_id, \*\*params) -> WaitingRoom
- client.waiting_rooms.update(waiting_room_id, \*, zone_id, \*\*params) -> WaitingRoom
-- client.waiting_rooms.list(\*, zone_id, \*\*params) -> SyncV4PagePaginationArray[WaitingRoom]
+- client.waiting_rooms.list(\*, account_id, zone_id, \*\*params) -> SyncV4PagePaginationArray[WaitingRoom]
- client.waiting_rooms.delete(waiting_room_id, \*, zone_id) -> WaitingRoomDeleteResponse
- client.waiting_rooms.edit(waiting_room_id, \*, zone_id, \*\*params) -> WaitingRoom
- client.waiting_rooms.get(waiting_room_id, \*, zone_id) -> WaitingRoom
@@ -2182,23 +2195,16 @@ Methods:
Types:
```python
-from cloudflare.types.waiting_rooms import (
- WaitingRoomRule,
- RuleCreateResponse,
- RuleUpdateResponse,
- RuleDeleteResponse,
- RuleEditResponse,
- RuleGetResponse,
-)
+from cloudflare.types.waiting_rooms import WaitingRoomRule
```
Methods:
-- client.waiting_rooms.rules.create(waiting_room_id, \*, zone_id, \*\*params) -> Optional[RuleCreateResponse]
-- client.waiting_rooms.rules.update(waiting_room_id, \*, zone_id, \*\*params) -> Optional[RuleUpdateResponse]
-- client.waiting_rooms.rules.delete(rule_id, \*, zone_id, waiting_room_id) -> Optional[RuleDeleteResponse]
-- client.waiting_rooms.rules.edit(rule_id, \*, zone_id, waiting_room_id, \*\*params) -> Optional[RuleEditResponse]
-- client.waiting_rooms.rules.get(waiting_room_id, \*, zone_id) -> Optional[RuleGetResponse]
+- client.waiting_rooms.rules.create(waiting_room_id, \*, zone_id, \*\*params) -> SyncSinglePage[WaitingRoomRule]
+- client.waiting_rooms.rules.update(waiting_room_id, \*, zone_id, \*\*params) -> SyncSinglePage[WaitingRoomRule]
+- client.waiting_rooms.rules.delete(rule_id, \*, zone_id, waiting_room_id) -> SyncSinglePage[WaitingRoomRule]
+- client.waiting_rooms.rules.edit(rule_id, \*, zone_id, waiting_room_id, \*\*params) -> SyncSinglePage[WaitingRoomRule]
+- client.waiting_rooms.rules.get(waiting_room_id, \*, zone_id) -> SyncSinglePage[WaitingRoomRule]
## Statuses
@@ -2453,6 +2459,26 @@ Methods:
- client.workers.scripts.versions.list(script_name, \*, account_id, \*\*params) -> SyncV4PagePagination[VersionListResponse]
- client.workers.scripts.versions.get(version_id, \*, account_id, script_name) -> Optional[VersionGetResponse]
+### Secrets
+
+Types:
+
+```python
+from cloudflare.types.workers.scripts import (
+ SecretUpdateResponse,
+ SecretListResponse,
+ SecretDeleteResponse,
+ SecretGetResponse,
+)
+```
+
+Methods:
+
+- client.workers.scripts.secrets.update(script_name, \*, account_id, \*\*params) -> Optional[SecretUpdateResponse]
+- client.workers.scripts.secrets.list(script_name, \*, account_id) -> SyncSinglePage[SecretListResponse]
+- client.workers.scripts.secrets.delete(secret_name, \*, account_id, script_name) -> object
+- client.workers.scripts.secrets.get(secret_name, \*, account_id, script_name) -> Optional[SecretGetResponse]
+
## AccountSettings
Types:
@@ -2618,7 +2644,7 @@ Methods:
Types:
```python
-from cloudflare.types.queues import Consumer, ConsumerDeleteResponse, ConsumerGetResponse
+from cloudflare.types.queues import Consumer, ConsumerDeleteResponse
```
Methods:
@@ -2626,7 +2652,7 @@ Methods:
- client.queues.consumers.create(queue_id, \*, account_id, \*\*params) -> Optional[Consumer]
- client.queues.consumers.update(consumer_id, \*, account_id, queue_id, \*\*params) -> Optional[Consumer]
- client.queues.consumers.delete(consumer_id, \*, account_id, queue_id) -> ConsumerDeleteResponse
-- client.queues.consumers.get(queue_id, \*, account_id) -> Optional[ConsumerGetResponse]
+- client.queues.consumers.get(queue_id, \*, account_id) -> SyncSinglePage[Consumer]
## Messages
@@ -2639,7 +2665,7 @@ from cloudflare.types.queues import MessageAckResponse, MessagePullResponse
Methods:
- client.queues.messages.ack(queue_id, \*, account_id, \*\*params) -> Optional[MessageAckResponse]
-- client.queues.messages.pull(queue_id, \*, account_id, \*\*params) -> Optional[MessagePullResponse]
+- client.queues.messages.pull(queue_id, \*, account_id, \*\*params) -> SyncSinglePage[MessagePullResponse]
# APIGateway
@@ -2703,7 +2729,7 @@ Methods:
- client.api_gateway.operations.create(\*, zone_id, \*\*params) -> OperationCreateResponse
- client.api_gateway.operations.list(\*, zone_id, \*\*params) -> SyncV4PagePaginationArray[OperationListResponse]
- client.api_gateway.operations.delete(operation_id, \*, zone_id) -> OperationDeleteResponse
-- client.api_gateway.operations.bulk_create(\*, zone_id, \*\*params) -> OperationBulkCreateResponse
+- client.api_gateway.operations.bulk_create(\*, zone_id, \*\*params) -> SyncSinglePage[OperationBulkCreateResponse]
- client.api_gateway.operations.bulk_delete(\*, zone_id) -> OperationBulkDeleteResponse
- client.api_gateway.operations.get(operation_id, \*, zone_id, \*\*params) -> OperationGetResponse
@@ -2921,11 +2947,11 @@ from cloudflare.types.rulesets import (
Methods:
-- client.rulesets.create(\*, account_id, zone_id, \*\*params) -> RulesetCreateResponse
-- client.rulesets.update(ruleset_id, \*, account_id, zone_id, \*\*params) -> RulesetUpdateResponse
-- client.rulesets.list(\*, account_id, zone_id) -> SyncSinglePage[RulesetListResponse]
-- client.rulesets.delete(ruleset_id, \*, account_id, zone_id) -> None
-- client.rulesets.get(ruleset_id, \*, account_id, zone_id) -> RulesetGetResponse
+- client.rulesets.create(\*, account_id, zone_id, \*\*params) -> RulesetCreateResponse
+- client.rulesets.update(ruleset_id, \*, account_id, zone_id, \*\*params) -> RulesetUpdateResponse
+- client.rulesets.list(\*, account_id, zone_id, \*\*params) -> SyncCursorPagination[RulesetListResponse]
+- client.rulesets.delete(ruleset_id, \*, account_id, zone_id) -> None
+- client.rulesets.get(ruleset_id, \*, account_id, zone_id) -> RulesetGetResponse
## Phases
@@ -2937,8 +2963,8 @@ from cloudflare.types.rulesets import PhaseUpdateResponse, PhaseGetResponse
Methods:
-- client.rulesets.phases.update(ruleset_phase, \*, account_id, zone_id, \*\*params) -> PhaseUpdateResponse
-- client.rulesets.phases.get(ruleset_phase, \*, account_id, zone_id) -> PhaseGetResponse
+- client.rulesets.phases.update(ruleset_phase, \*, account_id, zone_id, \*\*params) -> PhaseUpdateResponse
+- client.rulesets.phases.get(ruleset_phase, \*, account_id, zone_id) -> PhaseGetResponse
### Versions
@@ -2950,8 +2976,8 @@ from cloudflare.types.rulesets.phases import VersionListResponse, VersionGetResp
Methods:
-- client.rulesets.phases.versions.list(ruleset_phase, \*, account_id, zone_id) -> SyncSinglePage[VersionListResponse]
-- client.rulesets.phases.versions.get(ruleset_version, \*, ruleset_phase, account_id, zone_id) -> VersionGetResponse
+- client.rulesets.phases.versions.list(ruleset_phase, \*, account_id, zone_id) -> SyncSinglePage[VersionListResponse]
+- client.rulesets.phases.versions.get(ruleset_version, \*, ruleset_phase, account_id, zone_id) -> VersionGetResponse
## Rules
@@ -2986,9 +3012,9 @@ from cloudflare.types.rulesets import (
Methods:
-- client.rulesets.rules.create(ruleset_id, \*, account_id, zone_id, \*\*params) -> RuleCreateResponse
-- client.rulesets.rules.delete(rule_id, \*, ruleset_id, account_id, zone_id) -> RuleDeleteResponse
-- client.rulesets.rules.edit(rule_id, \*, ruleset_id, account_id, zone_id, \*\*params) -> RuleEditResponse
+- client.rulesets.rules.create(ruleset_id, \*, account_id, zone_id, \*\*params) -> RuleCreateResponse
+- client.rulesets.rules.delete(rule_id, \*, ruleset_id, account_id, zone_id) -> RuleDeleteResponse
+- client.rulesets.rules.edit(rule_id, \*, ruleset_id, account_id, zone_id, \*\*params) -> RuleEditResponse
## Versions
@@ -3000,9 +3026,9 @@ from cloudflare.types.rulesets import VersionListResponse, VersionGetResponse
Methods:
-- client.rulesets.versions.list(ruleset_id, \*, account_id, zone_id) -> SyncSinglePage[VersionListResponse]
-- client.rulesets.versions.delete(ruleset_version, \*, ruleset_id, account_id, zone_id) -> None
-- client.rulesets.versions.get(ruleset_version, \*, ruleset_id, account_id, zone_id) -> VersionGetResponse
+- client.rulesets.versions.list(ruleset_id, \*, account_id, zone_id) -> SyncSinglePage[VersionListResponse]
+- client.rulesets.versions.delete(ruleset_version, \*, ruleset_id, account_id, zone_id) -> None
+- client.rulesets.versions.get(ruleset_version, \*, ruleset_id, account_id, zone_id) -> VersionGetResponse
# URLNormalization
@@ -3343,12 +3369,12 @@ Methods:
Types:
```python
-from cloudflare.types.diagnostics import Traceroute, TracerouteCreateResponse
+from cloudflare.types.diagnostics import Traceroute
```
Methods:
-- client.diagnostics.traceroutes.create(\*, account_id, \*\*params) -> Optional[TracerouteCreateResponse]
+- client.diagnostics.traceroutes.create(\*, account_id, \*\*params) -> SyncSinglePage[Traceroute]
# Images
@@ -3531,12 +3557,12 @@ Methods:
Types:
```python
-from cloudflare.types.intel import IPList, IPListGetResponse
+from cloudflare.types.intel import IPList
```
Methods:
-- client.intel.ip_lists.get(\*, account_id) -> Optional[IPListGetResponse]
+- client.intel.ip_lists.get(\*, account_id) -> SyncSinglePage[IPList]
## Miscategorizations
@@ -3650,7 +3676,7 @@ from cloudflare.types.intel.attack_surface_report import IssueTypeGetResponse
Methods:
-- client.intel.attack_surface_report.issue_types.get(\*, account_id) -> Optional[IssueTypeGetResponse]
+- client.intel.attack_surface_report.issue_types.get(\*, account_id) -> SyncSinglePage[IssueTypeGetResponse]
### Issues
@@ -3848,13 +3874,12 @@ from cloudflare.types.magic_transit.sites import (
LANStaticAddressing,
Nat,
RoutedSubnet,
- LANCreateResponse,
)
```
Methods:
-- client.magic_transit.sites.lans.create(site_id, \*, account_id, \*\*params) -> LANCreateResponse
+- client.magic_transit.sites.lans.create(site_id, \*, account_id, \*\*params) -> SyncSinglePage[LAN]
- client.magic_transit.sites.lans.update(lan_id, \*, account_id, site_id, \*\*params) -> LAN
- client.magic_transit.sites.lans.list(site_id, \*, account_id) -> SyncSinglePage[LAN]
- client.magic_transit.sites.lans.delete(lan_id, \*, account_id, site_id) -> LAN
@@ -3866,12 +3891,12 @@ Methods:
Types:
```python
-from cloudflare.types.magic_transit.sites import WAN, WANStaticAddressing, WANCreateResponse
+from cloudflare.types.magic_transit.sites import WAN, WANStaticAddressing
```
Methods:
-- client.magic_transit.sites.wans.create(site_id, \*, account_id, \*\*params) -> WANCreateResponse
+- client.magic_transit.sites.wans.create(site_id, \*, account_id, \*\*params) -> SyncSinglePage[WAN]
- client.magic_transit.sites.wans.update(wan_id, \*, account_id, site_id, \*\*params) -> WAN
- client.magic_transit.sites.wans.list(site_id, \*, account_id) -> SyncSinglePage[WAN]
- client.magic_transit.sites.wans.delete(wan_id, \*, account_id, site_id) -> WAN
@@ -3893,10 +3918,36 @@ from cloudflare.types.magic_transit import (
Methods:
-- client.magic_transit.connectors.update(connector_id, \*, account_id, \*\*params) -> ConnectorUpdateResponse
-- client.magic_transit.connectors.list(\*, account_id) -> SyncSinglePage[ConnectorListResponse]
-- client.magic_transit.connectors.edit(connector_id, \*, account_id, \*\*params) -> ConnectorEditResponse
-- client.magic_transit.connectors.get(connector_id, \*, account_id) -> ConnectorGetResponse
+- client.magic_transit.connectors.update(connector_id, \*, account_id, \*\*params) -> ConnectorUpdateResponse
+- client.magic_transit.connectors.list(\*, account_id) -> SyncSinglePage[ConnectorListResponse]
+- client.magic_transit.connectors.edit(connector_id, \*, account_id, \*\*params) -> ConnectorEditResponse
+- client.magic_transit.connectors.get(connector_id, \*, account_id) -> ConnectorGetResponse
+
+### Events
+
+Types:
+
+```python
+from cloudflare.types.magic_transit.connectors import EventListResponse, EventGetResponse
+```
+
+Methods:
+
+- client.magic_transit.connectors.events.list(connector_id, \*, account_id, \*\*params) -> EventListResponse
+- client.magic_transit.connectors.events.get(event_n, \*, account_id, connector_id, event_t) -> EventGetResponse
+
+### Snapshots
+
+Types:
+
+```python
+from cloudflare.types.magic_transit.connectors import SnapshotListResponse, SnapshotGetResponse
+```
+
+Methods:
+
+- client.magic_transit.connectors.snapshots.list(connector_id, \*, account_id, \*\*params) -> SnapshotListResponse
+- client.magic_transit.connectors.snapshots.get(snapshot_t, \*, account_id, connector_id) -> SnapshotGetResponse
## PCAPs
@@ -3923,14 +3974,14 @@ Methods:
Types:
```python
-from cloudflare.types.magic_transit.pcaps import Ownership, OwnershipGetResponse
+from cloudflare.types.magic_transit.pcaps import Ownership
```
Methods:
- client.magic_transit.pcaps.ownership.create(\*, account_id, \*\*params) -> Ownership
- client.magic_transit.pcaps.ownership.delete(ownership_id, \*, account_id) -> None
-- client.magic_transit.pcaps.ownership.get(\*, account_id) -> Optional[OwnershipGetResponse]
+- client.magic_transit.pcaps.ownership.get(\*, account_id) -> SyncSinglePage[Ownership]
- client.magic_transit.pcaps.ownership.validate(\*, account_id, \*\*params) -> Ownership
### Download
@@ -3941,6 +3992,20 @@ Methods:
# MagicNetworkMonitoring
+## VPCFlows
+
+### Tokens
+
+Types:
+
+```python
+from cloudflare.types.magic_network_monitoring.vpc_flows import TokenCreateResponse
+```
+
+Methods:
+
+- client.magic_network_monitoring.vpc_flows.tokens.create(\*, account_id) -> str
+
## Configs
Types:
@@ -3992,6 +4057,213 @@ Methods:
- client.magic_network_monitoring.rules.advertisements.edit(rule_id, \*, account_id, \*\*params) -> Optional[Advertisement]
+# MagicCloudNetworking
+
+## CatalogSyncs
+
+Types:
+
+```python
+from cloudflare.types.magic_cloud_networking import (
+ CatalogSyncCreateResponse,
+ CatalogSyncUpdateResponse,
+ CatalogSyncListResponse,
+ CatalogSyncDeleteResponse,
+ CatalogSyncEditResponse,
+ CatalogSyncGetResponse,
+ CatalogSyncRefreshResponse,
+)
+```
+
+Methods:
+
+- client.magic_cloud_networking.catalog_syncs.create(\*, account_id, \*\*params) -> CatalogSyncCreateResponse
+- client.magic_cloud_networking.catalog_syncs.update(sync_id, \*, account_id, \*\*params) -> CatalogSyncUpdateResponse
+- client.magic_cloud_networking.catalog_syncs.list(\*, account_id) -> SyncSinglePage[CatalogSyncListResponse]
+- client.magic_cloud_networking.catalog_syncs.delete(sync_id, \*, account_id, \*\*params) -> CatalogSyncDeleteResponse
+- client.magic_cloud_networking.catalog_syncs.edit(sync_id, \*, account_id, \*\*params) -> CatalogSyncEditResponse
+- client.magic_cloud_networking.catalog_syncs.get(sync_id, \*, account_id) -> CatalogSyncGetResponse
+- client.magic_cloud_networking.catalog_syncs.refresh(sync_id, \*, account_id) -> str
+
+### PrebuiltPolicies
+
+Types:
+
+```python
+from cloudflare.types.magic_cloud_networking.catalog_syncs import PrebuiltPolicyListResponse
+```
+
+Methods:
+
+- client.magic_cloud_networking.catalog_syncs.prebuilt_policies.list(\*, account_id, \*\*params) -> SyncSinglePage[PrebuiltPolicyListResponse]
+
+## OnRamps
+
+Types:
+
+```python
+from cloudflare.types.magic_cloud_networking import (
+ OnRampCreateResponse,
+ OnRampUpdateResponse,
+ OnRampListResponse,
+ OnRampDeleteResponse,
+ OnRampApplyResponse,
+ OnRampEditResponse,
+ OnRampGetResponse,
+ OnRampPlanResponse,
+)
+```
+
+Methods:
+
+- client.magic_cloud_networking.on_ramps.create(\*, account_id, \*\*params) -> OnRampCreateResponse
+- client.magic_cloud_networking.on_ramps.update(onramp_id, \*, account_id, \*\*params) -> OnRampUpdateResponse
+- client.magic_cloud_networking.on_ramps.list(\*, account_id, \*\*params) -> SyncSinglePage[OnRampListResponse]
+- client.magic_cloud_networking.on_ramps.delete(onramp_id, \*, account_id, \*\*params) -> OnRampDeleteResponse
+- client.magic_cloud_networking.on_ramps.apply(onramp_id, \*, account_id) -> OnRampApplyResponse
+- client.magic_cloud_networking.on_ramps.edit(onramp_id, \*, account_id, \*\*params) -> OnRampEditResponse
+- client.magic_cloud_networking.on_ramps.export(onramp_id, \*, account_id) -> BinaryAPIResponse
+- client.magic_cloud_networking.on_ramps.get(onramp_id, \*, account_id, \*\*params) -> OnRampGetResponse
+- client.magic_cloud_networking.on_ramps.plan(onramp_id, \*, account_id) -> OnRampPlanResponse
+
+### AddressSpaces
+
+Types:
+
+```python
+from cloudflare.types.magic_cloud_networking.on_ramps import (
+ AddressSpaceUpdateResponse,
+ AddressSpaceListResponse,
+ AddressSpaceEditResponse,
+)
+```
+
+Methods:
+
+- client.magic_cloud_networking.on_ramps.address_spaces.update(\*, account_id, \*\*params) -> AddressSpaceUpdateResponse
+- client.magic_cloud_networking.on_ramps.address_spaces.list(\*, account_id) -> AddressSpaceListResponse
+- client.magic_cloud_networking.on_ramps.address_spaces.edit(\*, account_id, \*\*params) -> AddressSpaceEditResponse
+
+## CloudIntegrations
+
+Types:
+
+```python
+from cloudflare.types.magic_cloud_networking import (
+ CloudIntegrationCreateResponse,
+ CloudIntegrationUpdateResponse,
+ CloudIntegrationListResponse,
+ CloudIntegrationDeleteResponse,
+ CloudIntegrationDiscoverResponse,
+ CloudIntegrationDiscoverAllResponse,
+ CloudIntegrationEditResponse,
+ CloudIntegrationGetResponse,
+ CloudIntegrationInitialSetupResponse,
+)
+```
+
+Methods:
+
+- client.magic_cloud_networking.cloud_integrations.create(\*, account_id, \*\*params) -> CloudIntegrationCreateResponse
+- client.magic_cloud_networking.cloud_integrations.update(provider_id, \*, account_id, \*\*params) -> CloudIntegrationUpdateResponse
+- client.magic_cloud_networking.cloud_integrations.list(\*, account_id, \*\*params) -> SyncSinglePage[CloudIntegrationListResponse]
+- client.magic_cloud_networking.cloud_integrations.delete(provider_id, \*, account_id) -> CloudIntegrationDeleteResponse
+- client.magic_cloud_networking.cloud_integrations.discover(provider_id, \*, account_id, \*\*params) -> CloudIntegrationDiscoverResponse
+- client.magic_cloud_networking.cloud_integrations.discover_all(\*, account_id) -> CloudIntegrationDiscoverAllResponse
+- client.magic_cloud_networking.cloud_integrations.edit(provider_id, \*, account_id, \*\*params) -> CloudIntegrationEditResponse
+- client.magic_cloud_networking.cloud_integrations.get(provider_id, \*, account_id, \*\*params) -> CloudIntegrationGetResponse
+- client.magic_cloud_networking.cloud_integrations.initial_setup(provider_id, \*, account_id) -> CloudIntegrationInitialSetupResponse
+
+## Resources
+
+Types:
+
+```python
+from cloudflare.types.magic_cloud_networking import (
+ ResourceListResponse,
+ ResourceGetResponse,
+ ResourcePolicyPreviewResponse,
+)
+```
+
+Methods:
+
+- client.magic_cloud_networking.resources.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[ResourceListResponse]
+- client.magic_cloud_networking.resources.export(\*, account_id, \*\*params) -> BinaryAPIResponse
+- client.magic_cloud_networking.resources.get(resource_id, \*, account_id, \*\*params) -> ResourceGetResponse
+- client.magic_cloud_networking.resources.policy_preview(\*, account_id, \*\*params) -> str
+
+# NetworkInterconnects
+
+## CNIs
+
+Types:
+
+```python
+from cloudflare.types.network_interconnects import (
+ CNICreateResponse,
+ CNIUpdateResponse,
+ CNIListResponse,
+ CNIGetResponse,
+)
+```
+
+Methods:
+
+- client.network_interconnects.cnis.create(\*, account_id, \*\*params) -> CNICreateResponse
+- client.network_interconnects.cnis.update(cni, \*, account_id, \*\*params) -> CNIUpdateResponse
+- client.network_interconnects.cnis.list(\*, account_id, \*\*params) -> CNIListResponse
+- client.network_interconnects.cnis.delete(cni, \*, account_id) -> None
+- client.network_interconnects.cnis.get(cni, \*, account_id) -> CNIGetResponse
+
+## Interconnects
+
+Types:
+
+```python
+from cloudflare.types.network_interconnects import (
+ InterconnectCreateResponse,
+ InterconnectListResponse,
+ InterconnectGetResponse,
+ InterconnectStatusResponse,
+)
+```
+
+Methods:
+
+- client.network_interconnects.interconnects.create(\*, account_id, \*\*params) -> InterconnectCreateResponse
+- client.network_interconnects.interconnects.list(\*, account_id, \*\*params) -> InterconnectListResponse
+- client.network_interconnects.interconnects.delete(icon, \*, account_id) -> None
+- client.network_interconnects.interconnects.get(icon, \*, account_id) -> InterconnectGetResponse
+- client.network_interconnects.interconnects.loa(icon, \*, account_id) -> None
+- client.network_interconnects.interconnects.status(icon, \*, account_id) -> InterconnectStatusResponse
+
+## Settings
+
+Types:
+
+```python
+from cloudflare.types.network_interconnects import SettingUpdateResponse, SettingGetResponse
+```
+
+Methods:
+
+- client.network_interconnects.settings.update(\*, account_id, \*\*params) -> SettingUpdateResponse
+- client.network_interconnects.settings.get(\*, account_id) -> SettingGetResponse
+
+## Slots
+
+Types:
+
+```python
+from cloudflare.types.network_interconnects import SlotListResponse, SlotGetResponse
+```
+
+Methods:
+
+- client.network_interconnects.slots.list(\*, account_id, \*\*params) -> SlotListResponse
+- client.network_interconnects.slots.get(slot, \*, account_id) -> SlotGetResponse
+
# MTLSCertificates
Types:
@@ -4012,12 +4284,12 @@ Methods:
Types:
```python
-from cloudflare.types.mtls_certificates import CertificateAsssociation, AssociationGetResponse
+from cloudflare.types.mtls_certificates import CertificateAsssociation
```
Methods:
-- client.mtls_certificates.associations.get(mtls_certificate_id, \*, account_id) -> Optional[AssociationGetResponse]
+- client.mtls_certificates.associations.get(mtls_certificate_id, \*, account_id) -> SyncSinglePage[CertificateAsssociation]
# Pages
@@ -4202,7 +4474,7 @@ Methods:
Types:
```python
-from cloudflare.types.stream import Audio, AudioTrackDeleteResponse, AudioTrackGetResponse
+from cloudflare.types.stream import Audio, AudioTrackDeleteResponse
```
Methods:
@@ -4210,7 +4482,7 @@ Methods:
- client.stream.audio_tracks.delete(audio_identifier, \*, account_id, identifier) -> str
- client.stream.audio_tracks.copy(identifier, \*, account_id, \*\*params) -> Optional[Audio]
- client.stream.audio_tracks.edit(audio_identifier, \*, account_id, identifier, \*\*params) -> Optional[Audio]
-- client.stream.audio_tracks.get(identifier, \*, account_id) -> Optional[AudioTrackGetResponse]
+- client.stream.audio_tracks.get(identifier, \*, account_id) -> SyncSinglePage[Audio]
## Videos
@@ -4266,7 +4538,7 @@ Methods:
- client.stream.keys.create(\*, account_id, \*\*params) -> Optional[Keys]
- client.stream.keys.delete(identifier, \*, account_id) -> str
-- client.stream.keys.get(\*, account_id) -> Optional[KeyGetResponse]
+- client.stream.keys.get(\*, account_id) -> SyncSinglePage[KeyGetResponse]
## LiveInputs
@@ -4333,12 +4605,12 @@ Methods:
Types:
```python
-from cloudflare.types.stream import Caption, CaptionGetResponse
+from cloudflare.types.stream import Caption
```
Methods:
-- client.stream.captions.get(identifier, \*, account_id) -> Optional[CaptionGetResponse]
+- client.stream.captions.get(identifier, \*, account_id) -> SyncSinglePage[Caption]
### Language
@@ -4446,7 +4718,6 @@ from cloudflare.types.alerting.destinations import (
Pagerduty,
PagerdutyCreateResponse,
PagerdutyDeleteResponse,
- PagerdutyGetResponse,
PagerdutyLinkResponse,
)
```
@@ -4455,7 +4726,7 @@ Methods:
- client.alerting.destinations.pagerduty.create(\*, account_id) -> Optional[PagerdutyCreateResponse]
- client.alerting.destinations.pagerduty.delete(\*, account_id) -> PagerdutyDeleteResponse
-- client.alerting.destinations.pagerduty.get(\*, account_id) -> Optional[PagerdutyGetResponse]
+- client.alerting.destinations.pagerduty.get(\*, account_id) -> SyncSinglePage[Pagerduty]
- client.alerting.destinations.pagerduty.link(token_id, \*, account_id) -> Optional[PagerdutyLinkResponse]
### Webhooks
@@ -4533,7 +4804,6 @@ from cloudflare.types.d1 import (
DatabaseDeleteResponse,
DatabaseExportResponse,
DatabaseImportResponse,
- DatabaseQueryResponse,
DatabaseRawResponse,
)
```
@@ -4546,8 +4816,8 @@ Methods:
- client.d1.database.export(database_id, \*, account_id, \*\*params) -> DatabaseExportResponse
- client.d1.database.get(database_id, \*, account_id) -> D1
- client.d1.database.import\_(database_id, \*, account_id, \*\*params) -> DatabaseImportResponse
-- client.d1.database.query(database_id, \*, account_id, \*\*params) -> DatabaseQueryResponse
-- client.d1.database.raw(database_id, \*, account_id, \*\*params) -> DatabaseRawResponse
+- client.d1.database.query(database_id, \*, account_id, \*\*params) -> SyncSinglePage[QueryResult]
+- client.d1.database.raw(database_id, \*, account_id, \*\*params) -> SyncSinglePage[DatabaseRawResponse]
# R2
@@ -4612,10 +4882,10 @@ from cloudflare.types.r2.buckets.domains import (
Methods:
- client.r2.buckets.domains.custom.create(bucket_name, \*, account_id, \*\*params) -> CustomCreateResponse
-- client.r2.buckets.domains.custom.update(domain_name, \*, account_id, bucket_name, \*\*params) -> CustomUpdateResponse
+- client.r2.buckets.domains.custom.update(domain, \*, account_id, bucket_name, \*\*params) -> CustomUpdateResponse
- client.r2.buckets.domains.custom.list(bucket_name, \*, account_id) -> CustomListResponse
-- client.r2.buckets.domains.custom.delete(domain_name, \*, account_id, bucket_name) -> CustomDeleteResponse
-- client.r2.buckets.domains.custom.get(domain_name, \*, account_id, bucket_name) -> CustomGetResponse
+- client.r2.buckets.domains.custom.delete(domain, \*, account_id, bucket_name) -> CustomDeleteResponse
+- client.r2.buckets.domains.custom.get(domain, \*, account_id, bucket_name) -> CustomGetResponse
#### Managed
@@ -4632,33 +4902,46 @@ Methods:
### EventNotifications
-#### Configuration
-
Types:
```python
-from cloudflare.types.r2.buckets.event_notifications import ConfigurationGetResponse
-```
-
-Methods:
-
-- client.r2.buckets.event_notifications.configuration.get(bucket_name, \*, account_id) -> ConfigurationGetResponse
-
-##### Queues
-
-Types:
-
-```python
-from cloudflare.types.r2.buckets.event_notifications.configuration import (
- QueueUpdateResponse,
- QueueDeleteResponse,
+from cloudflare.types.r2.buckets import (
+ EventNotificationUpdateResponse,
+ EventNotificationDeleteResponse,
+ EventNotificationGetResponse,
)
```
Methods:
-- client.r2.buckets.event_notifications.configuration.queues.update(queue_id, \*, account_id, bucket_name, \*\*params) -> object
-- client.r2.buckets.event_notifications.configuration.queues.delete(queue_id, \*, account_id, bucket_name) -> object
+- client.r2.buckets.event_notifications.update(queue_id, \*, account_id, bucket_name, \*\*params) -> object
+- client.r2.buckets.event_notifications.delete(queue_id, \*, account_id, bucket_name) -> object
+- client.r2.buckets.event_notifications.get(bucket_name, \*, account_id) -> EventNotificationGetResponse
+
+### Locks
+
+Types:
+
+```python
+from cloudflare.types.r2.buckets import LockUpdateResponse, LockGetResponse
+```
+
+Methods:
+
+- client.r2.buckets.locks.update(bucket_name, \*, account_id, \*\*params) -> object
+- client.r2.buckets.locks.get(bucket_name, \*, account_id) -> LockGetResponse
+
+### Metrics
+
+Types:
+
+```python
+from cloudflare.types.r2.buckets import MetricListResponse
+```
+
+Methods:
+
+- client.r2.buckets.metrics.list(\*, account_id) -> MetricListResponse
### Sippy
@@ -4771,7 +5054,7 @@ from cloudflare.types.workers_for_platforms.dispatch.namespaces.scripts import B
Methods:
-- client.workers_for_platforms.dispatch.namespaces.scripts.bindings.get(script_name, \*, account_id, dispatch_namespace) -> Optional[BindingGetResponse]
+- client.workers_for_platforms.dispatch.namespaces.scripts.bindings.get(script_name, \*, account_id, dispatch_namespace) -> SyncSinglePage[BindingGetResponse]
##### Secrets
@@ -4779,9 +5062,9 @@ Types:
```python
from cloudflare.types.workers_for_platforms.dispatch.namespaces.scripts import (
- WorkersSecretModel,
SecretUpdateResponse,
SecretListResponse,
+ SecretDeleteResponse,
SecretGetResponse,
)
```
@@ -4790,6 +5073,7 @@ Methods:
- client.workers_for_platforms.dispatch.namespaces.scripts.secrets.update(script_name, \*, account_id, dispatch_namespace, \*\*params) -> Optional[SecretUpdateResponse]
- client.workers_for_platforms.dispatch.namespaces.scripts.secrets.list(script_name, \*, account_id, dispatch_namespace) -> SyncSinglePage[SecretListResponse]
+- client.workers_for_platforms.dispatch.namespaces.scripts.secrets.delete(secret_name, \*, account_id, dispatch_namespace, script_name) -> object
- client.workers_for_platforms.dispatch.namespaces.scripts.secrets.get(secret_name, \*, account_id, dispatch_namespace, script_name) -> Optional[SecretGetResponse]
##### Tags
@@ -4806,7 +5090,7 @@ from cloudflare.types.workers_for_platforms.dispatch.namespaces.scripts import (
Methods:
-- client.workers_for_platforms.dispatch.namespaces.scripts.tags.update(script_name, \*, account_id, dispatch_namespace, \*\*params) -> Optional[TagUpdateResponse]
+- client.workers_for_platforms.dispatch.namespaces.scripts.tags.update(script_name, \*, account_id, dispatch_namespace, \*\*params) -> SyncSinglePage[TagUpdateResponse]
- client.workers_for_platforms.dispatch.namespaces.scripts.tags.list(script_name, \*, account_id, dispatch_namespace) -> SyncSinglePage[TagListResponse]
- client.workers_for_platforms.dispatch.namespaces.scripts.tags.delete(tag, \*, account_id, dispatch_namespace, script_name) -> object
@@ -4851,7 +5135,7 @@ Methods:
Types:
```python
-from cloudflare.types.zero_trust.devices import DeviceNetwork, NetworkDeleteResponse
+from cloudflare.types.zero_trust.devices import DeviceNetwork
```
Methods:
@@ -4859,7 +5143,7 @@ Methods:
- client.zero_trust.devices.networks.create(\*, account_id, \*\*params) -> Optional[DeviceNetwork]
- client.zero_trust.devices.networks.update(network_id, \*, account_id, \*\*params) -> Optional[DeviceNetwork]
- client.zero_trust.devices.networks.list(\*, account_id) -> SyncSinglePage[DeviceNetwork]
-- client.zero_trust.devices.networks.delete(network_id, \*, account_id) -> Optional[NetworkDeleteResponse]
+- client.zero_trust.devices.networks.delete(network_id, \*, account_id) -> SyncSinglePage[DeviceNetwork]
- client.zero_trust.devices.networks.get(network_id, \*, account_id) -> Optional[DeviceNetwork]
### FleetStatus
@@ -4904,51 +5188,24 @@ Methods:
##### Excludes
-Types:
-
-```python
-from cloudflare.types.zero_trust.devices.policies.default import (
- ExcludeUpdateResponse,
- ExcludeGetResponse,
-)
-```
-
Methods:
-- client.zero_trust.devices.policies.default.excludes.update(\*, account_id, \*\*params) -> Optional[ExcludeUpdateResponse]
-- client.zero_trust.devices.policies.default.excludes.get(\*, account_id) -> Optional[ExcludeGetResponse]
+- client.zero_trust.devices.policies.default.excludes.update(\*, account_id, \*\*params) -> SyncSinglePage[SplitTunnelExclude]
+- client.zero_trust.devices.policies.default.excludes.get(\*, account_id) -> SyncSinglePage[SplitTunnelExclude]
##### Includes
-Types:
-
-```python
-from cloudflare.types.zero_trust.devices.policies.default import (
- IncludeUpdateResponse,
- IncludeGetResponse,
-)
-```
-
Methods:
-- client.zero_trust.devices.policies.default.includes.update(\*, account_id, \*\*params) -> Optional[IncludeUpdateResponse]
-- client.zero_trust.devices.policies.default.includes.get(\*, account_id) -> Optional[IncludeGetResponse]
+- client.zero_trust.devices.policies.default.includes.update(\*, account_id, \*\*params) -> SyncSinglePage[SplitTunnelInclude]
+- client.zero_trust.devices.policies.default.includes.get(\*, account_id) -> SyncSinglePage[SplitTunnelInclude]
##### FallbackDomains
-Types:
-
-```python
-from cloudflare.types.zero_trust.devices.policies.default import (
- FallbackDomainUpdateResponse,
- FallbackDomainGetResponse,
-)
-```
-
Methods:
-- client.zero_trust.devices.policies.default.fallback_domains.update(\*, account_id, \*\*params) -> Optional[FallbackDomainUpdateResponse]
-- client.zero_trust.devices.policies.default.fallback_domains.get(\*, account_id) -> Optional[FallbackDomainGetResponse]
+- client.zero_trust.devices.policies.default.fallback_domains.update(\*, account_id, \*\*params) -> SyncSinglePage[FallbackDomain]
+- client.zero_trust.devices.policies.default.fallback_domains.get(\*, account_id) -> SyncSinglePage[FallbackDomain]
##### Certificates
@@ -4968,67 +5225,34 @@ Methods:
#### Custom
-Types:
-
-```python
-from cloudflare.types.zero_trust.devices.policies import CustomDeleteResponse
-```
-
Methods:
- client.zero_trust.devices.policies.custom.create(\*, account_id, \*\*params) -> Optional[SettingsPolicy]
- client.zero_trust.devices.policies.custom.list(\*, account_id) -> SyncSinglePage[SettingsPolicy]
-- client.zero_trust.devices.policies.custom.delete(policy_id, \*, account_id) -> Optional[CustomDeleteResponse]
+- client.zero_trust.devices.policies.custom.delete(policy_id, \*, account_id) -> SyncSinglePage[SettingsPolicy]
- client.zero_trust.devices.policies.custom.edit(policy_id, \*, account_id, \*\*params) -> Optional[SettingsPolicy]
- client.zero_trust.devices.policies.custom.get(policy_id, \*, account_id) -> Optional[SettingsPolicy]
##### Excludes
-Types:
-
-```python
-from cloudflare.types.zero_trust.devices.policies.custom import (
- ExcludeUpdateResponse,
- ExcludeGetResponse,
-)
-```
-
Methods:
-- client.zero_trust.devices.policies.custom.excludes.update(policy_id, \*, account_id, \*\*params) -> Optional[ExcludeUpdateResponse]
-- client.zero_trust.devices.policies.custom.excludes.get(policy_id, \*, account_id) -> Optional[ExcludeGetResponse]
+- client.zero_trust.devices.policies.custom.excludes.update(policy_id, \*, account_id, \*\*params) -> SyncSinglePage[SplitTunnelExclude]
+- client.zero_trust.devices.policies.custom.excludes.get(policy_id, \*, account_id) -> SyncSinglePage[SplitTunnelExclude]
##### Includes
-Types:
-
-```python
-from cloudflare.types.zero_trust.devices.policies.custom import (
- IncludeUpdateResponse,
- IncludeGetResponse,
-)
-```
-
Methods:
-- client.zero_trust.devices.policies.custom.includes.update(policy_id, \*, account_id, \*\*params) -> Optional[IncludeUpdateResponse]
-- client.zero_trust.devices.policies.custom.includes.get(policy_id, \*, account_id) -> Optional[IncludeGetResponse]
+- client.zero_trust.devices.policies.custom.includes.update(policy_id, \*, account_id, \*\*params) -> SyncSinglePage[SplitTunnelInclude]
+- client.zero_trust.devices.policies.custom.includes.get(policy_id, \*, account_id) -> SyncSinglePage[SplitTunnelInclude]
##### FallbackDomains
-Types:
-
-```python
-from cloudflare.types.zero_trust.devices.policies.custom import (
- FallbackDomainUpdateResponse,
- FallbackDomainGetResponse,
-)
-```
-
Methods:
-- client.zero_trust.devices.policies.custom.fallback_domains.update(policy_id, \*, account_id, \*\*params) -> Optional[FallbackDomainUpdateResponse]
-- client.zero_trust.devices.policies.custom.fallback_domains.get(policy_id, \*, account_id) -> Optional[FallbackDomainGetResponse]
+- client.zero_trust.devices.policies.custom.fallback_domains.update(policy_id, \*, account_id, \*\*params) -> SyncSinglePage[FallbackDomain]
+- client.zero_trust.devices.policies.custom.fallback_domains.get(policy_id, \*, account_id) -> SyncSinglePage[FallbackDomain]
### Posture
@@ -5150,11 +5374,25 @@ from cloudflare.types.zero_trust import (
Methods:
-- client.zero_trust.identity_providers.create(\*, account_id, zone_id, \*\*params) -> Optional[IdentityProvider]
-- client.zero_trust.identity_providers.update(identity_provider_id, \*, account_id, zone_id, \*\*params) -> Optional[IdentityProvider]
-- client.zero_trust.identity_providers.list(\*, account_id, zone_id, \*\*params) -> SyncSinglePage[IdentityProviderListResponse]
-- client.zero_trust.identity_providers.delete(identity_provider_id, \*, account_id, zone_id) -> Optional[IdentityProviderDeleteResponse]
-- client.zero_trust.identity_providers.get(identity_provider_id, \*, account_id, zone_id) -> Optional[IdentityProvider]
+- client.zero_trust.identity_providers.create(\*, account_id, zone_id, \*\*params) -> Optional[IdentityProvider]
+- client.zero_trust.identity_providers.update(identity_provider_id, \*, account_id, zone_id, \*\*params) -> Optional[IdentityProvider]
+- client.zero_trust.identity_providers.list(\*, account_id, zone_id, \*\*params) -> SyncSinglePage[IdentityProviderListResponse]
+- client.zero_trust.identity_providers.delete(identity_provider_id, \*, account_id, zone_id) -> Optional[IdentityProviderDeleteResponse]
+- client.zero_trust.identity_providers.get(identity_provider_id, \*, account_id, zone_id) -> Optional[IdentityProvider]
+
+### SCIM
+
+#### Groups
+
+Methods:
+
+- client.zero_trust.identity_providers.scim.groups.list(identity_provider_id, \*, account_id, \*\*params) -> SyncSinglePage[ZeroTrustGroup]
+
+#### Users
+
+Methods:
+
+- client.zero_trust.identity_providers.scim.users.list(identity_provider_id, \*, account_id, \*\*params) -> SyncSinglePage[AccessUser]
## Organizations
@@ -5166,10 +5404,10 @@ from cloudflare.types.zero_trust import LoginDesign, Organization, OrganizationR
Methods:
-- client.zero_trust.organizations.create(\*, account_id, zone_id, \*\*params) -> Optional[Organization]
-- client.zero_trust.organizations.update(\*, account_id, zone_id, \*\*params) -> Optional[Organization]
-- client.zero_trust.organizations.list(\*, account_id, zone_id) -> Optional[Organization]
-- client.zero_trust.organizations.revoke_users(\*, account_id, zone_id, \*\*params) -> Optional[OrganizationRevokeUsersResponse]
+- client.zero_trust.organizations.create(\*, account_id, zone_id, \*\*params) -> Optional[Organization]
+- client.zero_trust.organizations.update(\*, account_id, zone_id, \*\*params) -> Optional[Organization]
+- client.zero_trust.organizations.list(\*, account_id, zone_id) -> Optional[Organization]
+- client.zero_trust.organizations.revoke_users(\*, account_id, zone_id, \*\*params) -> Optional[OrganizationRevokeUsersResponse]
### DOH
@@ -5189,42 +5427,15 @@ Methods:
Types:
```python
-from cloudflare.types.zero_trust import Seat, SeatEditResponse
+from cloudflare.types.zero_trust import Seat
```
Methods:
-- client.zero_trust.seats.edit(\*, account_id, \*\*params) -> Optional[SeatEditResponse]
+- client.zero_trust.seats.edit(\*, account_id, \*\*params) -> SyncSinglePage[Seat]
## Access
-Types:
-
-```python
-from cloudflare.types.zero_trust import (
- AccessDevicePostureRule,
- AccessRule,
- AnyValidServiceTokenRule,
- AuthenticationMethodRule,
- AzureGroupRule,
- CertificateRule,
- CountryRule,
- DomainRule,
- EmailListRule,
- EmailRule,
- EveryoneRule,
- ExternalEvaluationRule,
- GitHubOrganizationRule,
- GroupRule,
- GSuiteGroupRule,
- IPListRule,
- IPRule,
- OktaGroupRule,
- SAMLGroupRule,
- ServiceTokenRule,
-)
-```
-
### GatewayCA
Types:
@@ -5305,12 +5516,12 @@ from cloudflare.types.zero_trust.access import (
Methods:
-- client.zero_trust.access.applications.create(\*, account_id, zone_id, \*\*params) -> Optional[ApplicationCreateResponse]
-- client.zero_trust.access.applications.update(app_id, \*, account_id, zone_id, \*\*params) -> Optional[ApplicationUpdateResponse]
-- client.zero_trust.access.applications.list(\*, account_id, zone_id, \*\*params) -> SyncSinglePage[ApplicationListResponse]
-- client.zero_trust.access.applications.delete(app_id, \*, account_id, zone_id) -> Optional[ApplicationDeleteResponse]
-- client.zero_trust.access.applications.get(app_id, \*, account_id, zone_id) -> Optional[ApplicationGetResponse]
-- client.zero_trust.access.applications.revoke_tokens(app_id, \*, account_id, zone_id) -> object
+- client.zero_trust.access.applications.create(\*, account_id, zone_id, \*\*params) -> Optional[ApplicationCreateResponse]
+- client.zero_trust.access.applications.update(app_id, \*, account_id, zone_id, \*\*params) -> Optional[ApplicationUpdateResponse]
+- client.zero_trust.access.applications.list(\*, account_id, zone_id, \*\*params) -> SyncSinglePage[ApplicationListResponse]
+- client.zero_trust.access.applications.delete(app_id, \*, account_id, zone_id) -> Optional[ApplicationDeleteResponse]
+- client.zero_trust.access.applications.get(app_id, \*, account_id, zone_id) -> Optional[ApplicationGetResponse]
+- client.zero_trust.access.applications.revoke_tokens(app_id, \*, account_id, zone_id) -> object
#### CAs
@@ -5322,10 +5533,10 @@ from cloudflare.types.zero_trust.access.applications import CA, CADeleteResponse
Methods:
-- client.zero_trust.access.applications.cas.create(app_id, \*, account_id, zone_id) -> Optional[CA]
-- client.zero_trust.access.applications.cas.list(\*, account_id, zone_id) -> SyncSinglePage[CA]
-- client.zero_trust.access.applications.cas.delete(app_id, \*, account_id, zone_id) -> Optional[CADeleteResponse]
-- client.zero_trust.access.applications.cas.get(app_id, \*, account_id, zone_id) -> Optional[CA]
+- client.zero_trust.access.applications.cas.create(app_id, \*, account_id, zone_id) -> Optional[CA]
+- client.zero_trust.access.applications.cas.list(\*, account_id, zone_id) -> SyncSinglePage[CA]
+- client.zero_trust.access.applications.cas.delete(app_id, \*, account_id, zone_id) -> Optional[CADeleteResponse]
+- client.zero_trust.access.applications.cas.get(app_id, \*, account_id, zone_id) -> Optional[CA]
#### UserPolicyChecks
@@ -5340,7 +5551,7 @@ from cloudflare.types.zero_trust.access.applications import (
Methods:
-- client.zero_trust.access.applications.user_policy_checks.list(app_id, \*, account_id, zone_id) -> Optional[UserPolicyCheckListResponse]
+- client.zero_trust.access.applications.user_policy_checks.list(app_id, \*, account_id, zone_id) -> Optional[UserPolicyCheckListResponse]
#### Policies
@@ -5348,6 +5559,26 @@ Types:
```python
from cloudflare.types.zero_trust.access.applications import (
+ AccessDevicePostureRule,
+ AccessRule,
+ AnyValidServiceTokenRule,
+ AuthenticationMethodRule,
+ AzureGroupRule,
+ CertificateRule,
+ CountryRule,
+ DomainRule,
+ EmailListRule,
+ EmailRule,
+ EveryoneRule,
+ ExternalEvaluationRule,
+ GitHubOrganizationRule,
+ GroupRule,
+ GSuiteGroupRule,
+ IPListRule,
+ IPRule,
+ OktaGroupRule,
+ SAMLGroupRule,
+ ServiceTokenRule,
PolicyCreateResponse,
PolicyUpdateResponse,
PolicyListResponse,
@@ -5358,11 +5589,11 @@ from cloudflare.types.zero_trust.access.applications import (
Methods:
-- client.zero_trust.access.applications.policies.create(app_id, \*, account_id, zone_id, \*\*params) -> Optional[PolicyCreateResponse]
-- client.zero_trust.access.applications.policies.update(policy_id, \*, app_id, account_id, zone_id, \*\*params) -> Optional[PolicyUpdateResponse]
-- client.zero_trust.access.applications.policies.list(app_id, \*, account_id, zone_id) -> SyncSinglePage[PolicyListResponse]
-- client.zero_trust.access.applications.policies.delete(policy_id, \*, app_id, account_id, zone_id) -> Optional[PolicyDeleteResponse]
-- client.zero_trust.access.applications.policies.get(policy_id, \*, app_id, account_id, zone_id) -> Optional[PolicyGetResponse]
+- client.zero_trust.access.applications.policies.create(app_id, \*, account_id, zone_id, \*\*params) -> Optional[PolicyCreateResponse]
+- client.zero_trust.access.applications.policies.update(policy_id, \*, app_id, account_id, zone_id, \*\*params) -> Optional[PolicyUpdateResponse]
+- client.zero_trust.access.applications.policies.list(app_id, \*, account_id, zone_id) -> SyncSinglePage[PolicyListResponse]
+- client.zero_trust.access.applications.policies.delete(policy_id, \*, app_id, account_id, zone_id) -> Optional[PolicyDeleteResponse]
+- client.zero_trust.access.applications.policies.get(policy_id, \*, app_id, account_id, zone_id) -> Optional[PolicyGetResponse]
#### PolicyTests
@@ -5377,8 +5608,8 @@ from cloudflare.types.zero_trust.access.applications import (
Methods:
-- client.zero_trust.access.applications.policy_tests.create(\*, account_id, \*\*params) -> PolicyTestCreateResponse
-- client.zero_trust.access.applications.policy_tests.get(policy_test_id, \*, account_id) -> PolicyTestGetResponse
+- client.zero_trust.access.applications.policy_tests.create(\*, account_id, \*\*params) -> Optional[PolicyTestCreateResponse]
+- client.zero_trust.access.applications.policy_tests.get(policy_test_id, \*, account_id, \*\*params) -> Optional[PolicyTestGetResponse]
##### Users
@@ -5390,7 +5621,7 @@ from cloudflare.types.zero_trust.access.applications.policy_tests import UserLis
Methods:
-- client.zero_trust.access.applications.policy_tests.users.list(policy_test_id, \*, account_id) -> UserListResponse
+- client.zero_trust.access.applications.policy_tests.users.list(policy_test_id, \*, account_id, \*\*params) -> SyncSinglePage[UserListResponse]
### Certificates
@@ -5406,44 +5637,47 @@ from cloudflare.types.zero_trust.access import (
Methods:
-- client.zero_trust.access.certificates.create(\*, account_id, zone_id, \*\*params) -> Optional[Certificate]
-- client.zero_trust.access.certificates.update(certificate_id, \*, account_id, zone_id, \*\*params) -> Optional[Certificate]
-- client.zero_trust.access.certificates.list(\*, account_id, zone_id) -> SyncSinglePage[Certificate]
-- client.zero_trust.access.certificates.delete(certificate_id, \*, account_id, zone_id) -> Optional[CertificateDeleteResponse]
-- client.zero_trust.access.certificates.get(certificate_id, \*, account_id, zone_id) -> Optional[Certificate]
+- client.zero_trust.access.certificates.create(\*, account_id, zone_id, \*\*params) -> Optional[Certificate]
+- client.zero_trust.access.certificates.update(certificate_id, \*, account_id, zone_id, \*\*params) -> Optional[Certificate]
+- client.zero_trust.access.certificates.list(\*, account_id, zone_id) -> SyncSinglePage[Certificate]
+- client.zero_trust.access.certificates.delete(certificate_id, \*, account_id, zone_id) -> Optional[CertificateDeleteResponse]
+- client.zero_trust.access.certificates.get(certificate_id, \*, account_id, zone_id) -> Optional[Certificate]
#### Settings
Types:
```python
-from cloudflare.types.zero_trust.access.certificates import (
- CertificateSettings,
- SettingUpdateResponse,
- SettingGetResponse,
-)
+from cloudflare.types.zero_trust.access.certificates import CertificateSettings
```
Methods:
-- client.zero_trust.access.certificates.settings.update(\*, account_id, zone_id, \*\*params) -> Optional[SettingUpdateResponse]
-- client.zero_trust.access.certificates.settings.get(\*, account_id, zone_id) -> Optional[SettingGetResponse]
+- client.zero_trust.access.certificates.settings.update(\*, account_id, zone_id, \*\*params) -> SyncSinglePage[CertificateSettings]
+- client.zero_trust.access.certificates.settings.get(\*, account_id, zone_id) -> SyncSinglePage[CertificateSettings]
### Groups
Types:
```python
-from cloudflare.types.zero_trust.access import ZeroTrustGroup, GroupDeleteResponse
+from cloudflare.types.zero_trust.access import (
+ ZeroTrustGroup,
+ GroupCreateResponse,
+ GroupUpdateResponse,
+ GroupListResponse,
+ GroupDeleteResponse,
+ GroupGetResponse,
+)
```
Methods:
-- client.zero_trust.access.groups.create(\*, account_id, zone_id, \*\*params) -> Optional[ZeroTrustGroup]
-- client.zero_trust.access.groups.update(group_id, \*, account_id, zone_id, \*\*params) -> Optional[ZeroTrustGroup]
-- client.zero_trust.access.groups.list(\*, account_id, zone_id, \*\*params) -> SyncSinglePage[ZeroTrustGroup]
-- client.zero_trust.access.groups.delete(group_id, \*, account_id, zone_id) -> Optional[GroupDeleteResponse]
-- client.zero_trust.access.groups.get(group_id, \*, account_id, zone_id) -> Optional[ZeroTrustGroup]
+- client.zero_trust.access.groups.create(\*, account_id, zone_id, \*\*params) -> Optional[GroupCreateResponse]
+- client.zero_trust.access.groups.update(group_id, \*, account_id, zone_id, \*\*params) -> Optional[GroupUpdateResponse]
+- client.zero_trust.access.groups.list(\*, account_id, zone_id, \*\*params) -> SyncSinglePage[GroupListResponse]
+- client.zero_trust.access.groups.delete(group_id, \*, account_id, zone_id) -> Optional[GroupDeleteResponse]
+- client.zero_trust.access.groups.get(group_id, \*, account_id, zone_id) -> Optional[GroupGetResponse]
### ServiceTokens
@@ -5459,11 +5693,11 @@ from cloudflare.types.zero_trust.access import (
Methods:
-- client.zero_trust.access.service_tokens.create(\*, account_id, zone_id, \*\*params) -> Optional[ServiceTokenCreateResponse]
-- client.zero_trust.access.service_tokens.update(service_token_id, \*, account_id, zone_id, \*\*params) -> Optional[ServiceToken]
-- client.zero_trust.access.service_tokens.list(\*, account_id, zone_id, \*\*params) -> SyncSinglePage[ServiceToken]
-- client.zero_trust.access.service_tokens.delete(service_token_id, \*, account_id, zone_id) -> Optional[ServiceToken]
-- client.zero_trust.access.service_tokens.get(service_token_id, \*, account_id, zone_id) -> Optional[ServiceToken]
+- client.zero_trust.access.service_tokens.create(\*, account_id, zone_id, \*\*params) -> Optional[ServiceTokenCreateResponse]
+- client.zero_trust.access.service_tokens.update(service_token_id, \*, account_id, zone_id, \*\*params) -> Optional[ServiceToken]
+- client.zero_trust.access.service_tokens.list(\*, account_id, zone_id, \*\*params) -> SyncSinglePage[ServiceToken]
+- client.zero_trust.access.service_tokens.delete(service_token_id, \*, account_id, zone_id) -> Optional[ServiceToken]
+- client.zero_trust.access.service_tokens.get(service_token_id, \*, account_id, zone_id) -> Optional[ServiceToken]
- client.zero_trust.access.service_tokens.refresh(service_token_id, \*, account_id) -> Optional[ServiceToken]
- client.zero_trust.access.service_tokens.rotate(service_token_id, \*, account_id) -> Optional[ServiceTokenRotateResponse]
@@ -5504,24 +5738,44 @@ Methods:
Types:
```python
-from cloudflare.types.zero_trust.access.logs import AccessRequests, AccessRequestListResponse
+from cloudflare.types.zero_trust.access.logs import AccessRequestListResponse
```
Methods:
- client.zero_trust.access.logs.access_requests.list(\*, account_id, \*\*params) -> Optional[AccessRequestListResponse]
+#### SCIM
+
+Types:
+
+```python
+from cloudflare.types.zero_trust.access.logs import AccessRequest
+```
+
+##### Updates
+
+Types:
+
+```python
+from cloudflare.types.zero_trust.access.logs.scim import UpdateListResponse
+```
+
+Methods:
+
+- client.zero_trust.access.logs.scim.updates.list(\*, account_id, \*\*params) -> SyncSinglePage[UpdateListResponse]
+
### Users
Types:
```python
-from cloudflare.types.zero_trust.access import AccessUser
+from cloudflare.types.zero_trust.access import AccessUser, UserListResponse
```
Methods:
-- client.zero_trust.access.users.list(\*, account_id, \*\*params) -> SyncSinglePage[AccessUser]
+- client.zero_trust.access.users.list(\*, account_id, \*\*params) -> SyncSinglePage[UserListResponse]
#### ActiveSessions
@@ -5649,18 +5903,6 @@ Methods:
- client.zero_trust.dex.commands.create(\*, account_id, \*\*params) -> Optional[CommandCreateResponse]
- client.zero_trust.dex.commands.list(\*, account_id, \*\*params) -> SyncV4PagePagination[Optional[CommandListResponse]]
-#### Users
-
-Types:
-
-```python
-from cloudflare.types.zero_trust.dex.commands import UserListResponse
-```
-
-Methods:
-
-- client.zero_trust.dex.commands.users.list(\*, account_id, \*\*params) -> Optional[UserListResponse]
-
#### Devices
Types:
@@ -5809,23 +6051,93 @@ Methods:
Types:
```python
-from cloudflare.types.zero_trust import (
- Connection,
- TunnelCreateResponse,
- TunnelListResponse,
- TunnelDeleteResponse,
- TunnelEditResponse,
- TunnelGetResponse,
+from cloudflare.types.zero_trust import Connection, TunnelListResponse
+```
+
+Methods:
+
+- client.zero_trust.tunnels.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[TunnelListResponse]
+
+### Cloudflared
+
+Types:
+
+```python
+from cloudflare.types.zero_trust.tunnels import (
+ CloudflaredCreateResponse,
+ CloudflaredListResponse,
+ CloudflaredDeleteResponse,
+ CloudflaredEditResponse,
+ CloudflaredGetResponse,
)
```
Methods:
-- client.zero_trust.tunnels.create(\*, account_id, \*\*params) -> TunnelCreateResponse
-- client.zero_trust.tunnels.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[TunnelListResponse]
-- client.zero_trust.tunnels.delete(tunnel_id, \*, account_id) -> TunnelDeleteResponse
-- client.zero_trust.tunnels.edit(tunnel_id, \*, account_id, \*\*params) -> TunnelEditResponse
-- client.zero_trust.tunnels.get(tunnel_id, \*, account_id) -> TunnelGetResponse
+- client.zero_trust.tunnels.cloudflared.create(\*, account_id, \*\*params) -> CloudflaredCreateResponse
+- client.zero_trust.tunnels.cloudflared.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[CloudflaredListResponse]
+- client.zero_trust.tunnels.cloudflared.delete(tunnel_id, \*, account_id) -> CloudflaredDeleteResponse
+- client.zero_trust.tunnels.cloudflared.edit(tunnel_id, \*, account_id, \*\*params) -> CloudflaredEditResponse
+- client.zero_trust.tunnels.cloudflared.get(tunnel_id, \*, account_id) -> CloudflaredGetResponse
+
+#### Configurations
+
+Types:
+
+```python
+from cloudflare.types.zero_trust.tunnels.cloudflared import (
+ ConfigurationUpdateResponse,
+ ConfigurationGetResponse,
+)
+```
+
+Methods:
+
+- client.zero_trust.tunnels.cloudflared.configurations.update(tunnel_id, \*, account_id, \*\*params) -> Optional[ConfigurationUpdateResponse]
+- client.zero_trust.tunnels.cloudflared.configurations.get(tunnel_id, \*, account_id) -> Optional[ConfigurationGetResponse]
+
+#### Connections
+
+Types:
+
+```python
+from cloudflare.types.zero_trust.tunnels.cloudflared import Client, ConnectionDeleteResponse
+```
+
+Methods:
+
+- client.zero_trust.tunnels.cloudflared.connections.delete(tunnel_id, \*, account_id, \*\*params) -> object
+- client.zero_trust.tunnels.cloudflared.connections.get(tunnel_id, \*, account_id) -> SyncSinglePage[Client]
+
+#### Token
+
+Types:
+
+```python
+from cloudflare.types.zero_trust.tunnels.cloudflared import TokenGetResponse
+```
+
+Methods:
+
+- client.zero_trust.tunnels.cloudflared.token.get(tunnel_id, \*, account_id) -> str
+
+#### Connectors
+
+Methods:
+
+- client.zero_trust.tunnels.cloudflared.connectors.get(connector_id, \*, account_id, tunnel_id) -> Client
+
+#### Management
+
+Types:
+
+```python
+from cloudflare.types.zero_trust.tunnels.cloudflared import ManagementCreateResponse
+```
+
+Methods:
+
+- client.zero_trust.tunnels.cloudflared.management.create(tunnel_id, \*, account_id, \*\*params) -> str
### WARPConnector
@@ -5838,81 +6150,28 @@ from cloudflare.types.zero_trust.tunnels import (
WARPConnectorDeleteResponse,
WARPConnectorEditResponse,
WARPConnectorGetResponse,
- WARPConnectorTokenResponse,
)
```
Methods:
-- client.zero_trust.tunnels.warp_connector.create(\*, account_id, \*\*params) -> WARPConnectorCreateResponse
-- client.zero_trust.tunnels.warp_connector.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[WARPConnectorListResponse]
-- client.zero_trust.tunnels.warp_connector.delete(tunnel_id, \*, account_id) -> WARPConnectorDeleteResponse
-- client.zero_trust.tunnels.warp_connector.edit(tunnel_id, \*, account_id, \*\*params) -> WARPConnectorEditResponse
-- client.zero_trust.tunnels.warp_connector.get(tunnel_id, \*, account_id) -> WARPConnectorGetResponse
-- client.zero_trust.tunnels.warp_connector.token(tunnel_id, \*, account_id) -> str
+- client.zero_trust.tunnels.warp_connector.create(\*, account_id, \*\*params) -> WARPConnectorCreateResponse
+- client.zero_trust.tunnels.warp_connector.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[WARPConnectorListResponse]
+- client.zero_trust.tunnels.warp_connector.delete(tunnel_id, \*, account_id) -> WARPConnectorDeleteResponse
+- client.zero_trust.tunnels.warp_connector.edit(tunnel_id, \*, account_id, \*\*params) -> WARPConnectorEditResponse
+- client.zero_trust.tunnels.warp_connector.get(tunnel_id, \*, account_id) -> WARPConnectorGetResponse
-### Configurations
+#### Token
Types:
```python
-from cloudflare.types.zero_trust.tunnels import (
- ConfigurationUpdateResponse,
- ConfigurationGetResponse,
-)
+from cloudflare.types.zero_trust.tunnels.warp_connector import TokenGetResponse
```
Methods:
-- client.zero_trust.tunnels.configurations.update(tunnel_id, \*, account_id, \*\*params) -> Optional[ConfigurationUpdateResponse]
-- client.zero_trust.tunnels.configurations.get(tunnel_id, \*, account_id) -> Optional[ConfigurationGetResponse]
-
-### Connections
-
-Types:
-
-```python
-from cloudflare.types.zero_trust.tunnels import (
- Client,
- ConnectionDeleteResponse,
- ConnectionGetResponse,
-)
-```
-
-Methods:
-
-- client.zero_trust.tunnels.connections.delete(tunnel_id, \*, account_id, \*\*params) -> object
-- client.zero_trust.tunnels.connections.get(tunnel_id, \*, account_id) -> Optional[ConnectionGetResponse]
-
-### Token
-
-Types:
-
-```python
-from cloudflare.types.zero_trust.tunnels import TokenGetResponse
-```
-
-Methods:
-
-- client.zero_trust.tunnels.token.get(tunnel_id, \*, account_id) -> str
-
-### Connectors
-
-Methods:
-
-- client.zero_trust.tunnels.connectors.get(connector_id, \*, account_id, tunnel_id) -> Client
-
-### Management
-
-Types:
-
-```python
-from cloudflare.types.zero_trust.tunnels import ManagementCreateResponse
-```
-
-Methods:
-
-- client.zero_trust.tunnels.management.create(tunnel_id, \*, account_id, \*\*params) -> str
+- client.zero_trust.tunnels.warp_connector.token.get(tunnel_id, \*, account_id) -> str
## ConnectivitySettings
@@ -5971,7 +6230,7 @@ from cloudflare.types.zero_trust.dlp.datasets import VersionCreateResponse
Methods:
-- client.zero_trust.dlp.datasets.versions.create(version, \*, account_id, dataset_id, \*\*params) -> Optional[VersionCreateResponse]
+- client.zero_trust.dlp.datasets.versions.create(version, \*, account_id, dataset_id, \*\*params) -> SyncSinglePage[VersionCreateResponse]
##### Entries
@@ -6301,7 +6560,6 @@ from cloudflare.types.zero_trust.gateway import (
GatewayIPs,
ProxyEndpoint,
ProxyEndpointDeleteResponse,
- ProxyEndpointGetResponse,
)
```
@@ -6311,7 +6569,7 @@ Methods:
- client.zero_trust.gateway.proxy_endpoints.list(\*, account_id) -> Optional[ProxyEndpoint]
- client.zero_trust.gateway.proxy_endpoints.delete(proxy_endpoint_id, \*, account_id) -> object
- client.zero_trust.gateway.proxy_endpoints.edit(proxy_endpoint_id, \*, account_id, \*\*params) -> Optional[ProxyEndpoint]
-- client.zero_trust.gateway.proxy_endpoints.get(proxy_endpoint_id, \*, account_id) -> Optional[ProxyEndpointGetResponse]
+- client.zero_trust.gateway.proxy_endpoints.get(proxy_endpoint_id, \*, account_id) -> SyncSinglePage[ProxyEndpoint]
### Rules
@@ -6410,6 +6668,30 @@ Methods:
- client.zero_trust.networks.virtual_networks.edit(virtual_network_id, \*, account_id, \*\*params) -> VirtualNetwork
- client.zero_trust.networks.virtual_networks.get(virtual_network_id, \*, account_id) -> VirtualNetwork
+### Subnets
+
+Types:
+
+```python
+from cloudflare.types.zero_trust.networks import SubnetListResponse
+```
+
+Methods:
+
+- client.zero_trust.networks.subnets.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[SubnetListResponse]
+
+#### CloudflareSource
+
+Types:
+
+```python
+from cloudflare.types.zero_trust.networks.subnets import CloudflareSourceUpdateResponse
+```
+
+Methods:
+
+- client.zero_trust.networks.subnets.cloudflare_source.update(address_family, \*, account_id, \*\*params) -> CloudflareSourceUpdateResponse
+
## RiskScoring
Types:
@@ -6669,6 +6951,39 @@ Methods:
## AI
+### Inference
+
+#### Summary
+
+Types:
+
+```python
+from cloudflare.types.radar.ai.inference import SummaryModelResponse, SummaryTaskResponse
+```
+
+Methods:
+
+- client.radar.ai.inference.summary.model(\*\*params) -> SummaryModelResponse
+- client.radar.ai.inference.summary.task(\*\*params) -> SummaryTaskResponse
+
+#### TimeseriesGroups
+
+##### Summary
+
+Types:
+
+```python
+from cloudflare.types.radar.ai.inference.timeseries_groups import (
+ SummaryModelResponse,
+ SummaryTaskResponse,
+)
+```
+
+Methods:
+
+- client.radar.ai.inference.timeseries_groups.summary.model(\*\*params) -> SummaryModelResponse
+- client.radar.ai.inference.timeseries_groups.summary.task(\*\*params) -> SummaryTaskResponse
+
### Bots
#### Summary
@@ -6833,6 +7148,16 @@ Methods:
## DNS
+Types:
+
+```python
+from cloudflare.types.radar import DNSTimeseriesResponse
+```
+
+Methods:
+
+- client.radar.dns.timeseries(\*\*params) -> DNSTimeseriesResponse
+
### Top
Types:
@@ -6846,6 +7171,70 @@ Methods:
- client.radar.dns.top.ases(\*\*params) -> TopAsesResponse
- client.radar.dns.top.locations(\*\*params) -> TopLocationsResponse
+### Summary
+
+Types:
+
+```python
+from cloudflare.types.radar.dns import (
+ SummaryCacheHitResponse,
+ SummaryDNSSECResponse,
+ SummaryDNSSECAwareResponse,
+ SummaryDNSSECE2EResponse,
+ SummaryIPVersionResponse,
+ SummaryMatchingAnswerResponse,
+ SummaryProtocolResponse,
+ SummaryQueryTypeResponse,
+ SummaryResponseCodeResponse,
+ SummaryResponseTTLResponse,
+)
+```
+
+Methods:
+
+- client.radar.dns.summary.cache_hit(\*\*params) -> SummaryCacheHitResponse
+- client.radar.dns.summary.dnssec(\*\*params) -> SummaryDNSSECResponse
+- client.radar.dns.summary.dnssec_aware(\*\*params) -> SummaryDNSSECAwareResponse
+- client.radar.dns.summary.dnssec_e2e(\*\*params) -> SummaryDNSSECE2EResponse
+- client.radar.dns.summary.ip_version(\*\*params) -> SummaryIPVersionResponse
+- client.radar.dns.summary.matching_answer(\*\*params) -> SummaryMatchingAnswerResponse
+- client.radar.dns.summary.protocol(\*\*params) -> SummaryProtocolResponse
+- client.radar.dns.summary.query_type(\*\*params) -> SummaryQueryTypeResponse
+- client.radar.dns.summary.response_code(\*\*params) -> SummaryResponseCodeResponse
+- client.radar.dns.summary.response_ttl(\*\*params) -> SummaryResponseTTLResponse
+
+### TimeseriesGroups
+
+Types:
+
+```python
+from cloudflare.types.radar.dns import (
+ TimeseriesGroupCacheHitResponse,
+ TimeseriesGroupDNSSECResponse,
+ TimeseriesGroupDNSSECAwareResponse,
+ TimeseriesGroupDNSSECE2EResponse,
+ TimeseriesGroupIPVersionResponse,
+ TimeseriesGroupMatchingAnswerResponse,
+ TimeseriesGroupProtocolResponse,
+ TimeseriesGroupQueryTypeResponse,
+ TimeseriesGroupResponseCodeResponse,
+ TimeseriesGroupResponseTTLResponse,
+)
+```
+
+Methods:
+
+- client.radar.dns.timeseries_groups.cache_hit(\*\*params) -> TimeseriesGroupCacheHitResponse
+- client.radar.dns.timeseries_groups.dnssec(\*\*params) -> TimeseriesGroupDNSSECResponse
+- client.radar.dns.timeseries_groups.dnssec_aware(\*\*params) -> TimeseriesGroupDNSSECAwareResponse
+- client.radar.dns.timeseries_groups.dnssec_e2e(\*\*params) -> TimeseriesGroupDNSSECE2EResponse
+- client.radar.dns.timeseries_groups.ip_version(\*\*params) -> TimeseriesGroupIPVersionResponse
+- client.radar.dns.timeseries_groups.matching_answer(\*\*params) -> TimeseriesGroupMatchingAnswerResponse
+- client.radar.dns.timeseries_groups.protocol(\*\*params) -> TimeseriesGroupProtocolResponse
+- client.radar.dns.timeseries_groups.query_type(\*\*params) -> TimeseriesGroupQueryTypeResponse
+- client.radar.dns.timeseries_groups.response_code(\*\*params) -> TimeseriesGroupResponseCodeResponse
+- client.radar.dns.timeseries_groups.response_ttl(\*\*params) -> TimeseriesGroupResponseTTLResponse
+
## Netflows
Types:
@@ -7171,7 +7560,6 @@ Types:
from cloudflare.types.radar.attacks.layer3 import (
SummaryBitrateResponse,
SummaryDurationResponse,
- SummaryGetResponse,
SummaryIPVersionResponse,
SummaryProtocolResponse,
SummaryVectorResponse,
@@ -7182,7 +7570,6 @@ Methods:
- client.radar.attacks.layer3.summary.bitrate(\*\*params) -> SummaryBitrateResponse
- client.radar.attacks.layer3.summary.duration(\*\*params) -> SummaryDurationResponse
-- client.radar.attacks.layer3.summary.get(\*\*params) -> SummaryGetResponse
- client.radar.attacks.layer3.summary.ip_version(\*\*params) -> SummaryIPVersionResponse
- client.radar.attacks.layer3.summary.protocol(\*\*params) -> SummaryProtocolResponse
- client.radar.attacks.layer3.summary.vector(\*\*params) -> SummaryVectorResponse
@@ -7195,7 +7582,6 @@ Types:
from cloudflare.types.radar.attacks.layer3 import (
TimeseriesGroupBitrateResponse,
TimeseriesGroupDurationResponse,
- TimeseriesGroupGetResponse,
TimeseriesGroupIndustryResponse,
TimeseriesGroupIPVersionResponse,
TimeseriesGroupProtocolResponse,
@@ -7208,7 +7594,6 @@ Methods:
- client.radar.attacks.layer3.timeseries_groups.bitrate(\*\*params) -> TimeseriesGroupBitrateResponse
- client.radar.attacks.layer3.timeseries_groups.duration(\*\*params) -> TimeseriesGroupDurationResponse
-- client.radar.attacks.layer3.timeseries_groups.get(\*\*params) -> TimeseriesGroupGetResponse
- client.radar.attacks.layer3.timeseries_groups.industry(\*\*params) -> TimeseriesGroupIndustryResponse
- client.radar.attacks.layer3.timeseries_groups.ip_version(\*\*params) -> TimeseriesGroupIPVersionResponse
- client.radar.attacks.layer3.timeseries_groups.protocol(\*\*params) -> TimeseriesGroupProtocolResponse
@@ -7264,7 +7649,6 @@ Types:
```python
from cloudflare.types.radar.attacks.layer7 import (
- SummaryGetResponse,
SummaryHTTPMethodResponse,
SummaryHTTPVersionResponse,
SummaryIPVersionResponse,
@@ -7275,7 +7659,6 @@ from cloudflare.types.radar.attacks.layer7 import (
Methods:
-- client.radar.attacks.layer7.summary.get(\*\*params) -> SummaryGetResponse
- client.radar.attacks.layer7.summary.http_method(\*\*params) -> SummaryHTTPMethodResponse
- client.radar.attacks.layer7.summary.http_version(\*\*params) -> SummaryHTTPVersionResponse
- client.radar.attacks.layer7.summary.ip_version(\*\*params) -> SummaryIPVersionResponse
@@ -7288,7 +7671,6 @@ Types:
```python
from cloudflare.types.radar.attacks.layer7 import (
- TimeseriesGroupGetResponse,
TimeseriesGroupHTTPMethodResponse,
TimeseriesGroupHTTPVersionResponse,
TimeseriesGroupIndustryResponse,
@@ -7301,7 +7683,6 @@ from cloudflare.types.radar.attacks.layer7 import (
Methods:
-- client.radar.attacks.layer7.timeseries_groups.get(\*\*params) -> TimeseriesGroupGetResponse
- client.radar.attacks.layer7.timeseries_groups.http_method(\*\*params) -> TimeseriesGroupHTTPMethodResponse
- client.radar.attacks.layer7.timeseries_groups.http_version(\*\*params) -> TimeseriesGroupHTTPVersionResponse
- client.radar.attacks.layer7.timeseries_groups.industry(\*\*params) -> TimeseriesGroupIndustryResponse
@@ -7765,6 +8146,24 @@ Methods:
- client.radar.ranking.domain.get(domain, \*\*params) -> DomainGetResponse
+### InternetServices
+
+Types:
+
+```python
+from cloudflare.types.radar.ranking import (
+ InternetServiceCategoriesResponse,
+ InternetServiceTimeseriesGroupsResponse,
+ InternetServiceTopResponse,
+)
+```
+
+Methods:
+
+- client.radar.ranking.internet_services.categories(\*\*params) -> InternetServiceCategoriesResponse
+- client.radar.ranking.internet_services.timeseries_groups(\*\*params) -> InternetServiceTimeseriesGroupsResponse
+- client.radar.ranking.internet_services.top(\*\*params) -> InternetServiceTopResponse
+
## TrafficAnomalies
Types:
@@ -7805,6 +8204,66 @@ Methods:
- client.radar.tcp_resets_timeouts.summary(\*\*params) -> TCPResetsTimeoutSummaryResponse
- client.radar.tcp_resets_timeouts.timeseries_groups(\*\*params) -> TCPResetsTimeoutTimeseriesGroupsResponse
+## RobotsTXT
+
+### Top
+
+Types:
+
+```python
+from cloudflare.types.radar.robots_txt import TopDomainCategoriesResponse
+```
+
+Methods:
+
+- client.radar.robots_txt.top.domain_categories(\*\*params) -> TopDomainCategoriesResponse
+
+#### UserAgents
+
+Types:
+
+```python
+from cloudflare.types.radar.robots_txt.top import UserAgentDirectiveResponse
+```
+
+Methods:
+
+- client.radar.robots_txt.top.user_agents.directive(\*\*params) -> UserAgentDirectiveResponse
+
+## LeakedCredentials
+
+### Summary
+
+Types:
+
+```python
+from cloudflare.types.radar.leaked_credentials import (
+ SummaryBotClassResponse,
+ SummaryCompromisedResponse,
+)
+```
+
+Methods:
+
+- client.radar.leaked_credentials.summary.bot_class(\*\*params) -> SummaryBotClassResponse
+- client.radar.leaked_credentials.summary.compromised(\*\*params) -> SummaryCompromisedResponse
+
+### TimeseriesGroups
+
+Types:
+
+```python
+from cloudflare.types.radar.leaked_credentials import (
+ TimeseriesGroupBotClassResponse,
+ TimeseriesGroupCompromisedResponse,
+)
+```
+
+Methods:
+
+- client.radar.leaked_credentials.timeseries_groups.bot_class(\*\*params) -> TimeseriesGroupBotClassResponse
+- client.radar.leaked_credentials.timeseries_groups.compromised(\*\*params) -> TimeseriesGroupCompromisedResponse
+
# BotManagement
Types:
@@ -7841,6 +8300,92 @@ Methods:
- client.origin_post_quantum_encryption.update(\*, zone_id, \*\*params) -> Optional[OriginPostQuantumEncryptionUpdateResponse]
- client.origin_post_quantum_encryption.get(\*, zone_id) -> Optional[OriginPostQuantumEncryptionGetResponse]
+# Zaraz
+
+Types:
+
+```python
+from cloudflare.types.zaraz import ButtonTextTranslation, NeoEvent
+```
+
+Methods:
+
+- client.zaraz.update(\*, zone_id, \*\*params) -> Workflow
+
+## Config
+
+Types:
+
+```python
+from cloudflare.types.zaraz import Configuration
+```
+
+Methods:
+
+- client.zaraz.config.update(\*, zone_id, \*\*params) -> Configuration
+- client.zaraz.config.get(\*, zone_id) -> Configuration
+
+## Default
+
+Methods:
+
+- client.zaraz.default.get(\*, zone_id) -> Configuration
+
+## Export
+
+Methods:
+
+- client.zaraz.export.get(\*, zone_id) -> Configuration
+
+## History
+
+Types:
+
+```python
+from cloudflare.types.zaraz import HistoryListResponse
+```
+
+Methods:
+
+- client.zaraz.history.update(\*, zone_id, \*\*params) -> Configuration
+- client.zaraz.history.list(\*, zone_id, \*\*params) -> SyncSinglePage[HistoryListResponse]
+
+### Configs
+
+Types:
+
+```python
+from cloudflare.types.zaraz.history import ConfigGetResponse
+```
+
+Methods:
+
+- client.zaraz.history.configs.get(\*, zone_id, \*\*params) -> ConfigGetResponse
+
+## Publish
+
+Types:
+
+```python
+from cloudflare.types.zaraz import PublishCreateResponse
+```
+
+Methods:
+
+- client.zaraz.publish.create(\*, zone_id, \*\*params) -> str
+
+## Workflow
+
+Types:
+
+```python
+from cloudflare.types.zaraz import Workflow
+```
+
+Methods:
+
+- client.zaraz.workflow.get(\*, zone_id) -> Workflow
+
# Speed
Types:
@@ -7936,7 +8481,7 @@ Methods:
- client.hostnames.settings.tls.update(hostname, \*, zone_id, setting_id, \*\*params) -> Optional[Setting]
- client.hostnames.settings.tls.delete(hostname, \*, zone_id, setting_id) -> Optional[TLSDeleteResponse]
-- client.hostnames.settings.tls.get(setting_id, \*, zone_id) -> Optional[TLSGetResponse]
+- client.hostnames.settings.tls.get(setting_id, \*, zone_id) -> SyncSinglePage[TLSGetResponse]
# Snippets
@@ -7969,7 +8514,7 @@ from cloudflare.types.snippets import RuleUpdateResponse, RuleListResponse, Rule
Methods:
-- client.snippets.rules.update(\*, zone_id, \*\*params) -> Optional[RuleUpdateResponse]
+- client.snippets.rules.update(\*, zone_id, \*\*params) -> SyncSinglePage[RuleUpdateResponse]
- client.snippets.rules.list(\*, zone_id) -> SyncSinglePage[RuleListResponse]
- client.snippets.rules.delete(\*, zone_id) -> RuleDeleteResponse
@@ -8021,6 +8566,40 @@ Methods:
# CloudforceOne
+## Scans
+
+### Results
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.scans import ScanResult, ResultGetResponse
+```
+
+Methods:
+
+- client.cloudforce_one.scans.results.get(config_id, \*, account_id) -> ResultGetResponse
+
+### Config
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.scans import (
+ ConfigCreateResponse,
+ ConfigListResponse,
+ ConfigDeleteResponse,
+ ConfigEditResponse,
+)
+```
+
+Methods:
+
+- client.cloudforce_one.scans.config.create(\*, account_id, \*\*params) -> Optional[ConfigCreateResponse]
+- client.cloudforce_one.scans.config.list(\*, account_id) -> SyncSinglePage[ConfigListResponse]
+- client.cloudforce_one.scans.config.delete(config_id, \*, account_id) -> object
+- client.cloudforce_one.scans.config.edit(config_id, \*, account_id, \*\*params) -> Optional[ConfigEditResponse]
+
## Requests
Types:
@@ -8033,6 +8612,7 @@ from cloudflare.types.cloudforce_one import (
RequestConstants,
RequestTypes,
RequestDeleteResponse,
+ RequestTypesResponse,
)
```
@@ -8040,23 +8620,19 @@ Methods:
- client.cloudforce_one.requests.create(account_identifier, \*\*params) -> Optional[Item]
- client.cloudforce_one.requests.update(request_identifier, \*, account_identifier, \*\*params) -> Optional[Item]
-- client.cloudforce_one.requests.list(account_identifier, \*\*params) -> SyncV4PagePaginationArray[ListItem]
+- client.cloudforce_one.requests.list(account_identifier, \*\*params) -> SyncSinglePage[ListItem]
- client.cloudforce_one.requests.delete(request_identifier, \*, account_identifier) -> RequestDeleteResponse
- client.cloudforce_one.requests.constants(account_identifier) -> Optional[RequestConstants]
- client.cloudforce_one.requests.get(request_identifier, \*, account_identifier) -> Optional[Item]
- client.cloudforce_one.requests.quota(account_identifier) -> Optional[Quota]
-- client.cloudforce_one.requests.types(account_identifier) -> Optional[RequestTypes]
+- client.cloudforce_one.requests.types(account_identifier) -> SyncSinglePage[RequestTypesResponse]
### Message
Types:
```python
-from cloudflare.types.cloudforce_one.requests import (
- Message,
- MessageDeleteResponse,
- MessageGetResponse,
-)
+from cloudflare.types.cloudforce_one.requests import Message, MessageDeleteResponse
```
Methods:
@@ -8064,7 +8640,7 @@ Methods:
- client.cloudforce_one.requests.message.create(request_identifier, \*, account_identifier, \*\*params) -> Optional[Message]
- client.cloudforce_one.requests.message.update(message_identifer, \*, account_identifier, request_identifier, \*\*params) -> Optional[Message]
- client.cloudforce_one.requests.message.delete(message_identifer, \*, account_identifier, request_identifier) -> MessageDeleteResponse
-- client.cloudforce_one.requests.message.get(request_identifier, \*, account_identifier, \*\*params) -> Optional[MessageGetResponse]
+- client.cloudforce_one.requests.message.get(request_identifier, \*, account_identifier, \*\*params) -> SyncSinglePage[Message]
### Priority
@@ -8102,10 +8678,210 @@ from cloudflare.types.cloudforce_one.requests import (
Methods:
-- client.cloudforce_one.requests.assets.create(request_identifier, \*, account_identifier, \*\*params) -> Optional[AssetCreateResponse]
+- client.cloudforce_one.requests.assets.create(request_identifier, \*, account_identifier, \*\*params) -> SyncSinglePage[AssetCreateResponse]
- client.cloudforce_one.requests.assets.update(asset_identifer, \*, account_identifier, request_identifier, \*\*params) -> Optional[AssetUpdateResponse]
- client.cloudforce_one.requests.assets.delete(asset_identifer, \*, account_identifier, request_identifier) -> AssetDeleteResponse
-- client.cloudforce_one.requests.assets.get(asset_identifer, \*, account_identifier, request_identifier) -> Optional[AssetGetResponse]
+- client.cloudforce_one.requests.assets.get(asset_identifer, \*, account_identifier, request_identifier) -> SyncSinglePage[AssetGetResponse]
+
+## ThreatEvents
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one import (
+ ThreatEventCreateResponse,
+ ThreatEventDeleteResponse,
+ ThreatEventBulkCreateResponse,
+ ThreatEventEditResponse,
+ ThreatEventGetResponse,
+)
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.create(\*, path_account_id, \*\*params) -> ThreatEventCreateResponse
+- client.cloudforce_one.threat_events.delete(event_id, \*, account_id) -> ThreatEventDeleteResponse
+- client.cloudforce_one.threat_events.bulk_create(\*, account_id, \*\*params) -> ThreatEventBulkCreateResponse
+- client.cloudforce_one.threat_events.edit(event_id, \*, account_id, \*\*params) -> ThreatEventEditResponse
+- client.cloudforce_one.threat_events.get(event_id, \*, account_id) -> ThreatEventGetResponse
+
+### Attackers
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import AttackerListResponse
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.attackers.list(\*, account_id) -> AttackerListResponse
+
+### Categories
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import (
+ CategoryCreateResponse,
+ CategoryListResponse,
+ CategoryDeleteResponse,
+ CategoryEditResponse,
+ CategoryGetResponse,
+)
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.categories.create(\*, account_id, \*\*params) -> CategoryCreateResponse
+- client.cloudforce_one.threat_events.categories.list(\*, account_id) -> CategoryListResponse
+- client.cloudforce_one.threat_events.categories.delete(category_id, \*, account_id) -> CategoryDeleteResponse
+- client.cloudforce_one.threat_events.categories.edit(category_id, \*, account_id, \*\*params) -> CategoryEditResponse
+- client.cloudforce_one.threat_events.categories.get(category_id, \*, account_id) -> CategoryGetResponse
+
+### Countries
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import CountryListResponse
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.countries.list(\*, account_id) -> CountryListResponse
+
+### Crons
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import CronListResponse, CronEditResponse
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.crons.list(\*, account_id) -> CronListResponse
+- client.cloudforce_one.threat_events.crons.edit(\*, account_id) -> CronEditResponse
+
+### Datasets
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import (
+ DatasetCreateResponse,
+ DatasetListResponse,
+ DatasetEditResponse,
+ DatasetGetResponse,
+ DatasetRawResponse,
+)
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.datasets.create(\*, account_id, \*\*params) -> DatasetCreateResponse
+- client.cloudforce_one.threat_events.datasets.list(\*, account_id) -> DatasetListResponse
+- client.cloudforce_one.threat_events.datasets.edit(dataset_id, \*, account_id, \*\*params) -> DatasetEditResponse
+- client.cloudforce_one.threat_events.datasets.get(dataset_id, \*, account_id) -> DatasetGetResponse
+- client.cloudforce_one.threat_events.datasets.raw(event_id, \*, account_id, dataset_id) -> DatasetRawResponse
+
+### IndicatorTypes
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import IndicatorTypeListResponse
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.indicator_types.list(\*, account_id) -> IndicatorTypeListResponse
+
+### Raw
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import RawEditResponse, RawGetResponse
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.raw.edit(raw_id, \*, account_id, event_id, \*\*params) -> RawEditResponse
+- client.cloudforce_one.threat_events.raw.get(raw_id, \*, account_id, event_id) -> RawGetResponse
+
+### Relate
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import RelateDeleteResponse
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.relate.delete(event_id, \*, account_id) -> RelateDeleteResponse
+
+### Tags
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import TagCreateResponse
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.tags.create(\*, account_id, \*\*params) -> TagCreateResponse
+
+### EventTags
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import (
+ EventTagCreateResponse,
+ EventTagDeleteResponse,
+)
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.event_tags.create(event_id, \*, account_id, \*\*params) -> EventTagCreateResponse
+- client.cloudforce_one.threat_events.event_tags.delete(event_id, \*, account_id) -> EventTagDeleteResponse
+
+### TargetIndustries
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import TargetIndustryListResponse
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.target_industries.list(\*, account_id) -> TargetIndustryListResponse
+
+### Insights
+
+Types:
+
+```python
+from cloudflare.types.cloudforce_one.threat_events import (
+ InsightCreateResponse,
+ InsightDeleteResponse,
+ InsightEditResponse,
+ InsightGetResponse,
+)
+```
+
+Methods:
+
+- client.cloudforce_one.threat_events.insights.create(event_id, \*, account_id, \*\*params) -> InsightCreateResponse
+- client.cloudforce_one.threat_events.insights.delete(insight_id, \*, account_id, event_id) -> InsightDeleteResponse
+- client.cloudforce_one.threat_events.insights.edit(insight_id, \*, account_id, event_id, \*\*params) -> InsightEditResponse
+- client.cloudforce_one.threat_events.insights.get(insight_id, \*, account_id, event_id) -> InsightGetResponse
# AIGateway
@@ -8134,12 +8910,12 @@ Methods:
Types:
```python
-from cloudflare.types.ai_gateway import EvaluationTypeGetResponse
+from cloudflare.types.ai_gateway import EvaluationTypeListResponse
```
Methods:
-- client.ai_gateway.evaluation_types.get(\*, account_id, \*\*params) -> EvaluationTypeGetResponse
+- client.ai_gateway.evaluation_types.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[EvaluationTypeListResponse]
## Logs
@@ -8207,6 +8983,18 @@ Methods:
- client.ai_gateway.evaluations.delete(id, \*, account_id, gateway_id) -> EvaluationDeleteResponse
- client.ai_gateway.evaluations.get(id, \*, account_id, gateway_id) -> EvaluationGetResponse
+## URLs
+
+Types:
+
+```python
+from cloudflare.types.ai_gateway import URLGetResponse
+```
+
+Methods:
+
+- client.ai_gateway.urls.get(provider, \*, account_id, gateway_id) -> str
+
# IAM
## PermissionGroups
@@ -8219,7 +9007,7 @@ from cloudflare.types.iam import PermissionGroupListResponse, PermissionGroupGet
Methods:
-- client.iam.permission_groups.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[object]
+- client.iam.permission_groups.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[PermissionGroupListResponse]
- client.iam.permission_groups.get(permission_group_id, \*, account_id) -> PermissionGroupGetResponse
## ResourceGroups
@@ -8240,7 +9028,7 @@ Methods:
- client.iam.resource_groups.create(\*, account_id, \*\*params) -> ResourceGroupCreateResponse
- client.iam.resource_groups.update(resource_group_id, \*, account_id, \*\*params) -> ResourceGroupUpdateResponse
-- client.iam.resource_groups.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[object]
+- client.iam.resource_groups.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[ResourceGroupListResponse]
- client.iam.resource_groups.delete(resource_group_id, \*, account_id) -> Optional[ResourceGroupDeleteResponse]
- client.iam.resource_groups.get(resource_group_id, \*, account_id) -> ResourceGroupGetResponse
@@ -8256,7 +9044,7 @@ from cloudflare.types.cloud_connector import RuleUpdateResponse, RuleListRespons
Methods:
-- client.cloud_connector.rules.update(\*, zone_id, \*\*params) -> Optional[RuleUpdateResponse]
+- client.cloud_connector.rules.update(\*, zone_id, \*\*params) -> SyncSinglePage[RuleUpdateResponse]
- client.cloud_connector.rules.list(\*, zone_id) -> SyncSinglePage[RuleListResponse]
# BotnetFeed
@@ -8333,6 +9121,7 @@ Types:
from cloudflare.types.workflows import (
InstanceCreateResponse,
InstanceListResponse,
+ InstanceBulkResponse,
InstanceGetResponse,
)
```
@@ -8341,6 +9130,7 @@ Methods:
- client.workflows.instances.create(workflow_name, \*, account_id, \*\*params) -> InstanceCreateResponse
- client.workflows.instances.list(workflow_name, \*, account_id, \*\*params) -> SyncV4PagePaginationArray[InstanceListResponse]
+- client.workflows.instances.bulk(workflow_name, \*, account_id, \*\*params) -> SyncSinglePage[InstanceBulkResponse]
- client.workflows.instances.get(instance_id, \*, account_id, workflow_name) -> InstanceGetResponse
### Status
@@ -8498,9 +9288,9 @@ from cloudflare.types.content_scanning import (
Methods:
-- client.content_scanning.payloads.create(\*, zone_id, \*\*params) -> Optional[PayloadCreateResponse]
+- client.content_scanning.payloads.create(\*, zone_id, \*\*params) -> SyncSinglePage[PayloadCreateResponse]
- client.content_scanning.payloads.list(\*, zone_id) -> SyncSinglePage[PayloadListResponse]
-- client.content_scanning.payloads.delete(expression_id, \*, zone_id) -> Optional[PayloadDeleteResponse]
+- client.content_scanning.payloads.delete(expression_id, \*, zone_id) -> SyncSinglePage[PayloadDeleteResponse]
## Settings
@@ -8622,3 +9412,128 @@ from cloudflare.types.ai.models import SchemaGetResponse
Methods:
- client.ai.models.schema.get(\*, account_id, \*\*params) -> object
+
+# SecurityCenter
+
+## Insights
+
+Types:
+
+```python
+from cloudflare.types.security_center import InsightListResponse, InsightDismissResponse
+```
+
+Methods:
+
+- client.security_center.insights.list(\*, account_id, zone_id, \*\*params) -> SyncV4PagePagination[Optional[InsightListResponse]]
+- client.security_center.insights.dismiss(issue_id, \*, account_id, zone_id, \*\*params) -> InsightDismissResponse
+
+### Class
+
+Types:
+
+```python
+from cloudflare.types.security_center.insights import ClassGetResponse
+```
+
+Methods:
+
+- client.security*center.insights.class*.get(\*, account_id, zone_id, \*\*params) -> Optional[ClassGetResponse]
+
+### Severity
+
+Types:
+
+```python
+from cloudflare.types.security_center.insights import SeverityGetResponse
+```
+
+Methods:
+
+- client.security_center.insights.severity.get(\*, account_id, zone_id, \*\*params) -> Optional[SeverityGetResponse]
+
+### Type
+
+Types:
+
+```python
+from cloudflare.types.security_center.insights import TypeGetResponse
+```
+
+Methods:
+
+- client.security_center.insights.type.get(\*, account_id, zone_id, \*\*params) -> Optional[TypeGetResponse]
+
+# BrowserRendering
+
+## Content
+
+Types:
+
+```python
+from cloudflare.types.browser_rendering import ContentCreateResponse
+```
+
+Methods:
+
+- client.browser_rendering.content.create(\*, account_id, \*\*params) -> str
+
+## PDF
+
+Methods:
+
+- client.browser_rendering.pdf.create(\*, account_id, \*\*params) -> BinaryAPIResponse
+
+## Scrape
+
+Types:
+
+```python
+from cloudflare.types.browser_rendering import ScrapeCreateResponse
+```
+
+Methods:
+
+- client.browser_rendering.scrape.create(\*, account_id, \*\*params) -> ScrapeCreateResponse
+
+## Screenshot
+
+Types:
+
+```python
+from cloudflare.types.browser_rendering import ScreenshotCreateResponse
+```
+
+Methods:
+
+- client.browser_rendering.screenshot.create(\*, account_id, \*\*params) -> ScreenshotCreateResponse
+
+## Snapshot
+
+Types:
+
+```python
+from cloudflare.types.browser_rendering import SnapshotCreateResponse
+```
+
+Methods:
+
+- client.browser_rendering.snapshot.create(\*, account_id, \*\*params) -> Optional[SnapshotCreateResponse]
+
+# CustomPages
+
+Types:
+
+```python
+from cloudflare.types.custom_pages import (
+ CustomPageUpdateResponse,
+ CustomPageListResponse,
+ CustomPageGetResponse,
+)
+```
+
+Methods:
+
+- client.custom_pages.update(identifier, \*, account_id, zone_id, \*\*params) -> Optional[CustomPageUpdateResponse]
+- client.custom_pages.list(\*, account_id, zone_id) -> SyncSinglePage[object]
+- client.custom_pages.get(identifier, \*, account_id, zone_id) -> Optional[CustomPageGetResponse]
diff --git a/bin/publish-pypi b/bin/publish-pypi
index 05bfccbb7..826054e92 100644
--- a/bin/publish-pypi
+++ b/bin/publish-pypi
@@ -3,7 +3,4 @@
set -eux
mkdir -p dist
rye build --clean
-# Patching importlib-metadata version until upstream library version is updated
-# https://github.com/pypa/twine/issues/977#issuecomment-2189800841
-"$HOME/.rye/self/bin/python3" -m pip install 'importlib-metadata==7.2.1'
rye publish --yes --token=$PYPI_TOKEN
diff --git a/mypy.ini b/mypy.ini
index 4511df962..e929ff8ca 100644
--- a/mypy.ini
+++ b/mypy.ini
@@ -41,7 +41,7 @@ cache_fine_grained = True
# ```
# Changing this codegen to make mypy happy would increase complexity
# and would not be worth it.
-disable_error_code = func-returns-value
+disable_error_code = func-returns-value,overload-cannot-match
# https://github.com/python/mypy/issues/12162
[mypy.overrides]
diff --git a/pyproject.toml b/pyproject.toml
index 2dcb85b55..94e2b8e68 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "cloudflare"
-version = "4.0.0"
+version = "4.1.0"
description = "The official Python library for the cloudflare API"
dynamic = ["readme"]
license = "Apache-2.0"
@@ -38,7 +38,6 @@ Homepage = "https://github.com/cloudflare/cloudflare-python"
Repository = "https://github.com/cloudflare/cloudflare-python"
-
[tool.rye]
managed = true
# version pins are in requirements-dev.lock
@@ -54,6 +53,7 @@ dev-dependencies = [
"dirty-equals>=0.6.0",
"importlib-metadata>=6.7.0",
"rich>=13.7.1",
+ "nest_asyncio==1.6.0",
]
[tool.rye.scripts]
@@ -86,7 +86,7 @@ typecheck = { chain = [
"typecheck:mypy" = "mypy ."
[build-system]
-requires = ["hatchling", "hatch-fancy-pypi-readme"]
+requires = ["hatchling==1.26.3", "hatch-fancy-pypi-readme"]
build-backend = "hatchling.build"
[tool.hatch.build]
@@ -128,6 +128,7 @@ testpaths = ["tests"]
addopts = "--tb=short"
xfail_strict = true
asyncio_mode = "auto"
+asyncio_default_fixture_loop_scope = "session"
filterwarnings = [
"error"
]
@@ -176,7 +177,7 @@ select = [
"T201",
"T203",
# misuse of typing.TYPE_CHECKING
- "TCH004",
+ "TC004",
# import rules
"TID251",
]
diff --git a/requirements-dev.lock b/requirements-dev.lock
index 83265a0ae..91579dc20 100644
--- a/requirements-dev.lock
+++ b/requirements-dev.lock
@@ -7,6 +7,7 @@
# all-features: true
# with-sources: false
# generate-hashes: false
+# universal: false
-e file:.
annotated-types==0.6.0
@@ -48,9 +49,10 @@ markdown-it-py==3.0.0
# via rich
mdurl==0.1.2
# via markdown-it-py
-mypy==1.13.0
+mypy==1.14.1
mypy-extensions==1.0.0
# via mypy
+nest-asyncio==1.6.0
nodeenv==1.8.0
# via pyright
nox==2023.4.22
@@ -67,7 +69,7 @@ pydantic-core==2.27.1
# via pydantic
pygments==2.18.0
# via rich
-pyright==1.1.390
+pyright==1.1.392.post0
pytest==8.3.3
# via pytest-asyncio
pytest-asyncio==0.24.0
@@ -77,7 +79,7 @@ pytz==2023.3.post1
# via dirty-equals
respx==0.22.0
rich==13.7.1
-ruff==0.6.9
+ruff==0.9.4
setuptools==68.2.2
# via nodeenv
six==1.16.0
diff --git a/requirements.lock b/requirements.lock
index 0463774b0..4752e59fd 100644
--- a/requirements.lock
+++ b/requirements.lock
@@ -7,6 +7,7 @@
# all-features: true
# with-sources: false
# generate-hashes: false
+# universal: false
-e file:.
annotated-types==0.6.0
diff --git a/scripts/bootstrap b/scripts/bootstrap
index 8c5c60eba..e84fe62c3 100755
--- a/scripts/bootstrap
+++ b/scripts/bootstrap
@@ -4,7 +4,7 @@ set -e
cd "$(dirname "$0")/.."
-if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ]; then
+if ! command -v rye >/dev/null 2>&1 && [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ]; then
brew bundle check >/dev/null 2>&1 || {
echo "==> Installing Homebrew dependencies…"
brew bundle
diff --git a/scripts/lint b/scripts/lint
index aa39f69ff..9ad76783d 100755
--- a/scripts/lint
+++ b/scripts/lint
@@ -9,4 +9,3 @@ rye run lint
echo "==> Making sure it imports"
rye run python -c 'import cloudflare'
-
diff --git a/scripts/test b/scripts/test
index 4fa5698b8..2b8784567 100755
--- a/scripts/test
+++ b/scripts/test
@@ -52,6 +52,8 @@ else
echo
fi
+export DEFER_PYDANTIC_BUILD=false
+
echo "==> Running tests"
rye run pytest "$@"
diff --git a/scripts/utils/ruffen-docs.py b/scripts/utils/ruffen-docs.py
index 37b3d94f0..0cf2bd2fd 100644
--- a/scripts/utils/ruffen-docs.py
+++ b/scripts/utils/ruffen-docs.py
@@ -47,7 +47,7 @@ def format_str(
with _collect_error(match):
code = format_code_block(code)
code = textwrap.indent(code, match["indent"])
- return f'{match["before"]}{code}{match["after"]}'
+ return f"{match['before']}{code}{match['after']}"
def _pycon_match(match: Match[str]) -> str:
code = ""
@@ -97,7 +97,7 @@ def format_str(
def _md_pycon_match(match: Match[str]) -> str:
code = _pycon_match(match)
code = textwrap.indent(code, match["indent"])
- return f'{match["before"]}{code}{match["after"]}'
+ return f"{match['before']}{code}{match['after']}"
src = MD_RE.sub(_md_match, src)
src = MD_PYCON_RE.sub(_md_pycon_match, src)
diff --git a/src/cloudflare/_base_client.py b/src/cloudflare/_base_client.py
index c8867a59b..649c86dfd 100644
--- a/src/cloudflare/_base_client.py
+++ b/src/cloudflare/_base_client.py
@@ -9,7 +9,6 @@ import asyncio
import inspect
import logging
import platform
-import warnings
import email.utils
from types import TracebackType
from random import random
@@ -36,7 +35,7 @@ import anyio
import httpx
import distro
import pydantic
-from httpx import URL, Limits
+from httpx import URL
from pydantic import PrivateAttr
from . import _exceptions
@@ -51,19 +50,16 @@ from ._types import (
Timeout,
NotGiven,
ResponseT,
- Transport,
AnyMapping,
PostParser,
- ProxiesTypes,
RequestFiles,
HttpxSendArgs,
- AsyncTransport,
RequestOptions,
HttpxRequestFiles,
ModelBuilderProtocol,
)
from ._utils import is_dict, is_list, asyncify, is_given, lru_cache, is_mapping
-from ._compat import model_copy, model_dump
+from ._compat import PYDANTIC_V2, model_copy, model_dump
from ._models import GenericModel, FinalRequestOptions, validate_type, construct_type
from ._response import (
APIResponse,
@@ -207,6 +203,9 @@ class BaseSyncPage(BasePage[_T], Generic[_T]):
model: Type[_T],
options: FinalRequestOptions,
) -> None:
+ if PYDANTIC_V2 and getattr(self, "__pydantic_private__", None) is None:
+ self.__pydantic_private__ = {}
+
self._model = model
self._client = client
self._options = options
@@ -292,6 +291,9 @@ class BaseAsyncPage(BasePage[_T], Generic[_T]):
client: AsyncAPIClient,
options: FinalRequestOptions,
) -> None:
+ if PYDANTIC_V2 and getattr(self, "__pydantic_private__", None) is None:
+ self.__pydantic_private__ = {}
+
self._model = model
self._client = client
self._options = options
@@ -331,9 +333,6 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
_base_url: URL
max_retries: int
timeout: Union[float, Timeout, None]
- _limits: httpx.Limits
- _proxies: ProxiesTypes | None
- _transport: Transport | AsyncTransport | None
_strict_response_validation: bool
_idempotency_header: str | None
_default_stream_cls: type[_DefaultStreamT] | None = None
@@ -346,9 +345,6 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
_strict_response_validation: bool,
max_retries: int = DEFAULT_MAX_RETRIES,
timeout: float | Timeout | None = DEFAULT_TIMEOUT,
- limits: httpx.Limits,
- transport: Transport | AsyncTransport | None,
- proxies: ProxiesTypes | None,
custom_headers: Mapping[str, str] | None = None,
custom_query: Mapping[str, object] | None = None,
) -> None:
@@ -356,9 +352,6 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
self._base_url = self._enforce_trailing_slash(URL(base_url))
self.max_retries = max_retries
self.timeout = timeout
- self._limits = limits
- self._proxies = proxies
- self._transport = transport
self._custom_headers = custom_headers or {}
self._custom_query = custom_query or {}
self._strict_response_validation = _strict_response_validation
@@ -418,10 +411,17 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
if idempotency_header and options.method.lower() != "get" and idempotency_header not in headers:
headers[idempotency_header] = options.idempotency_key or self._idempotency_key()
- # Don't set the retry count header if it was already set or removed by the caller. We check
+ # Don't set these headers if they were already set or removed by the caller. We check
# `custom_headers`, which can contain `Omit()`, instead of `headers` to account for the removal case.
- if "x-stainless-retry-count" not in (header.lower() for header in custom_headers):
+ lower_custom_headers = [header.lower() for header in custom_headers]
+ if "x-stainless-retry-count" not in lower_custom_headers:
headers["x-stainless-retry-count"] = str(retries_taken)
+ if "x-stainless-read-timeout" not in lower_custom_headers:
+ timeout = self.timeout if isinstance(options.timeout, NotGiven) else options.timeout
+ if isinstance(timeout, Timeout):
+ timeout = timeout.read
+ if timeout is not None:
+ headers["x-stainless-read-timeout"] = str(timeout)
return headers
@@ -511,7 +511,7 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
# so that passing a `TypedDict` doesn't cause an error.
# https://github.com/microsoft/pyright/issues/3526#event-6715453066
params=self.qs.stringify(cast(Mapping[str, Any], params)) if params else None,
- json=json_data,
+ json=json_data if is_given(json_data) else None,
files=files,
**kwargs,
)
@@ -787,46 +787,11 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
base_url: str | URL,
max_retries: int = DEFAULT_MAX_RETRIES,
timeout: float | Timeout | None | NotGiven = NOT_GIVEN,
- transport: Transport | None = None,
- proxies: ProxiesTypes | None = None,
- limits: Limits | None = None,
http_client: httpx.Client | None = None,
custom_headers: Mapping[str, str] | None = None,
custom_query: Mapping[str, object] | None = None,
_strict_response_validation: bool,
) -> None:
- kwargs: dict[str, Any] = {}
- if limits is not None:
- warnings.warn(
- "The `connection_pool_limits` argument is deprecated. The `http_client` argument should be passed instead",
- category=DeprecationWarning,
- stacklevel=3,
- )
- if http_client is not None:
- raise ValueError("The `http_client` argument is mutually exclusive with `connection_pool_limits`")
- else:
- limits = DEFAULT_CONNECTION_LIMITS
-
- if transport is not None:
- kwargs["transport"] = transport
- warnings.warn(
- "The `transport` argument is deprecated. The `http_client` argument should be passed instead",
- category=DeprecationWarning,
- stacklevel=3,
- )
- if http_client is not None:
- raise ValueError("The `http_client` argument is mutually exclusive with `transport`")
-
- if proxies is not None:
- kwargs["proxies"] = proxies
- warnings.warn(
- "The `proxies` argument is deprecated. The `http_client` argument should be passed instead",
- category=DeprecationWarning,
- stacklevel=3,
- )
- if http_client is not None:
- raise ValueError("The `http_client` argument is mutually exclusive with `proxies`")
-
if not is_given(timeout):
# if the user passed in a custom http client with a non-default
# timeout set then we use that timeout.
@@ -847,12 +812,9 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
super().__init__(
version=version,
- limits=limits,
# cast to a valid type because mypy doesn't understand our type narrowing
timeout=cast(Timeout, timeout),
- proxies=proxies,
base_url=base_url,
- transport=transport,
max_retries=max_retries,
custom_query=custom_query,
custom_headers=custom_headers,
@@ -862,9 +824,6 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
base_url=base_url,
# cast to a valid type because mypy doesn't understand our type narrowing
timeout=cast(Timeout, timeout),
- limits=limits,
- follow_redirects=True,
- **kwargs, # type: ignore
)
def is_closed(self) -> bool:
@@ -1359,45 +1318,10 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
_strict_response_validation: bool,
max_retries: int = DEFAULT_MAX_RETRIES,
timeout: float | Timeout | None | NotGiven = NOT_GIVEN,
- transport: AsyncTransport | None = None,
- proxies: ProxiesTypes | None = None,
- limits: Limits | None = None,
http_client: httpx.AsyncClient | None = None,
custom_headers: Mapping[str, str] | None = None,
custom_query: Mapping[str, object] | None = None,
) -> None:
- kwargs: dict[str, Any] = {}
- if limits is not None:
- warnings.warn(
- "The `connection_pool_limits` argument is deprecated. The `http_client` argument should be passed instead",
- category=DeprecationWarning,
- stacklevel=3,
- )
- if http_client is not None:
- raise ValueError("The `http_client` argument is mutually exclusive with `connection_pool_limits`")
- else:
- limits = DEFAULT_CONNECTION_LIMITS
-
- if transport is not None:
- kwargs["transport"] = transport
- warnings.warn(
- "The `transport` argument is deprecated. The `http_client` argument should be passed instead",
- category=DeprecationWarning,
- stacklevel=3,
- )
- if http_client is not None:
- raise ValueError("The `http_client` argument is mutually exclusive with `transport`")
-
- if proxies is not None:
- kwargs["proxies"] = proxies
- warnings.warn(
- "The `proxies` argument is deprecated. The `http_client` argument should be passed instead",
- category=DeprecationWarning,
- stacklevel=3,
- )
- if http_client is not None:
- raise ValueError("The `http_client` argument is mutually exclusive with `proxies`")
-
if not is_given(timeout):
# if the user passed in a custom http client with a non-default
# timeout set then we use that timeout.
@@ -1419,11 +1343,8 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
super().__init__(
version=version,
base_url=base_url,
- limits=limits,
# cast to a valid type because mypy doesn't understand our type narrowing
timeout=cast(Timeout, timeout),
- proxies=proxies,
- transport=transport,
max_retries=max_retries,
custom_query=custom_query,
custom_headers=custom_headers,
@@ -1433,9 +1354,6 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
base_url=base_url,
# cast to a valid type because mypy doesn't understand our type narrowing
timeout=cast(Timeout, timeout),
- limits=limits,
- follow_redirects=True,
- **kwargs, # type: ignore
)
def is_closed(self) -> bool:
diff --git a/src/cloudflare/_client.py b/src/cloudflare/_client.py
index f48b5ae23..f3a206433 100644
--- a/src/cloudflare/_client.py
+++ b/src/cloudflare/_client.py
@@ -57,6 +57,7 @@ if TYPE_CHECKING:
radar,
rules,
speed,
+ zaraz,
zones,
images,
queues,
@@ -89,6 +90,7 @@ if TYPE_CHECKING:
page_shield,
rate_limits,
url_scanner,
+ custom_pages,
dns_firewall,
healthchecks,
security_txt,
@@ -104,10 +106,12 @@ if TYPE_CHECKING:
cloud_connector,
durable_objects,
request_tracers,
+ security_center,
brand_protection,
content_scanning,
custom_hostnames,
resource_sharing,
+ browser_rendering,
mtls_certificates,
url_normalization,
custom_nameservers,
@@ -115,7 +119,9 @@ if TYPE_CHECKING:
client_certificates,
custom_certificates,
keyless_certificates,
+ network_interconnects,
workers_for_platforms,
+ magic_cloud_networking,
origin_ca_certificates,
origin_tls_client_auth,
certificate_authorities,
@@ -149,7 +155,9 @@ if TYPE_CHECKING:
from .resources.rate_limits import RateLimitsResource, AsyncRateLimitsResource
from .resources.rules.rules import RulesResource, AsyncRulesResource
from .resources.speed.speed import SpeedResource, AsyncSpeedResource
+ from .resources.zaraz.zaraz import ZarazResource, AsyncZarazResource
from .resources.zones.zones import ZonesResource, AsyncZonesResource
+ from .resources.custom_pages import CustomPagesResource, AsyncCustomPagesResource
from .resources.security_txt import SecurityTXTResource, AsyncSecurityTXTResource
from .resources.abuse_reports import AbuseReportsResource, AsyncAbuseReportsResource
from .resources.images.images import ImagesResource, AsyncImagesResource
@@ -202,18 +210,28 @@ if TYPE_CHECKING:
from .resources.cloud_connector.cloud_connector import CloudConnectorResource, AsyncCloudConnectorResource
from .resources.durable_objects.durable_objects import DurableObjectsResource, AsyncDurableObjectsResource
from .resources.request_tracers.request_tracers import RequestTracersResource, AsyncRequestTracersResource
+ from .resources.security_center.security_center import SecurityCenterResource, AsyncSecurityCenterResource
from .resources.content_scanning.content_scanning import ContentScanningResource, AsyncContentScanningResource
from .resources.custom_hostnames.custom_hostnames import CustomHostnamesResource, AsyncCustomHostnamesResource
from .resources.resource_sharing.resource_sharing import ResourceSharingResource, AsyncResourceSharingResource
+ from .resources.browser_rendering.browser_rendering import BrowserRenderingResource, AsyncBrowserRenderingResource
from .resources.mtls_certificates.mtls_certificates import MTLSCertificatesResource, AsyncMTLSCertificatesResource
from .resources.custom_certificates.custom_certificates import (
CustomCertificatesResource,
AsyncCustomCertificatesResource,
)
+ from .resources.network_interconnects.network_interconnects import (
+ NetworkInterconnectsResource,
+ AsyncNetworkInterconnectsResource,
+ )
from .resources.workers_for_platforms.workers_for_platforms import (
WorkersForPlatformsResource,
AsyncWorkersForPlatformsResource,
)
+ from .resources.magic_cloud_networking.magic_cloud_networking import (
+ MagicCloudNetworkingResource,
+ AsyncMagicCloudNetworkingResource,
+ )
from .resources.origin_tls_client_auth.origin_tls_client_auth import (
OriginTLSClientAuthResource,
AsyncOriginTLSClientAuthResource,
@@ -276,7 +294,7 @@ class Cloudflare(SyncAPIClient):
# part of our public interface in the future.
_strict_response_validation: bool = False,
) -> None:
- """Construct a new synchronous cloudflare client instance.
+ """Construct a new synchronous Cloudflare client instance.
This automatically infers the following arguments from their corresponding environment variables if they are not provided:
- `api_token` from `CLOUDFLARE_API_TOKEN`
@@ -616,6 +634,18 @@ class Cloudflare(SyncAPIClient):
return MagicNetworkMonitoringResource(self)
+ @cached_property
+ def magic_cloud_networking(self) -> MagicCloudNetworkingResource:
+ from .resources.magic_cloud_networking import MagicCloudNetworkingResource
+
+ return MagicCloudNetworkingResource(self)
+
+ @cached_property
+ def network_interconnects(self) -> NetworkInterconnectsResource:
+ from .resources.network_interconnects import NetworkInterconnectsResource
+
+ return NetworkInterconnectsResource(self)
+
@cached_property
def mtls_certificates(self) -> MTLSCertificatesResource:
from .resources.mtls_certificates import MTLSCertificatesResource
@@ -730,6 +760,12 @@ class Cloudflare(SyncAPIClient):
return OriginPostQuantumEncryptionResource(self)
+ @cached_property
+ def zaraz(self) -> ZarazResource:
+ from .resources.zaraz import ZarazResource
+
+ return ZarazResource(self)
+
@cached_property
def speed(self) -> SpeedResource:
from .resources.speed import SpeedResource
@@ -832,6 +868,24 @@ class Cloudflare(SyncAPIClient):
return AIResource(self)
+ @cached_property
+ def security_center(self) -> SecurityCenterResource:
+ from .resources.security_center import SecurityCenterResource
+
+ return SecurityCenterResource(self)
+
+ @cached_property
+ def browser_rendering(self) -> BrowserRenderingResource:
+ from .resources.browser_rendering import BrowserRenderingResource
+
+ return BrowserRenderingResource(self)
+
+ @cached_property
+ def custom_pages(self) -> CustomPagesResource:
+ from .resources.custom_pages import CustomPagesResource
+
+ return CustomPagesResource(self)
+
@cached_property
def with_raw_response(self) -> CloudflareWithRawResponse:
return CloudflareWithRawResponse(self)
@@ -1047,7 +1101,7 @@ class AsyncCloudflare(AsyncAPIClient):
# part of our public interface in the future.
_strict_response_validation: bool = False,
) -> None:
- """Construct a new async cloudflare client instance.
+ """Construct a new async AsyncCloudflare client instance.
This automatically infers the following arguments from their corresponding environment variables if they are not provided:
- `api_token` from `CLOUDFLARE_API_TOKEN`
@@ -1387,6 +1441,18 @@ class AsyncCloudflare(AsyncAPIClient):
return AsyncMagicNetworkMonitoringResource(self)
+ @cached_property
+ def magic_cloud_networking(self) -> AsyncMagicCloudNetworkingResource:
+ from .resources.magic_cloud_networking import AsyncMagicCloudNetworkingResource
+
+ return AsyncMagicCloudNetworkingResource(self)
+
+ @cached_property
+ def network_interconnects(self) -> AsyncNetworkInterconnectsResource:
+ from .resources.network_interconnects import AsyncNetworkInterconnectsResource
+
+ return AsyncNetworkInterconnectsResource(self)
+
@cached_property
def mtls_certificates(self) -> AsyncMTLSCertificatesResource:
from .resources.mtls_certificates import AsyncMTLSCertificatesResource
@@ -1501,6 +1567,12 @@ class AsyncCloudflare(AsyncAPIClient):
return AsyncOriginPostQuantumEncryptionResource(self)
+ @cached_property
+ def zaraz(self) -> AsyncZarazResource:
+ from .resources.zaraz import AsyncZarazResource
+
+ return AsyncZarazResource(self)
+
@cached_property
def speed(self) -> AsyncSpeedResource:
from .resources.speed import AsyncSpeedResource
@@ -1603,6 +1675,24 @@ class AsyncCloudflare(AsyncAPIClient):
return AsyncAIResource(self)
+ @cached_property
+ def security_center(self) -> AsyncSecurityCenterResource:
+ from .resources.security_center import AsyncSecurityCenterResource
+
+ return AsyncSecurityCenterResource(self)
+
+ @cached_property
+ def browser_rendering(self) -> AsyncBrowserRenderingResource:
+ from .resources.browser_rendering import AsyncBrowserRenderingResource
+
+ return AsyncBrowserRenderingResource(self)
+
+ @cached_property
+ def custom_pages(self) -> AsyncCustomPagesResource:
+ from .resources.custom_pages import AsyncCustomPagesResource
+
+ return AsyncCustomPagesResource(self)
+
@cached_property
def with_raw_response(self) -> AsyncCloudflareWithRawResponse:
return AsyncCloudflareWithRawResponse(self)
@@ -2091,6 +2181,18 @@ class CloudflareWithRawResponse:
return MagicNetworkMonitoringResourceWithRawResponse(self._client.magic_network_monitoring)
+ @cached_property
+ def magic_cloud_networking(self) -> magic_cloud_networking.MagicCloudNetworkingResourceWithRawResponse:
+ from .resources.magic_cloud_networking import MagicCloudNetworkingResourceWithRawResponse
+
+ return MagicCloudNetworkingResourceWithRawResponse(self._client.magic_cloud_networking)
+
+ @cached_property
+ def network_interconnects(self) -> network_interconnects.NetworkInterconnectsResourceWithRawResponse:
+ from .resources.network_interconnects import NetworkInterconnectsResourceWithRawResponse
+
+ return NetworkInterconnectsResourceWithRawResponse(self._client.network_interconnects)
+
@cached_property
def mtls_certificates(self) -> mtls_certificates.MTLSCertificatesResourceWithRawResponse:
from .resources.mtls_certificates import MTLSCertificatesResourceWithRawResponse
@@ -2207,6 +2309,12 @@ class CloudflareWithRawResponse:
return OriginPostQuantumEncryptionResourceWithRawResponse(self._client.origin_post_quantum_encryption)
+ @cached_property
+ def zaraz(self) -> zaraz.ZarazResourceWithRawResponse:
+ from .resources.zaraz import ZarazResourceWithRawResponse
+
+ return ZarazResourceWithRawResponse(self._client.zaraz)
+
@cached_property
def speed(self) -> speed.SpeedResourceWithRawResponse:
from .resources.speed import SpeedResourceWithRawResponse
@@ -2309,6 +2417,24 @@ class CloudflareWithRawResponse:
return AIResourceWithRawResponse(self._client.ai)
+ @cached_property
+ def security_center(self) -> security_center.SecurityCenterResourceWithRawResponse:
+ from .resources.security_center import SecurityCenterResourceWithRawResponse
+
+ return SecurityCenterResourceWithRawResponse(self._client.security_center)
+
+ @cached_property
+ def browser_rendering(self) -> browser_rendering.BrowserRenderingResourceWithRawResponse:
+ from .resources.browser_rendering import BrowserRenderingResourceWithRawResponse
+
+ return BrowserRenderingResourceWithRawResponse(self._client.browser_rendering)
+
+ @cached_property
+ def custom_pages(self) -> custom_pages.CustomPagesResourceWithRawResponse:
+ from .resources.custom_pages import CustomPagesResourceWithRawResponse
+
+ return CustomPagesResourceWithRawResponse(self._client.custom_pages)
+
class AsyncCloudflareWithRawResponse:
_client: AsyncCloudflare
@@ -2616,6 +2742,18 @@ class AsyncCloudflareWithRawResponse:
return AsyncMagicNetworkMonitoringResourceWithRawResponse(self._client.magic_network_monitoring)
+ @cached_property
+ def magic_cloud_networking(self) -> magic_cloud_networking.AsyncMagicCloudNetworkingResourceWithRawResponse:
+ from .resources.magic_cloud_networking import AsyncMagicCloudNetworkingResourceWithRawResponse
+
+ return AsyncMagicCloudNetworkingResourceWithRawResponse(self._client.magic_cloud_networking)
+
+ @cached_property
+ def network_interconnects(self) -> network_interconnects.AsyncNetworkInterconnectsResourceWithRawResponse:
+ from .resources.network_interconnects import AsyncNetworkInterconnectsResourceWithRawResponse
+
+ return AsyncNetworkInterconnectsResourceWithRawResponse(self._client.network_interconnects)
+
@cached_property
def mtls_certificates(self) -> mtls_certificates.AsyncMTLSCertificatesResourceWithRawResponse:
from .resources.mtls_certificates import AsyncMTLSCertificatesResourceWithRawResponse
@@ -2732,6 +2870,12 @@ class AsyncCloudflareWithRawResponse:
return AsyncOriginPostQuantumEncryptionResourceWithRawResponse(self._client.origin_post_quantum_encryption)
+ @cached_property
+ def zaraz(self) -> zaraz.AsyncZarazResourceWithRawResponse:
+ from .resources.zaraz import AsyncZarazResourceWithRawResponse
+
+ return AsyncZarazResourceWithRawResponse(self._client.zaraz)
+
@cached_property
def speed(self) -> speed.AsyncSpeedResourceWithRawResponse:
from .resources.speed import AsyncSpeedResourceWithRawResponse
@@ -2834,6 +2978,24 @@ class AsyncCloudflareWithRawResponse:
return AsyncAIResourceWithRawResponse(self._client.ai)
+ @cached_property
+ def security_center(self) -> security_center.AsyncSecurityCenterResourceWithRawResponse:
+ from .resources.security_center import AsyncSecurityCenterResourceWithRawResponse
+
+ return AsyncSecurityCenterResourceWithRawResponse(self._client.security_center)
+
+ @cached_property
+ def browser_rendering(self) -> browser_rendering.AsyncBrowserRenderingResourceWithRawResponse:
+ from .resources.browser_rendering import AsyncBrowserRenderingResourceWithRawResponse
+
+ return AsyncBrowserRenderingResourceWithRawResponse(self._client.browser_rendering)
+
+ @cached_property
+ def custom_pages(self) -> custom_pages.AsyncCustomPagesResourceWithRawResponse:
+ from .resources.custom_pages import AsyncCustomPagesResourceWithRawResponse
+
+ return AsyncCustomPagesResourceWithRawResponse(self._client.custom_pages)
+
class CloudflareWithStreamedResponse:
_client: Cloudflare
@@ -3141,6 +3303,18 @@ class CloudflareWithStreamedResponse:
return MagicNetworkMonitoringResourceWithStreamingResponse(self._client.magic_network_monitoring)
+ @cached_property
+ def magic_cloud_networking(self) -> magic_cloud_networking.MagicCloudNetworkingResourceWithStreamingResponse:
+ from .resources.magic_cloud_networking import MagicCloudNetworkingResourceWithStreamingResponse
+
+ return MagicCloudNetworkingResourceWithStreamingResponse(self._client.magic_cloud_networking)
+
+ @cached_property
+ def network_interconnects(self) -> network_interconnects.NetworkInterconnectsResourceWithStreamingResponse:
+ from .resources.network_interconnects import NetworkInterconnectsResourceWithStreamingResponse
+
+ return NetworkInterconnectsResourceWithStreamingResponse(self._client.network_interconnects)
+
@cached_property
def mtls_certificates(self) -> mtls_certificates.MTLSCertificatesResourceWithStreamingResponse:
from .resources.mtls_certificates import MTLSCertificatesResourceWithStreamingResponse
@@ -3257,6 +3431,12 @@ class CloudflareWithStreamedResponse:
return OriginPostQuantumEncryptionResourceWithStreamingResponse(self._client.origin_post_quantum_encryption)
+ @cached_property
+ def zaraz(self) -> zaraz.ZarazResourceWithStreamingResponse:
+ from .resources.zaraz import ZarazResourceWithStreamingResponse
+
+ return ZarazResourceWithStreamingResponse(self._client.zaraz)
+
@cached_property
def speed(self) -> speed.SpeedResourceWithStreamingResponse:
from .resources.speed import SpeedResourceWithStreamingResponse
@@ -3359,6 +3539,24 @@ class CloudflareWithStreamedResponse:
return AIResourceWithStreamingResponse(self._client.ai)
+ @cached_property
+ def security_center(self) -> security_center.SecurityCenterResourceWithStreamingResponse:
+ from .resources.security_center import SecurityCenterResourceWithStreamingResponse
+
+ return SecurityCenterResourceWithStreamingResponse(self._client.security_center)
+
+ @cached_property
+ def browser_rendering(self) -> browser_rendering.BrowserRenderingResourceWithStreamingResponse:
+ from .resources.browser_rendering import BrowserRenderingResourceWithStreamingResponse
+
+ return BrowserRenderingResourceWithStreamingResponse(self._client.browser_rendering)
+
+ @cached_property
+ def custom_pages(self) -> custom_pages.CustomPagesResourceWithStreamingResponse:
+ from .resources.custom_pages import CustomPagesResourceWithStreamingResponse
+
+ return CustomPagesResourceWithStreamingResponse(self._client.custom_pages)
+
class AsyncCloudflareWithStreamedResponse:
_client: AsyncCloudflare
@@ -3670,6 +3868,18 @@ class AsyncCloudflareWithStreamedResponse:
return AsyncMagicNetworkMonitoringResourceWithStreamingResponse(self._client.magic_network_monitoring)
+ @cached_property
+ def magic_cloud_networking(self) -> magic_cloud_networking.AsyncMagicCloudNetworkingResourceWithStreamingResponse:
+ from .resources.magic_cloud_networking import AsyncMagicCloudNetworkingResourceWithStreamingResponse
+
+ return AsyncMagicCloudNetworkingResourceWithStreamingResponse(self._client.magic_cloud_networking)
+
+ @cached_property
+ def network_interconnects(self) -> network_interconnects.AsyncNetworkInterconnectsResourceWithStreamingResponse:
+ from .resources.network_interconnects import AsyncNetworkInterconnectsResourceWithStreamingResponse
+
+ return AsyncNetworkInterconnectsResourceWithStreamingResponse(self._client.network_interconnects)
+
@cached_property
def mtls_certificates(self) -> mtls_certificates.AsyncMTLSCertificatesResourceWithStreamingResponse:
from .resources.mtls_certificates import AsyncMTLSCertificatesResourceWithStreamingResponse
@@ -3790,6 +4000,12 @@ class AsyncCloudflareWithStreamedResponse:
self._client.origin_post_quantum_encryption
)
+ @cached_property
+ def zaraz(self) -> zaraz.AsyncZarazResourceWithStreamingResponse:
+ from .resources.zaraz import AsyncZarazResourceWithStreamingResponse
+
+ return AsyncZarazResourceWithStreamingResponse(self._client.zaraz)
+
@cached_property
def speed(self) -> speed.AsyncSpeedResourceWithStreamingResponse:
from .resources.speed import AsyncSpeedResourceWithStreamingResponse
@@ -3894,6 +4110,24 @@ class AsyncCloudflareWithStreamedResponse:
return AsyncAIResourceWithStreamingResponse(self._client.ai)
+ @cached_property
+ def security_center(self) -> security_center.AsyncSecurityCenterResourceWithStreamingResponse:
+ from .resources.security_center import AsyncSecurityCenterResourceWithStreamingResponse
+
+ return AsyncSecurityCenterResourceWithStreamingResponse(self._client.security_center)
+
+ @cached_property
+ def browser_rendering(self) -> browser_rendering.AsyncBrowserRenderingResourceWithStreamingResponse:
+ from .resources.browser_rendering import AsyncBrowserRenderingResourceWithStreamingResponse
+
+ return AsyncBrowserRenderingResourceWithStreamingResponse(self._client.browser_rendering)
+
+ @cached_property
+ def custom_pages(self) -> custom_pages.AsyncCustomPagesResourceWithStreamingResponse:
+ from .resources.custom_pages import AsyncCustomPagesResourceWithStreamingResponse
+
+ return AsyncCustomPagesResourceWithStreamingResponse(self._client.custom_pages)
+
Client = Cloudflare
diff --git a/src/cloudflare/_constants.py b/src/cloudflare/_constants.py
index a2ac3b6f3..6ddf2c717 100644
--- a/src/cloudflare/_constants.py
+++ b/src/cloudflare/_constants.py
@@ -6,7 +6,7 @@ RAW_RESPONSE_HEADER = "X-Stainless-Raw-Response"
OVERRIDE_CAST_TO_HEADER = "____stainless_override_cast_to"
# default timeout is 1 minute
-DEFAULT_TIMEOUT = httpx.Timeout(timeout=60.0, connect=5.0)
+DEFAULT_TIMEOUT = httpx.Timeout(timeout=60, connect=5.0)
DEFAULT_MAX_RETRIES = 2
DEFAULT_CONNECTION_LIMITS = httpx.Limits(max_connections=100, max_keepalive_connections=20)
diff --git a/src/cloudflare/_files.py b/src/cloudflare/_files.py
index 715cc2078..8c0362263 100644
--- a/src/cloudflare/_files.py
+++ b/src/cloudflare/_files.py
@@ -34,7 +34,7 @@ def assert_is_file_content(obj: object, *, key: str | None = None) -> None:
if not is_file_content(obj):
prefix = f"Expected entry at `{key}`" if key is not None else f"Expected file input `{obj!r}`"
raise RuntimeError(
- f"{prefix} to be bytes, an io.IOBase instance, PathLike or a tuple but received {type(obj)} instead."
+ f"{prefix} to be bytes, an io.IOBase instance, PathLike or a tuple but received {type(obj)} instead. See https://github.com/cloudflare/cloudflare-python/tree/main#file-uploads"
) from None
diff --git a/src/cloudflare/_models.py b/src/cloudflare/_models.py
index 9a918aabf..b51a1bf5f 100644
--- a/src/cloudflare/_models.py
+++ b/src/cloudflare/_models.py
@@ -65,7 +65,7 @@ from ._compat import (
from ._constants import RAW_RESPONSE_HEADER
if TYPE_CHECKING:
- from pydantic_core.core_schema import ModelField, LiteralSchema, ModelFieldsSchema
+ from pydantic_core.core_schema import ModelField, ModelSchema, LiteralSchema, ModelFieldsSchema
__all__ = ["BaseModel", "GenericModel"]
@@ -172,7 +172,7 @@ class BaseModel(pydantic.BaseModel):
@override
def __str__(self) -> str:
# mypy complains about an invalid self arg
- return f'{self.__repr_name__()}({self.__repr_str__(", ")})' # type: ignore[misc]
+ return f"{self.__repr_name__()}({self.__repr_str__(', ')})" # type: ignore[misc]
# Override the 'construct' method in a way that supports recursive parsing without validation.
# Based on https://github.com/samuelcolvin/pydantic/issues/1168#issuecomment-817742836.
@@ -426,10 +426,16 @@ def construct_type(*, value: object, type_: object) -> object:
If the given value does not match the expected type then it is returned as-is.
"""
+
+ # store a reference to the original type we were given before we extract any inner
+ # types so that we can properly resolve forward references in `TypeAliasType` annotations
+ original_type = None
+
# we allow `object` as the input type because otherwise, passing things like
# `Literal['value']` will be reported as a type error by type checkers
type_ = cast("type[object]", type_)
if is_type_alias_type(type_):
+ original_type = type_ # type: ignore[unreachable]
type_ = type_.__value__ # type: ignore[unreachable]
# unwrap `Annotated[T, ...]` -> `T`
@@ -446,7 +452,7 @@ def construct_type(*, value: object, type_: object) -> object:
if is_union(origin):
try:
- return validate_type(type_=cast("type[object]", type_), value=value)
+ return validate_type(type_=cast("type[object]", original_type or type_), value=value)
except Exception:
pass
@@ -640,15 +646,18 @@ def _build_discriminated_union_meta(*, union: type, meta_annotations: tuple[Any,
def _extract_field_schema_pv2(model: type[BaseModel], field_name: str) -> ModelField | None:
schema = model.__pydantic_core_schema__
+ if schema["type"] == "definitions":
+ schema = schema["schema"]
+
if schema["type"] != "model":
return None
+ schema = cast("ModelSchema", schema)
fields_schema = schema["schema"]
if fields_schema["type"] != "model-fields":
return None
fields_schema = cast("ModelFieldsSchema", fields_schema)
-
field = fields_schema["fields"].get(field_name)
if not field:
return None
diff --git a/src/cloudflare/_response.py b/src/cloudflare/_response.py
index c0db87171..f20e4379a 100644
--- a/src/cloudflare/_response.py
+++ b/src/cloudflare/_response.py
@@ -136,6 +136,8 @@ class BaseAPIResponse(Generic[R]):
if cast_to and is_annotated_type(cast_to):
cast_to = extract_type_arg(cast_to, 0)
+ origin = get_origin(cast_to) or cast_to
+
if self._is_sse_stream:
if to:
if not is_stream_class_type(to):
@@ -195,8 +197,6 @@ class BaseAPIResponse(Generic[R]):
if cast_to == bool:
return cast(R, response.text.lower() == "true")
- origin = get_origin(cast_to) or cast_to
-
if origin == APIResponse:
raise RuntimeError("Unexpected state - cast_to is `APIResponse`")
@@ -210,7 +210,13 @@ class BaseAPIResponse(Generic[R]):
raise ValueError(f"Subclasses of httpx.Response cannot be passed to `cast_to`")
return cast(R, response)
- if inspect.isclass(origin) and not issubclass(origin, BaseModel) and issubclass(origin, pydantic.BaseModel):
+ if (
+ inspect.isclass(
+ origin # pyright: ignore[reportUnknownArgumentType]
+ )
+ and not issubclass(origin, BaseModel)
+ and issubclass(origin, pydantic.BaseModel)
+ ):
raise TypeError(
"Pydantic models must subclass our base model type, e.g. `from cloudflare import BaseModel`"
)
diff --git a/src/cloudflare/_utils/_sync.py b/src/cloudflare/_utils/_sync.py
index d0d810337..ad7ec71b7 100644
--- a/src/cloudflare/_utils/_sync.py
+++ b/src/cloudflare/_utils/_sync.py
@@ -1,56 +1,77 @@
from __future__ import annotations
+import sys
+import asyncio
import functools
-from typing import TypeVar, Callable, Awaitable
+import contextvars
+from typing import Any, TypeVar, Callable, Awaitable
from typing_extensions import ParamSpec
import anyio
+import sniffio
import anyio.to_thread
-from ._reflection import function_has_argument
-
T_Retval = TypeVar("T_Retval")
T_ParamSpec = ParamSpec("T_ParamSpec")
-# copied from `asyncer`, https://github.com/tiangolo/asyncer
-def asyncify(
- function: Callable[T_ParamSpec, T_Retval],
- *,
- cancellable: bool = False,
- limiter: anyio.CapacityLimiter | None = None,
-) -> Callable[T_ParamSpec, Awaitable[T_Retval]]:
+if sys.version_info >= (3, 9):
+ _asyncio_to_thread = asyncio.to_thread
+else:
+ # backport of https://docs.python.org/3/library/asyncio-task.html#asyncio.to_thread
+ # for Python 3.8 support
+ async def _asyncio_to_thread(
+ func: Callable[T_ParamSpec, T_Retval], /, *args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs
+ ) -> Any:
+ """Asynchronously run function *func* in a separate thread.
+
+ Any *args and **kwargs supplied for this function are directly passed
+ to *func*. Also, the current :class:`contextvars.Context` is propagated,
+ allowing context variables from the main thread to be accessed in the
+ separate thread.
+
+ Returns a coroutine that can be awaited to get the eventual result of *func*.
+ """
+ loop = asyncio.events.get_running_loop()
+ ctx = contextvars.copy_context()
+ func_call = functools.partial(ctx.run, func, *args, **kwargs)
+ return await loop.run_in_executor(None, func_call)
+
+
+async def to_thread(
+ func: Callable[T_ParamSpec, T_Retval], /, *args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs
+) -> T_Retval:
+ if sniffio.current_async_library() == "asyncio":
+ return await _asyncio_to_thread(func, *args, **kwargs)
+
+ return await anyio.to_thread.run_sync(
+ functools.partial(func, *args, **kwargs),
+ )
+
+
+# inspired by `asyncer`, https://github.com/tiangolo/asyncer
+def asyncify(function: Callable[T_ParamSpec, T_Retval]) -> Callable[T_ParamSpec, Awaitable[T_Retval]]:
"""
Take a blocking function and create an async one that receives the same
- positional and keyword arguments, and that when called, calls the original function
- in a worker thread using `anyio.to_thread.run_sync()`. Internally,
- `asyncer.asyncify()` uses the same `anyio.to_thread.run_sync()`, but it supports
- keyword arguments additional to positional arguments and it adds better support for
- autocompletion and inline errors for the arguments of the function called and the
- return value.
+ positional and keyword arguments. For python version 3.9 and above, it uses
+ asyncio.to_thread to run the function in a separate thread. For python version
+ 3.8, it uses locally defined copy of the asyncio.to_thread function which was
+ introduced in python 3.9.
- If the `cancellable` option is enabled and the task waiting for its completion is
- cancelled, the thread will still run its course but its return value (or any raised
- exception) will be ignored.
+ Usage:
- Use it like this:
-
- ```Python
- def do_work(arg1, arg2, kwarg1="", kwarg2="") -> str:
- # Do work
- return "Some result"
+ ```python
+ def blocking_func(arg1, arg2, kwarg1=None):
+ # blocking code
+ return result
- result = await to_thread.asyncify(do_work)("spam", "ham", kwarg1="a", kwarg2="b")
- print(result)
+ result = asyncify(blocking_function)(arg1, arg2, kwarg1=value1)
```
## Arguments
`function`: a blocking regular callable (e.g. a function)
- `cancellable`: `True` to allow cancellation of the operation
- `limiter`: capacity limiter to use to limit the total amount of threads running
- (if omitted, the default limiter is used)
## Return
@@ -60,22 +81,6 @@ def asyncify(
"""
async def wrapper(*args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs) -> T_Retval:
- partial_f = functools.partial(function, *args, **kwargs)
-
- # In `v4.1.0` anyio added the `abandon_on_cancel` argument and deprecated the old
- # `cancellable` argument, so we need to use the new `abandon_on_cancel` to avoid
- # surfacing deprecation warnings.
- if function_has_argument(anyio.to_thread.run_sync, "abandon_on_cancel"):
- return await anyio.to_thread.run_sync(
- partial_f,
- abandon_on_cancel=cancellable,
- limiter=limiter,
- )
-
- return await anyio.to_thread.run_sync(
- partial_f,
- cancellable=cancellable,
- limiter=limiter,
- )
+ return await to_thread(function, *args, **kwargs)
return wrapper
diff --git a/src/cloudflare/_utils/_transform.py b/src/cloudflare/_utils/_transform.py
index a6b62cad0..18afd9d8b 100644
--- a/src/cloudflare/_utils/_transform.py
+++ b/src/cloudflare/_utils/_transform.py
@@ -25,7 +25,7 @@ from ._typing import (
is_annotated_type,
strip_annotated_type,
)
-from .._compat import model_dump, is_typeddict
+from .._compat import get_origin, model_dump, is_typeddict
_T = TypeVar("_T")
@@ -164,9 +164,14 @@ def _transform_recursive(
inner_type = annotation
stripped_type = strip_annotated_type(inner_type)
+ origin = get_origin(stripped_type) or stripped_type
if is_typeddict(stripped_type) and is_mapping(data):
return _transform_typeddict(data, stripped_type)
+ if origin == dict and is_mapping(data):
+ items_type = get_args(stripped_type)[1]
+ return {key: _transform_recursive(value, annotation=items_type) for key, value in data.items()}
+
if (
# List[T]
(is_list_type(stripped_type) and is_list(data))
@@ -307,9 +312,14 @@ async def _async_transform_recursive(
inner_type = annotation
stripped_type = strip_annotated_type(inner_type)
+ origin = get_origin(stripped_type) or stripped_type
if is_typeddict(stripped_type) and is_mapping(data):
return await _async_transform_typeddict(data, stripped_type)
+ if origin == dict and is_mapping(data):
+ items_type = get_args(stripped_type)[1]
+ return {key: _transform_recursive(value, annotation=items_type) for key, value in data.items()}
+
if (
# List[T]
(is_list_type(stripped_type) and is_list(data))
diff --git a/src/cloudflare/_version.py b/src/cloudflare/_version.py
index 0ed86798e..7dd1f280c 100644
--- a/src/cloudflare/_version.py
+++ b/src/cloudflare/_version.py
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
__title__ = "cloudflare"
-__version__ = "4.0.0" # x-release-please-version
+__version__ = "4.1.0" # x-release-please-version
diff --git a/src/cloudflare/resources/abuse_reports.py b/src/cloudflare/resources/abuse_reports.py
index a81ce3c43..09f63ae53 100644
--- a/src/cloudflare/resources/abuse_reports.py
+++ b/src/cloudflare/resources/abuse_reports.py
@@ -3,12 +3,13 @@
from __future__ import annotations
from typing import Type, cast
-from typing_extensions import Literal
+from typing_extensions import Literal, overload
import httpx
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from .._utils import (
+ required_args,
maybe_transform,
async_maybe_transform,
)
@@ -32,7 +33,7 @@ class AbuseReportsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AbuseReportsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -48,6 +49,7 @@ class AbuseReportsResource(SyncAPIResource):
"""
return AbuseReportsResourceWithStreamingResponse(self)
+ @overload
def create(
self,
report_type: Literal[
@@ -62,6 +64,16 @@ class AbuseReportsResource(SyncAPIResource):
],
*,
account_id: str,
+ address1: str,
+ agent_name: str,
+ agree: Literal[0, 1],
+ city: str,
+ country: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ original_work: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ signature: str,
+ state: str,
act: Literal[
"abuse_dmca",
"abuse_trademark",
@@ -71,34 +83,25 @@ class AbuseReportsResource(SyncAPIResource):
"abuse_threat",
"abuse_registrar_whois",
"abuse_ncsei",
- ],
- email: str,
- email2: str,
- host_notification: Literal["send", "send-anon", "none"],
- ncmec_notification: Literal["send", "send-anon", "none"],
- owner_notification: Literal["send", "send-anon", "none"],
- urls: str,
- address1: str | NotGiven = NOT_GIVEN,
- agent_name: str | NotGiven = NOT_GIVEN,
- agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
- city: str | NotGiven = NOT_GIVEN,
+ ]
+ | NotGiven = NOT_GIVEN,
comments: str | NotGiven = NOT_GIVEN,
company: str | NotGiven = NOT_GIVEN,
- country: str | NotGiven = NOT_GIVEN,
destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
justification: str | NotGiven = NOT_GIVEN,
name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
- original_work: str | NotGiven = NOT_GIVEN,
ports_protocols: str | NotGiven = NOT_GIVEN,
- signature: str | NotGiven = NOT_GIVEN,
source_ips: str | NotGiven = NOT_GIVEN,
- state: str | NotGiven = NOT_GIVEN,
tele: str | NotGiven = NOT_GIVEN,
title: str | NotGiven = NOT_GIVEN,
trademark_number: str | NotGiven = NOT_GIVEN,
trademark_office: str | NotGiven = NOT_GIVEN,
trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
@@ -112,52 +115,223 @@ class AbuseReportsResource(SyncAPIResource):
Args:
report_type: The abuse report type
- act: The abuse report type
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
- email: A valid email of the abuse reporter
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
- email2: Should match the value provided in `email`
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
reports cannot be anonymous.
- ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
- reports cannot be anonymous.
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
reports cannot be anonymous.
- urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
- should not exceed 250 URLs. All URLs should have the same hostname. Each URL
- should be unique
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
- address1: Text not exceeding 100 characters
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
- agent_name: The name of the copyright holder. Text not exceeding 60 characters.
-
- agree: Can be 0 or 1
-
- city: Text not exceeding 255 characters
+ act: The abuse report type
comments: Any additional comments about the infringement not exceeding 2000 characters
- company: Text not exceeding 100 characters
-
- country: Text not exceeding 255 characters
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
ought to be unique
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
justification: A detailed description of the infringement, including any necessary access
details and the exact steps needed to view the content, not exceeding 5000
characters
- name: Text not exceeding 255 characters
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
- ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
- original_work: Text not exceeding 255 characters
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ justification: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ trademark_number: str,
+ trademark_office: str,
+ trademark_symbol: str,
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
size of the field should not exceed 2000 characters. Each individual
@@ -172,17 +346,18 @@ class AbuseReportsResource(SyncAPIResource):
IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
unique
- state: Text not exceeding 255 characters
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
- tele: Text not exceeding 20 characters
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
title: Text not exceeding 255 characters
- trademark_number: Text not exceeding 1000 characters
-
- trademark_office: Text not exceeding 1000 characters
-
- trademark_symbol: Text not exceeding 1000 characters
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
extra_headers: Send extra headers
@@ -192,6 +367,1055 @@ class AbuseReportsResource(SyncAPIResource):
timeout: Override the client-level default timeout for this request, in seconds
"""
+ ...
+
+ @overload
+ def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ justification: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ justification: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ justification: str,
+ ncmec_notification: Literal["send", "send-anon", "none"],
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ justification: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ host_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ justification: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ ncsei_subject_representation: bool,
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ justification: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @required_args(
+ [
+ "account_id",
+ "address1",
+ "agent_name",
+ "agree",
+ "city",
+ "country",
+ "host_notification",
+ "original_work",
+ "owner_notification",
+ "signature",
+ "state",
+ ],
+ [
+ "account_id",
+ "host_notification",
+ "justification",
+ "owner_notification",
+ "trademark_number",
+ "trademark_office",
+ "trademark_symbol",
+ ],
+ ["account_id", "host_notification", "justification", "owner_notification"],
+ ["account_id", "host_notification", "justification", "ncmec_notification", "owner_notification"],
+ ["account_id", "owner_notification"],
+ ["account_id", "host_notification", "ncsei_subject_representation", "owner_notification"],
+ )
+ def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ host_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ owner_notification: Literal["send", "send-anon", "none"],
+ signature: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ justification: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
if not account_id:
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
if not report_type:
@@ -200,34 +1424,34 @@ class AbuseReportsResource(SyncAPIResource):
f"/accounts/{account_id}/abuse-reports/{report_type}",
body=maybe_transform(
{
- "act": act,
- "email": email,
- "email2": email2,
- "host_notification": host_notification,
- "ncmec_notification": ncmec_notification,
- "owner_notification": owner_notification,
- "urls": urls,
"address1": address1,
"agent_name": agent_name,
"agree": agree,
"city": city,
+ "country": country,
+ "host_notification": host_notification,
+ "original_work": original_work,
+ "owner_notification": owner_notification,
+ "signature": signature,
+ "state": state,
+ "act": act,
"comments": comments,
"company": company,
- "country": country,
"destination_ips": destination_ips,
+ "email": email,
+ "email2": email2,
"justification": justification,
"name": name,
+ "ncmec_notification": ncmec_notification,
"ncsei_subject_representation": ncsei_subject_representation,
- "original_work": original_work,
"ports_protocols": ports_protocols,
- "signature": signature,
"source_ips": source_ips,
- "state": state,
"tele": tele,
"title": title,
"trademark_number": trademark_number,
"trademark_office": trademark_office,
"trademark_symbol": trademark_symbol,
+ "urls": urls,
},
abuse_report_create_params.AbuseReportCreateParams,
),
@@ -246,7 +1470,7 @@ class AsyncAbuseReportsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAbuseReportsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -262,6 +1486,7 @@ class AsyncAbuseReportsResource(AsyncAPIResource):
"""
return AsyncAbuseReportsResourceWithStreamingResponse(self)
+ @overload
async def create(
self,
report_type: Literal[
@@ -276,6 +1501,16 @@ class AsyncAbuseReportsResource(AsyncAPIResource):
],
*,
account_id: str,
+ address1: str,
+ agent_name: str,
+ agree: Literal[0, 1],
+ city: str,
+ country: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ original_work: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ signature: str,
+ state: str,
act: Literal[
"abuse_dmca",
"abuse_trademark",
@@ -285,34 +1520,25 @@ class AsyncAbuseReportsResource(AsyncAPIResource):
"abuse_threat",
"abuse_registrar_whois",
"abuse_ncsei",
- ],
- email: str,
- email2: str,
- host_notification: Literal["send", "send-anon", "none"],
- ncmec_notification: Literal["send", "send-anon", "none"],
- owner_notification: Literal["send", "send-anon", "none"],
- urls: str,
- address1: str | NotGiven = NOT_GIVEN,
- agent_name: str | NotGiven = NOT_GIVEN,
- agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
- city: str | NotGiven = NOT_GIVEN,
+ ]
+ | NotGiven = NOT_GIVEN,
comments: str | NotGiven = NOT_GIVEN,
company: str | NotGiven = NOT_GIVEN,
- country: str | NotGiven = NOT_GIVEN,
destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
justification: str | NotGiven = NOT_GIVEN,
name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
- original_work: str | NotGiven = NOT_GIVEN,
ports_protocols: str | NotGiven = NOT_GIVEN,
- signature: str | NotGiven = NOT_GIVEN,
source_ips: str | NotGiven = NOT_GIVEN,
- state: str | NotGiven = NOT_GIVEN,
tele: str | NotGiven = NOT_GIVEN,
title: str | NotGiven = NOT_GIVEN,
trademark_number: str | NotGiven = NOT_GIVEN,
trademark_office: str | NotGiven = NOT_GIVEN,
trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
@@ -326,52 +1552,223 @@ class AsyncAbuseReportsResource(AsyncAPIResource):
Args:
report_type: The abuse report type
- act: The abuse report type
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
- email: A valid email of the abuse reporter
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
- email2: Should match the value provided in `email`
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
reports cannot be anonymous.
- ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
- reports cannot be anonymous.
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
reports cannot be anonymous.
- urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
- should not exceed 250 URLs. All URLs should have the same hostname. Each URL
- should be unique
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
- address1: Text not exceeding 100 characters
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
- agent_name: The name of the copyright holder. Text not exceeding 60 characters.
-
- agree: Can be 0 or 1
-
- city: Text not exceeding 255 characters
+ act: The abuse report type
comments: Any additional comments about the infringement not exceeding 2000 characters
- company: Text not exceeding 100 characters
-
- country: Text not exceeding 255 characters
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
ought to be unique
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
justification: A detailed description of the infringement, including any necessary access
details and the exact steps needed to view the content, not exceeding 5000
characters
- name: Text not exceeding 255 characters
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
- ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
- original_work: Text not exceeding 255 characters
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ async def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ justification: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ trademark_number: str,
+ trademark_office: str,
+ trademark_symbol: str,
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
size of the field should not exceed 2000 characters. Each individual
@@ -386,17 +1783,18 @@ class AsyncAbuseReportsResource(AsyncAPIResource):
IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
unique
- state: Text not exceeding 255 characters
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
- tele: Text not exceeding 20 characters
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
title: Text not exceeding 255 characters
- trademark_number: Text not exceeding 1000 characters
-
- trademark_office: Text not exceeding 1000 characters
-
- trademark_symbol: Text not exceeding 1000 characters
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
extra_headers: Send extra headers
@@ -406,6 +1804,1055 @@ class AsyncAbuseReportsResource(AsyncAPIResource):
timeout: Override the client-level default timeout for this request, in seconds
"""
+ ...
+
+ @overload
+ async def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ justification: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ async def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ justification: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ async def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ justification: str,
+ ncmec_notification: Literal["send", "send-anon", "none"],
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ async def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ justification: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ async def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ host_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ justification: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @overload
+ async def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ host_notification: Literal["send", "send-anon", "none"],
+ ncsei_subject_representation: bool,
+ owner_notification: Literal["send", "send-anon", "none"],
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ justification: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ signature: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Submit the Abuse Report of a particular type
+
+ Args:
+ report_type: The abuse report type
+
+ host_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ ncsei_subject_representation: If the submitter is the target of NCSEI in the URLs of the abuse report.
+
+ owner_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ act: The abuse report type
+
+ address1: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ agent_name: The name of the copyright holder. Text not exceeding 60 characters. This field
+ may be released by Cloudflare to third parties such as the Lumen Database
+ (https://lumendatabase.org/).
+
+ agree: Can be `0` for false or `1` for true. Must be value: 1 for DMCA reports
+
+ city: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ comments: Any additional comments about the infringement not exceeding 2000 characters
+
+ company: Text not exceeding 100 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ country: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ destination_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of
+ destination IPs should not exceed 30 IP addresses. Each one of the IP addresses
+ ought to be unique
+
+ email: A valid email of the abuse reporter. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ email2: Should match the value provided in `email`
+
+ justification: A detailed description of the infringement, including any necessary access
+ details and the exact steps needed to view the content, not exceeding 5000
+ characters
+
+ name: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ncmec_notification: Notification type based on the abuse type. NOTE: Copyright (DMCA) and Trademark
+ reports cannot be anonymous.
+
+ original_work: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ ports_protocols: A comma separated list of ports and protocols e.g. 80/TCP, 22/UDP. The total
+ size of the field should not exceed 2000 characters. Each individual
+ port/protocol should not exceed 100 characters. The list should not have more
+ than 30 unique ports and protocols.
+
+ signature: Required for DMCA reports, should be same as Name. An affirmation that all
+ information in the report is true and accurate while agreeing to the policies of
+ Cloudflare's abuse reports
+
+ source_ips: A list of IP addresses separated by ‘ ’ (new line character). The list of source
+ IPs should not exceed 30 IP addresses. Each one of the IP addresses ought to be
+ unique
+
+ state: Text not exceeding 255 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ tele: Text not exceeding 20 characters. This field may be released by Cloudflare to
+ third parties such as the Lumen Database (https://lumendatabase.org/).
+
+ title: Text not exceeding 255 characters
+
+ trademark_number: Text not exceeding 1000 characters
+
+ trademark_office: Text not exceeding 1000 characters
+
+ trademark_symbol: Text not exceeding 1000 characters
+
+ urls: A list of valid URLs separated by ‘ ’ (new line character). The list of the URLs
+ should not exceed 250 URLs. All URLs should have the same hostname. Each URL
+ should be unique. This field may be released by Cloudflare to third parties such
+ as the Lumen Database (https://lumendatabase.org/).
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ ...
+
+ @required_args(
+ [
+ "account_id",
+ "address1",
+ "agent_name",
+ "agree",
+ "city",
+ "country",
+ "host_notification",
+ "original_work",
+ "owner_notification",
+ "signature",
+ "state",
+ ],
+ [
+ "account_id",
+ "host_notification",
+ "justification",
+ "owner_notification",
+ "trademark_number",
+ "trademark_office",
+ "trademark_symbol",
+ ],
+ ["account_id", "host_notification", "justification", "owner_notification"],
+ ["account_id", "host_notification", "justification", "ncmec_notification", "owner_notification"],
+ ["account_id", "owner_notification"],
+ ["account_id", "host_notification", "ncsei_subject_representation", "owner_notification"],
+ )
+ async def create(
+ self,
+ report_type: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ],
+ *,
+ account_id: str,
+ address1: str | NotGiven = NOT_GIVEN,
+ agent_name: str | NotGiven = NOT_GIVEN,
+ agree: Literal[0, 1] | NotGiven = NOT_GIVEN,
+ city: str | NotGiven = NOT_GIVEN,
+ country: str | NotGiven = NOT_GIVEN,
+ host_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ original_work: str | NotGiven = NOT_GIVEN,
+ owner_notification: Literal["send", "send-anon", "none"],
+ signature: str | NotGiven = NOT_GIVEN,
+ state: str | NotGiven = NOT_GIVEN,
+ act: Literal[
+ "abuse_dmca",
+ "abuse_trademark",
+ "abuse_general",
+ "abuse_phishing",
+ "abuse_children",
+ "abuse_threat",
+ "abuse_registrar_whois",
+ "abuse_ncsei",
+ ]
+ | NotGiven = NOT_GIVEN,
+ comments: str | NotGiven = NOT_GIVEN,
+ company: str | NotGiven = NOT_GIVEN,
+ destination_ips: str | NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
+ email2: str | NotGiven = NOT_GIVEN,
+ justification: str | NotGiven = NOT_GIVEN,
+ name: str | NotGiven = NOT_GIVEN,
+ ncmec_notification: Literal["send", "send-anon", "none"] | NotGiven = NOT_GIVEN,
+ ncsei_subject_representation: bool | NotGiven = NOT_GIVEN,
+ ports_protocols: str | NotGiven = NOT_GIVEN,
+ source_ips: str | NotGiven = NOT_GIVEN,
+ tele: str | NotGiven = NOT_GIVEN,
+ title: str | NotGiven = NOT_GIVEN,
+ trademark_number: str | NotGiven = NOT_GIVEN,
+ trademark_office: str | NotGiven = NOT_GIVEN,
+ trademark_symbol: str | NotGiven = NOT_GIVEN,
+ urls: str | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
if not account_id:
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
if not report_type:
@@ -414,34 +2861,34 @@ class AsyncAbuseReportsResource(AsyncAPIResource):
f"/accounts/{account_id}/abuse-reports/{report_type}",
body=await async_maybe_transform(
{
- "act": act,
- "email": email,
- "email2": email2,
- "host_notification": host_notification,
- "ncmec_notification": ncmec_notification,
- "owner_notification": owner_notification,
- "urls": urls,
"address1": address1,
"agent_name": agent_name,
"agree": agree,
"city": city,
+ "country": country,
+ "host_notification": host_notification,
+ "original_work": original_work,
+ "owner_notification": owner_notification,
+ "signature": signature,
+ "state": state,
+ "act": act,
"comments": comments,
"company": company,
- "country": country,
"destination_ips": destination_ips,
+ "email": email,
+ "email2": email2,
"justification": justification,
"name": name,
+ "ncmec_notification": ncmec_notification,
"ncsei_subject_representation": ncsei_subject_representation,
- "original_work": original_work,
"ports_protocols": ports_protocols,
- "signature": signature,
"source_ips": source_ips,
- "state": state,
"tele": tele,
"title": title,
"trademark_number": trademark_number,
"trademark_office": trademark_office,
"trademark_symbol": trademark_symbol,
+ "urls": urls,
},
abuse_report_create_params.AbuseReportCreateParams,
),
diff --git a/src/cloudflare/resources/accounts/accounts.py b/src/cloudflare/resources/accounts/accounts.py
index eba792cbc..d59d809d6 100644
--- a/src/cloudflare/resources/accounts/accounts.py
+++ b/src/cloudflare/resources/accounts/accounts.py
@@ -94,7 +94,7 @@ class AccountsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AccountsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -377,7 +377,7 @@ class AsyncAccountsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAccountsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/accounts/logs/audit.py b/src/cloudflare/resources/accounts/logs/audit.py
index 7375f4199..d5ea80765 100644
--- a/src/cloudflare/resources/accounts/logs/audit.py
+++ b/src/cloudflare/resources/accounts/logs/audit.py
@@ -30,7 +30,7 @@ class AuditResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AuditResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -212,7 +212,7 @@ class AsyncAuditResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAuditResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/accounts/logs/logs.py b/src/cloudflare/resources/accounts/logs/logs.py
index 475921543..69595caf7 100644
--- a/src/cloudflare/resources/accounts/logs/logs.py
+++ b/src/cloudflare/resources/accounts/logs/logs.py
@@ -24,7 +24,7 @@ class LogsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> LogsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -49,7 +49,7 @@ class AsyncLogsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncLogsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/accounts/members.py b/src/cloudflare/resources/accounts/members.py
index ed54745be..1565d83d1 100644
--- a/src/cloudflare/resources/accounts/members.py
+++ b/src/cloudflare/resources/accounts/members.py
@@ -36,7 +36,7 @@ class MembersResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> MembersResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -424,7 +424,7 @@ class AsyncMembersResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncMembersResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/accounts/roles.py b/src/cloudflare/resources/accounts/roles.py
index 1fcaa9c48..8c49fb115 100644
--- a/src/cloudflare/resources/accounts/roles.py
+++ b/src/cloudflare/resources/accounts/roles.py
@@ -7,6 +7,7 @@ from typing import Type, Optional, cast
import httpx
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
+from ..._utils import maybe_transform
from ..._compat import cached_property
from ..._resource import SyncAPIResource, AsyncAPIResource
from ..._response import (
@@ -16,8 +17,9 @@ from ..._response import (
async_to_streamed_response_wrapper,
)
from ..._wrappers import ResultWrapper
-from ...pagination import SyncSinglePage, AsyncSinglePage
+from ...pagination import SyncV4PagePaginationArray, AsyncV4PagePaginationArray
from ..._base_client import AsyncPaginator, make_request_options
+from ...types.accounts import role_list_params
from ...types.shared.role import Role
__all__ = ["RolesResource", "AsyncRolesResource"]
@@ -27,7 +29,7 @@ class RolesResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> RolesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -47,19 +49,25 @@ class RolesResource(SyncAPIResource):
self,
*,
account_id: str,
+ page: float | NotGiven = NOT_GIVEN,
+ per_page: float | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> SyncSinglePage[Role]:
+ ) -> SyncV4PagePaginationArray[Role]:
"""
Get all available roles for an account.
Args:
account_id: Account identifier tag.
+ page: Page number of paginated results.
+
+ per_page: Number of roles per page.
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -72,9 +80,19 @@ class RolesResource(SyncAPIResource):
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
return self._get_api_list(
f"/accounts/{account_id}/roles",
- page=SyncSinglePage[Role],
+ page=SyncV4PagePaginationArray[Role],
options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ extra_headers=extra_headers,
+ extra_query=extra_query,
+ extra_body=extra_body,
+ timeout=timeout,
+ query=maybe_transform(
+ {
+ "page": page,
+ "per_page": per_page,
+ },
+ role_list_params.RoleListParams,
+ ),
),
model=Role,
)
@@ -128,7 +146,7 @@ class AsyncRolesResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncRolesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -148,19 +166,25 @@ class AsyncRolesResource(AsyncAPIResource):
self,
*,
account_id: str,
+ page: float | NotGiven = NOT_GIVEN,
+ per_page: float | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> AsyncPaginator[Role, AsyncSinglePage[Role]]:
+ ) -> AsyncPaginator[Role, AsyncV4PagePaginationArray[Role]]:
"""
Get all available roles for an account.
Args:
account_id: Account identifier tag.
+ page: Page number of paginated results.
+
+ per_page: Number of roles per page.
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -173,9 +197,19 @@ class AsyncRolesResource(AsyncAPIResource):
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
return self._get_api_list(
f"/accounts/{account_id}/roles",
- page=AsyncSinglePage[Role],
+ page=AsyncV4PagePaginationArray[Role],
options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ extra_headers=extra_headers,
+ extra_query=extra_query,
+ extra_body=extra_body,
+ timeout=timeout,
+ query=maybe_transform(
+ {
+ "page": page,
+ "per_page": per_page,
+ },
+ role_list_params.RoleListParams,
+ ),
),
model=Role,
)
diff --git a/src/cloudflare/resources/accounts/subscriptions.py b/src/cloudflare/resources/accounts/subscriptions.py
index 1bf69681b..542727c89 100644
--- a/src/cloudflare/resources/accounts/subscriptions.py
+++ b/src/cloudflare/resources/accounts/subscriptions.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import Any, Type, Optional, cast
+from typing import Any, Type, cast
from typing_extensions import Literal
import httpx
@@ -21,10 +21,11 @@ from ..._response import (
async_to_streamed_response_wrapper,
)
from ..._wrappers import ResultWrapper
-from ..._base_client import make_request_options
+from ...pagination import SyncSinglePage, AsyncSinglePage
+from ..._base_client import AsyncPaginator, make_request_options
from ...types.accounts import subscription_create_params, subscription_update_params
+from ...types.shared.subscription import Subscription
from ...types.shared_params.rate_plan import RatePlan
-from ...types.accounts.subscription_get_response import SubscriptionGetResponse
from ...types.accounts.subscription_create_response import SubscriptionCreateResponse
from ...types.accounts.subscription_delete_response import SubscriptionDeleteResponse
from ...types.accounts.subscription_update_response import SubscriptionUpdateResponse
@@ -36,7 +37,7 @@ class SubscriptionsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> SubscriptionsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -229,7 +230,7 @@ class SubscriptionsResource(SyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Optional[SubscriptionGetResponse]:
+ ) -> SyncSinglePage[Subscription]:
"""
Lists all of an account's subscriptions.
@@ -246,16 +247,13 @@ class SubscriptionsResource(SyncAPIResource):
"""
if not account_id:
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
- return self._get(
+ return self._get_api_list(
f"/accounts/{account_id}/subscriptions",
+ page=SyncSinglePage[Subscription],
options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- post_parser=ResultWrapper[Optional[SubscriptionGetResponse]]._unwrapper,
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=cast(Type[Optional[SubscriptionGetResponse]], ResultWrapper[SubscriptionGetResponse]),
+ model=Subscription,
)
@@ -263,7 +261,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncSubscriptionsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -446,7 +444,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
cast_to=cast(Type[SubscriptionDeleteResponse], ResultWrapper[SubscriptionDeleteResponse]),
)
- async def get(
+ def get(
self,
*,
account_id: str,
@@ -456,7 +454,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Optional[SubscriptionGetResponse]:
+ ) -> AsyncPaginator[Subscription, AsyncSinglePage[Subscription]]:
"""
Lists all of an account's subscriptions.
@@ -473,16 +471,13 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
"""
if not account_id:
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
- return await self._get(
+ return self._get_api_list(
f"/accounts/{account_id}/subscriptions",
+ page=AsyncSinglePage[Subscription],
options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- post_parser=ResultWrapper[Optional[SubscriptionGetResponse]]._unwrapper,
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=cast(Type[Optional[SubscriptionGetResponse]], ResultWrapper[SubscriptionGetResponse]),
+ model=Subscription,
)
diff --git a/src/cloudflare/resources/accounts/tokens/permission_groups.py b/src/cloudflare/resources/accounts/tokens/permission_groups.py
index 591870ebe..d98d5235c 100644
--- a/src/cloudflare/resources/accounts/tokens/permission_groups.py
+++ b/src/cloudflare/resources/accounts/tokens/permission_groups.py
@@ -15,6 +15,8 @@ from ...._response import (
)
from ....pagination import SyncSinglePage, AsyncSinglePage
from ...._base_client import AsyncPaginator, make_request_options
+from ....types.accounts.tokens.permission_group_get_response import PermissionGroupGetResponse
+from ....types.accounts.tokens.permission_group_list_response import PermissionGroupListResponse
__all__ = ["PermissionGroupsResource", "AsyncPermissionGroupsResource"]
@@ -23,7 +25,7 @@ class PermissionGroupsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> PermissionGroupsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -49,7 +51,7 @@ class PermissionGroupsResource(SyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> SyncSinglePage[object]:
+ ) -> SyncSinglePage[PermissionGroupListResponse]:
"""
Find all available permission groups for Account Owned API Tokens
@@ -68,11 +70,47 @@ class PermissionGroupsResource(SyncAPIResource):
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
return self._get_api_list(
f"/accounts/{account_id}/tokens/permission_groups",
- page=SyncSinglePage[object],
+ page=SyncSinglePage[PermissionGroupListResponse],
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- model=object,
+ model=PermissionGroupListResponse,
+ )
+
+ def get(
+ self,
+ *,
+ account_id: str,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> SyncSinglePage[PermissionGroupGetResponse]:
+ """
+ Find all available permission groups for Account Owned API Tokens
+
+ Args:
+ account_id: Account identifier tag.
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ if not account_id:
+ raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
+ return self._get_api_list(
+ f"/accounts/{account_id}/tokens/permission_groups",
+ page=SyncSinglePage[PermissionGroupGetResponse],
+ options=make_request_options(
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ ),
+ model=PermissionGroupGetResponse,
)
@@ -80,7 +118,7 @@ class AsyncPermissionGroupsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncPermissionGroupsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -106,7 +144,7 @@ class AsyncPermissionGroupsResource(AsyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> AsyncPaginator[object, AsyncSinglePage[object]]:
+ ) -> AsyncPaginator[PermissionGroupListResponse, AsyncSinglePage[PermissionGroupListResponse]]:
"""
Find all available permission groups for Account Owned API Tokens
@@ -125,11 +163,47 @@ class AsyncPermissionGroupsResource(AsyncAPIResource):
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
return self._get_api_list(
f"/accounts/{account_id}/tokens/permission_groups",
- page=AsyncSinglePage[object],
+ page=AsyncSinglePage[PermissionGroupListResponse],
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- model=object,
+ model=PermissionGroupListResponse,
+ )
+
+ def get(
+ self,
+ *,
+ account_id: str,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> AsyncPaginator[PermissionGroupGetResponse, AsyncSinglePage[PermissionGroupGetResponse]]:
+ """
+ Find all available permission groups for Account Owned API Tokens
+
+ Args:
+ account_id: Account identifier tag.
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ if not account_id:
+ raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
+ return self._get_api_list(
+ f"/accounts/{account_id}/tokens/permission_groups",
+ page=AsyncSinglePage[PermissionGroupGetResponse],
+ options=make_request_options(
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ ),
+ model=PermissionGroupGetResponse,
)
@@ -140,6 +214,9 @@ class PermissionGroupsResourceWithRawResponse:
self.list = to_raw_response_wrapper(
permission_groups.list,
)
+ self.get = to_raw_response_wrapper(
+ permission_groups.get,
+ )
class AsyncPermissionGroupsResourceWithRawResponse:
@@ -149,6 +226,9 @@ class AsyncPermissionGroupsResourceWithRawResponse:
self.list = async_to_raw_response_wrapper(
permission_groups.list,
)
+ self.get = async_to_raw_response_wrapper(
+ permission_groups.get,
+ )
class PermissionGroupsResourceWithStreamingResponse:
@@ -158,6 +238,9 @@ class PermissionGroupsResourceWithStreamingResponse:
self.list = to_streamed_response_wrapper(
permission_groups.list,
)
+ self.get = to_streamed_response_wrapper(
+ permission_groups.get,
+ )
class AsyncPermissionGroupsResourceWithStreamingResponse:
@@ -167,3 +250,6 @@ class AsyncPermissionGroupsResourceWithStreamingResponse:
self.list = async_to_streamed_response_wrapper(
permission_groups.list,
)
+ self.get = async_to_streamed_response_wrapper(
+ permission_groups.get,
+ )
diff --git a/src/cloudflare/resources/accounts/tokens/tokens.py b/src/cloudflare/resources/accounts/tokens/tokens.py
index b5eb2fbd9..5af8755d8 100644
--- a/src/cloudflare/resources/accounts/tokens/tokens.py
+++ b/src/cloudflare/resources/accounts/tokens/tokens.py
@@ -62,7 +62,7 @@ class TokensResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> TokensResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -409,7 +409,7 @@ class AsyncTokensResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncTokensResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/accounts/tokens/value.py b/src/cloudflare/resources/accounts/tokens/value.py
index 59dac86db..94034ab2a 100644
--- a/src/cloudflare/resources/accounts/tokens/value.py
+++ b/src/cloudflare/resources/accounts/tokens/value.py
@@ -31,7 +31,7 @@ class ValueResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ValueResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -98,7 +98,7 @@ class AsyncValueResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncValueResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/acm/acm.py b/src/cloudflare/resources/acm/acm.py
index 97cc4b05f..4d576c8fa 100644
--- a/src/cloudflare/resources/acm/acm.py
+++ b/src/cloudflare/resources/acm/acm.py
@@ -24,7 +24,7 @@ class ACMResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ACMResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -49,7 +49,7 @@ class AsyncACMResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncACMResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/acm/total_tls.py b/src/cloudflare/resources/acm/total_tls.py
index 1eded706d..2d0e550cc 100644
--- a/src/cloudflare/resources/acm/total_tls.py
+++ b/src/cloudflare/resources/acm/total_tls.py
@@ -33,7 +33,7 @@ class TotalTLSResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> TotalTLSResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -146,7 +146,7 @@ class AsyncTotalTLSResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncTotalTLSResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/address_maps/accounts.py b/src/cloudflare/resources/addressing/address_maps/accounts.py
index a5279ff24..d30e053c6 100644
--- a/src/cloudflare/resources/addressing/address_maps/accounts.py
+++ b/src/cloudflare/resources/addressing/address_maps/accounts.py
@@ -29,7 +29,7 @@ class AccountsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AccountsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -132,7 +132,7 @@ class AsyncAccountsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAccountsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/address_maps/address_maps.py b/src/cloudflare/resources/addressing/address_maps/address_maps.py
index b3a6fda77..e2dd8d911 100644
--- a/src/cloudflare/resources/addressing/address_maps/address_maps.py
+++ b/src/cloudflare/resources/addressing/address_maps/address_maps.py
@@ -71,7 +71,7 @@ class AddressMapsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AddressMapsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -354,7 +354,7 @@ class AsyncAddressMapsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAddressMapsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/address_maps/ips.py b/src/cloudflare/resources/addressing/address_maps/ips.py
index 15c999ab6..c17ae0f81 100644
--- a/src/cloudflare/resources/addressing/address_maps/ips.py
+++ b/src/cloudflare/resources/addressing/address_maps/ips.py
@@ -29,7 +29,7 @@ class IPsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> IPsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -142,7 +142,7 @@ class AsyncIPsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncIPsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/address_maps/zones.py b/src/cloudflare/resources/addressing/address_maps/zones.py
index d7f859f26..b0813f207 100644
--- a/src/cloudflare/resources/addressing/address_maps/zones.py
+++ b/src/cloudflare/resources/addressing/address_maps/zones.py
@@ -29,7 +29,7 @@ class ZonesResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ZonesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -142,7 +142,7 @@ class AsyncZonesResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncZonesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/addressing.py b/src/cloudflare/resources/addressing/addressing.py
index 65ac3b59c..2ddc2d783 100644
--- a/src/cloudflare/resources/addressing/addressing.py
+++ b/src/cloudflare/resources/addressing/addressing.py
@@ -72,7 +72,7 @@ class AddressingResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AddressingResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -113,7 +113,7 @@ class AsyncAddressingResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAddressingResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/loa_documents.py b/src/cloudflare/resources/addressing/loa_documents.py
index c4db454b8..47abb0af1 100644
--- a/src/cloudflare/resources/addressing/loa_documents.py
+++ b/src/cloudflare/resources/addressing/loa_documents.py
@@ -39,7 +39,7 @@ class LOADocumentsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> LOADocumentsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -148,7 +148,7 @@ class AsyncLOADocumentsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncLOADocumentsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/prefixes/advertisement_status.py b/src/cloudflare/resources/addressing/prefixes/advertisement_status.py
index 4ca0b677f..c8ce2f9fb 100644
--- a/src/cloudflare/resources/addressing/prefixes/advertisement_status.py
+++ b/src/cloudflare/resources/addressing/prefixes/advertisement_status.py
@@ -32,7 +32,7 @@ class AdvertisementStatusResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AdvertisementStatusResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -156,7 +156,7 @@ class AsyncAdvertisementStatusResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAdvertisementStatusResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/prefixes/bgp_prefixes.py b/src/cloudflare/resources/addressing/prefixes/bgp_prefixes.py
index 3f65acd83..f933e1253 100644
--- a/src/cloudflare/resources/addressing/prefixes/bgp_prefixes.py
+++ b/src/cloudflare/resources/addressing/prefixes/bgp_prefixes.py
@@ -32,7 +32,7 @@ class BGPPrefixesResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> BGPPrefixesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -249,7 +249,7 @@ class AsyncBGPPrefixesResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncBGPPrefixesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/prefixes/delegations.py b/src/cloudflare/resources/addressing/prefixes/delegations.py
index 93870db93..6c1e409ee 100644
--- a/src/cloudflare/resources/addressing/prefixes/delegations.py
+++ b/src/cloudflare/resources/addressing/prefixes/delegations.py
@@ -33,7 +33,7 @@ class DelegationsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> DelegationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -201,7 +201,7 @@ class AsyncDelegationsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncDelegationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/prefixes/prefixes.py b/src/cloudflare/resources/addressing/prefixes/prefixes.py
index b96204609..6c9f5435b 100644
--- a/src/cloudflare/resources/addressing/prefixes/prefixes.py
+++ b/src/cloudflare/resources/addressing/prefixes/prefixes.py
@@ -81,7 +81,7 @@ class PrefixesResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> PrefixesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -342,7 +342,7 @@ class AsyncPrefixesResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncPrefixesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/prefixes/service_bindings.py b/src/cloudflare/resources/addressing/prefixes/service_bindings.py
index c5be5b730..053cdd351 100644
--- a/src/cloudflare/resources/addressing/prefixes/service_bindings.py
+++ b/src/cloudflare/resources/addressing/prefixes/service_bindings.py
@@ -33,7 +33,7 @@ class ServiceBindingsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ServiceBindingsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -256,7 +256,7 @@ class AsyncServiceBindingsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncServiceBindingsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/regional_hostnames/regional_hostnames.py b/src/cloudflare/resources/addressing/regional_hostnames/regional_hostnames.py
index 6df921030..ed9b3b46b 100644
--- a/src/cloudflare/resources/addressing/regional_hostnames/regional_hostnames.py
+++ b/src/cloudflare/resources/addressing/regional_hostnames/regional_hostnames.py
@@ -48,7 +48,7 @@ class RegionalHostnamesResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> RegionalHostnamesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -303,7 +303,7 @@ class AsyncRegionalHostnamesResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncRegionalHostnamesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/regional_hostnames/regions.py b/src/cloudflare/resources/addressing/regional_hostnames/regions.py
index 16d9deac4..f0c69f1b8 100644
--- a/src/cloudflare/resources/addressing/regional_hostnames/regions.py
+++ b/src/cloudflare/resources/addressing/regional_hostnames/regions.py
@@ -24,7 +24,7 @@ class RegionsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> RegionsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -81,7 +81,7 @@ class AsyncRegionsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncRegionsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/addressing/services.py b/src/cloudflare/resources/addressing/services.py
index e73f0c622..799ce7f09 100644
--- a/src/cloudflare/resources/addressing/services.py
+++ b/src/cloudflare/resources/addressing/services.py
@@ -24,7 +24,7 @@ class ServicesResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ServicesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -84,7 +84,7 @@ class AsyncServicesResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncServicesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai/ai.py b/src/cloudflare/resources/ai/ai.py
index 396a1360f..bbc218bb3 100644
--- a/src/cloudflare/resources/ai/ai.py
+++ b/src/cloudflare/resources/ai/ai.py
@@ -81,7 +81,7 @@ class AIResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AIResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -424,6 +424,7 @@ class AIResource(SyncAPIResource):
presence_penalty: float | NotGiven = NOT_GIVEN,
raw: bool | NotGiven = NOT_GIVEN,
repetition_penalty: float | NotGiven = NOT_GIVEN,
+ response_format: ai_run_params.PromptResponseFormat | NotGiven = NOT_GIVEN,
seed: int | NotGiven = NOT_GIVEN,
stream: bool | NotGiven = NOT_GIVEN,
temperature: float | NotGiven = NOT_GIVEN,
@@ -501,6 +502,7 @@ class AIResource(SyncAPIResource):
max_tokens: int | NotGiven = NOT_GIVEN,
presence_penalty: float | NotGiven = NOT_GIVEN,
repetition_penalty: float | NotGiven = NOT_GIVEN,
+ response_format: ai_run_params.MessagesResponseFormat | NotGiven = NOT_GIVEN,
seed: int | NotGiven = NOT_GIVEN,
stream: bool | NotGiven = NOT_GIVEN,
temperature: float | NotGiven = NOT_GIVEN,
@@ -656,10 +658,16 @@ class AIResource(SyncAPIResource):
*,
account_id: str,
image: Iterable[float],
+ frequency_penalty: float | NotGiven = NOT_GIVEN,
max_tokens: int | NotGiven = NOT_GIVEN,
+ presence_penalty: float | NotGiven = NOT_GIVEN,
prompt: str | NotGiven = NOT_GIVEN,
raw: bool | NotGiven = NOT_GIVEN,
+ repetition_penalty: float | NotGiven = NOT_GIVEN,
+ seed: float | NotGiven = NOT_GIVEN,
temperature: float | NotGiven = NOT_GIVEN,
+ top_k: float | NotGiven = NOT_GIVEN,
+ top_p: float | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
@@ -682,16 +690,32 @@ class AIResource(SyncAPIResource):
image: An array of integers that represent the image data constrained to 8-bit unsigned
integer values
+ frequency_penalty: Decreases the likelihood of the model repeating the same lines verbatim.
+
max_tokens: The maximum number of tokens to generate in the response.
+ presence_penalty: Increases the likelihood of the model introducing new topics.
+
prompt: The input text prompt for the model to generate a response.
raw: If true, a chat template is not applied and you must adhere to the specific
model's expected formatting.
+ repetition_penalty: Penalty for repeated tokens; higher values discourage repetition.
+
+ seed: Random seed for reproducibility of the generation.
+
temperature: Controls the randomness of the output; higher values produce more random
results.
+ top_k: Limits the AI to choose from the top 'k' most probable words. Lower values make
+ responses more focused; higher values introduce more variety and potential
+ surprises.
+
+ top_p: Controls the creativity of the AI's responses by adjusting how many possible
+ words it considers. Lower values make outputs more predictable; higher values
+ allow for more varied and creative responses.
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -726,7 +750,7 @@ class AIResource(SyncAPIResource):
mask: Iterable[float] | NotGiven = NOT_GIVEN,
negative_prompt: str | NotGiven = NOT_GIVEN,
num_steps: int | NotGiven = NOT_GIVEN,
- seed: int | NotGiven = NOT_GIVEN,
+ seed: int | float | NotGiven = NOT_GIVEN,
strength: float | NotGiven = NOT_GIVEN,
width: int | NotGiven = NOT_GIVEN,
lang: str | NotGiven = NOT_GIVEN,
@@ -739,9 +763,10 @@ class AIResource(SyncAPIResource):
presence_penalty: float | NotGiven = NOT_GIVEN,
raw: bool | NotGiven = NOT_GIVEN,
repetition_penalty: float | NotGiven = NOT_GIVEN,
+ response_format: ai_run_params.PromptResponseFormat | NotGiven = NOT_GIVEN,
stream: bool | NotGiven = NOT_GIVEN,
temperature: float | NotGiven = NOT_GIVEN,
- top_k: int | NotGiven = NOT_GIVEN,
+ top_k: int | float | NotGiven = NOT_GIVEN,
top_p: float | NotGiven = NOT_GIVEN,
messages: Iterable[ai_run_params.MessagesMessage] | NotGiven = NOT_GIVEN,
functions: Iterable[ai_run_params.MessagesFunction] | NotGiven = NOT_GIVEN,
@@ -787,6 +812,7 @@ class AIResource(SyncAPIResource):
"presence_penalty": presence_penalty,
"raw": raw,
"repetition_penalty": repetition_penalty,
+ "response_format": response_format,
"stream": stream,
"temperature": temperature,
"top_k": top_k,
@@ -833,7 +859,7 @@ class AsyncAIResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAIResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -1176,6 +1202,7 @@ class AsyncAIResource(AsyncAPIResource):
presence_penalty: float | NotGiven = NOT_GIVEN,
raw: bool | NotGiven = NOT_GIVEN,
repetition_penalty: float | NotGiven = NOT_GIVEN,
+ response_format: ai_run_params.PromptResponseFormat | NotGiven = NOT_GIVEN,
seed: int | NotGiven = NOT_GIVEN,
stream: bool | NotGiven = NOT_GIVEN,
temperature: float | NotGiven = NOT_GIVEN,
@@ -1253,6 +1280,7 @@ class AsyncAIResource(AsyncAPIResource):
max_tokens: int | NotGiven = NOT_GIVEN,
presence_penalty: float | NotGiven = NOT_GIVEN,
repetition_penalty: float | NotGiven = NOT_GIVEN,
+ response_format: ai_run_params.MessagesResponseFormat | NotGiven = NOT_GIVEN,
seed: int | NotGiven = NOT_GIVEN,
stream: bool | NotGiven = NOT_GIVEN,
temperature: float | NotGiven = NOT_GIVEN,
@@ -1408,10 +1436,16 @@ class AsyncAIResource(AsyncAPIResource):
*,
account_id: str,
image: Iterable[float],
+ frequency_penalty: float | NotGiven = NOT_GIVEN,
max_tokens: int | NotGiven = NOT_GIVEN,
+ presence_penalty: float | NotGiven = NOT_GIVEN,
prompt: str | NotGiven = NOT_GIVEN,
raw: bool | NotGiven = NOT_GIVEN,
+ repetition_penalty: float | NotGiven = NOT_GIVEN,
+ seed: float | NotGiven = NOT_GIVEN,
temperature: float | NotGiven = NOT_GIVEN,
+ top_k: float | NotGiven = NOT_GIVEN,
+ top_p: float | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
@@ -1434,16 +1468,32 @@ class AsyncAIResource(AsyncAPIResource):
image: An array of integers that represent the image data constrained to 8-bit unsigned
integer values
+ frequency_penalty: Decreases the likelihood of the model repeating the same lines verbatim.
+
max_tokens: The maximum number of tokens to generate in the response.
+ presence_penalty: Increases the likelihood of the model introducing new topics.
+
prompt: The input text prompt for the model to generate a response.
raw: If true, a chat template is not applied and you must adhere to the specific
model's expected formatting.
+ repetition_penalty: Penalty for repeated tokens; higher values discourage repetition.
+
+ seed: Random seed for reproducibility of the generation.
+
temperature: Controls the randomness of the output; higher values produce more random
results.
+ top_k: Limits the AI to choose from the top 'k' most probable words. Lower values make
+ responses more focused; higher values introduce more variety and potential
+ surprises.
+
+ top_p: Controls the creativity of the AI's responses by adjusting how many possible
+ words it considers. Lower values make outputs more predictable; higher values
+ allow for more varied and creative responses.
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -1478,7 +1528,7 @@ class AsyncAIResource(AsyncAPIResource):
mask: Iterable[float] | NotGiven = NOT_GIVEN,
negative_prompt: str | NotGiven = NOT_GIVEN,
num_steps: int | NotGiven = NOT_GIVEN,
- seed: int | NotGiven = NOT_GIVEN,
+ seed: int | float | NotGiven = NOT_GIVEN,
strength: float | NotGiven = NOT_GIVEN,
width: int | NotGiven = NOT_GIVEN,
lang: str | NotGiven = NOT_GIVEN,
@@ -1491,9 +1541,10 @@ class AsyncAIResource(AsyncAPIResource):
presence_penalty: float | NotGiven = NOT_GIVEN,
raw: bool | NotGiven = NOT_GIVEN,
repetition_penalty: float | NotGiven = NOT_GIVEN,
+ response_format: ai_run_params.PromptResponseFormat | NotGiven = NOT_GIVEN,
stream: bool | NotGiven = NOT_GIVEN,
temperature: float | NotGiven = NOT_GIVEN,
- top_k: int | NotGiven = NOT_GIVEN,
+ top_k: int | float | NotGiven = NOT_GIVEN,
top_p: float | NotGiven = NOT_GIVEN,
messages: Iterable[ai_run_params.MessagesMessage] | NotGiven = NOT_GIVEN,
functions: Iterable[ai_run_params.MessagesFunction] | NotGiven = NOT_GIVEN,
@@ -1539,6 +1590,7 @@ class AsyncAIResource(AsyncAPIResource):
"presence_penalty": presence_penalty,
"raw": raw,
"repetition_penalty": repetition_penalty,
+ "response_format": response_format,
"stream": stream,
"temperature": temperature,
"top_k": top_k,
diff --git a/src/cloudflare/resources/ai/authors.py b/src/cloudflare/resources/ai/authors.py
index ecf213ff0..f5c5ce987 100644
--- a/src/cloudflare/resources/ai/authors.py
+++ b/src/cloudflare/resources/ai/authors.py
@@ -23,7 +23,7 @@ class AuthorsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AuthorsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -78,7 +78,7 @@ class AsyncAuthorsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAuthorsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai/finetunes/assets.py b/src/cloudflare/resources/ai/finetunes/assets.py
index dfeb072ae..7df434bb0 100644
--- a/src/cloudflare/resources/ai/finetunes/assets.py
+++ b/src/cloudflare/resources/ai/finetunes/assets.py
@@ -33,7 +33,7 @@ class AssetsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AssetsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -109,7 +109,7 @@ class AsyncAssetsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAssetsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai/finetunes/finetunes.py b/src/cloudflare/resources/ai/finetunes/finetunes.py
index 1cdef4efc..51bac25f1 100644
--- a/src/cloudflare/resources/ai/finetunes/finetunes.py
+++ b/src/cloudflare/resources/ai/finetunes/finetunes.py
@@ -56,7 +56,7 @@ class FinetunesResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> FinetunesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -172,7 +172,7 @@ class AsyncFinetunesResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncFinetunesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai/finetunes/public.py b/src/cloudflare/resources/ai/finetunes/public.py
index 74c49e747..c8d542c98 100644
--- a/src/cloudflare/resources/ai/finetunes/public.py
+++ b/src/cloudflare/resources/ai/finetunes/public.py
@@ -26,7 +26,7 @@ class PublicResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> PublicResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -101,7 +101,7 @@ class AsyncPublicResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncPublicResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai/models/models.py b/src/cloudflare/resources/ai/models/models.py
index 66a2394f6..74f1ac1ad 100644
--- a/src/cloudflare/resources/ai/models/models.py
+++ b/src/cloudflare/resources/ai/models/models.py
@@ -37,7 +37,7 @@ class ModelsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ModelsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -128,7 +128,7 @@ class AsyncModelsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncModelsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai/models/schema.py b/src/cloudflare/resources/ai/models/schema.py
index be4afa700..9b62769bf 100644
--- a/src/cloudflare/resources/ai/models/schema.py
+++ b/src/cloudflare/resources/ai/models/schema.py
@@ -30,7 +30,7 @@ class SchemaResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> SchemaResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -92,7 +92,7 @@ class AsyncSchemaResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncSchemaResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai/tasks.py b/src/cloudflare/resources/ai/tasks.py
index c2b6cae39..16b130e68 100644
--- a/src/cloudflare/resources/ai/tasks.py
+++ b/src/cloudflare/resources/ai/tasks.py
@@ -23,7 +23,7 @@ class TasksResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> TasksResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -78,7 +78,7 @@ class AsyncTasksResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncTasksResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai_gateway/__init__.py b/src/cloudflare/resources/ai_gateway/__init__.py
index bdfd7be93..48aa9d932 100644
--- a/src/cloudflare/resources/ai_gateway/__init__.py
+++ b/src/cloudflare/resources/ai_gateway/__init__.py
@@ -8,6 +8,14 @@ from .logs import (
LogsResourceWithStreamingResponse,
AsyncLogsResourceWithStreamingResponse,
)
+from .urls import (
+ URLsResource,
+ AsyncURLsResource,
+ URLsResourceWithRawResponse,
+ AsyncURLsResourceWithRawResponse,
+ URLsResourceWithStreamingResponse,
+ AsyncURLsResourceWithStreamingResponse,
+)
from .datasets import (
DatasetsResource,
AsyncDatasetsResource,
@@ -66,6 +74,12 @@ __all__ = [
"AsyncEvaluationsResourceWithRawResponse",
"EvaluationsResourceWithStreamingResponse",
"AsyncEvaluationsResourceWithStreamingResponse",
+ "URLsResource",
+ "AsyncURLsResource",
+ "URLsResourceWithRawResponse",
+ "AsyncURLsResourceWithRawResponse",
+ "URLsResourceWithStreamingResponse",
+ "AsyncURLsResourceWithStreamingResponse",
"AIGatewayResource",
"AsyncAIGatewayResource",
"AIGatewayResourceWithRawResponse",
diff --git a/src/cloudflare/resources/ai_gateway/ai_gateway.py b/src/cloudflare/resources/ai_gateway/ai_gateway.py
index ebbaa17ba..d21818fc0 100644
--- a/src/cloudflare/resources/ai_gateway/ai_gateway.py
+++ b/src/cloudflare/resources/ai_gateway/ai_gateway.py
@@ -15,6 +15,14 @@ from .logs import (
LogsResourceWithStreamingResponse,
AsyncLogsResourceWithStreamingResponse,
)
+from .urls import (
+ URLsResource,
+ AsyncURLsResource,
+ URLsResourceWithRawResponse,
+ AsyncURLsResourceWithRawResponse,
+ URLsResourceWithStreamingResponse,
+ AsyncURLsResourceWithStreamingResponse,
+)
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from ..._utils import (
maybe_transform,
@@ -82,10 +90,14 @@ class AIGatewayResource(SyncAPIResource):
def evaluations(self) -> EvaluationsResource:
return EvaluationsResource(self._client)
+ @cached_property
+ def urls(self) -> URLsResource:
+ return URLsResource(self._client)
+
@cached_property
def with_raw_response(self) -> AIGatewayResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -112,6 +124,9 @@ class AIGatewayResource(SyncAPIResource):
rate_limiting_interval: Optional[int],
rate_limiting_limit: Optional[int],
rate_limiting_technique: Literal["fixed", "sliding"],
+ authentication: bool | NotGiven = NOT_GIVEN,
+ log_management: Optional[int] | NotGiven = NOT_GIVEN,
+ log_management_strategy: Optional[Literal["STOP_INSERTING", "DELETE_OLDEST"]] | NotGiven = NOT_GIVEN,
logpush: bool | NotGiven = NOT_GIVEN,
logpush_public_key: Optional[str] | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -148,6 +163,9 @@ class AIGatewayResource(SyncAPIResource):
"rate_limiting_interval": rate_limiting_interval,
"rate_limiting_limit": rate_limiting_limit,
"rate_limiting_technique": rate_limiting_technique,
+ "authentication": authentication,
+ "log_management": log_management,
+ "log_management_strategy": log_management_strategy,
"logpush": logpush,
"logpush_public_key": logpush_public_key,
},
@@ -174,6 +192,9 @@ class AIGatewayResource(SyncAPIResource):
rate_limiting_interval: Optional[int],
rate_limiting_limit: Optional[int],
rate_limiting_technique: Literal["fixed", "sliding"],
+ authentication: bool | NotGiven = NOT_GIVEN,
+ log_management: Optional[int] | NotGiven = NOT_GIVEN,
+ log_management_strategy: Optional[Literal["STOP_INSERTING", "DELETE_OLDEST"]] | NotGiven = NOT_GIVEN,
logpush: bool | NotGiven = NOT_GIVEN,
logpush_public_key: Optional[str] | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -211,6 +232,9 @@ class AIGatewayResource(SyncAPIResource):
"rate_limiting_interval": rate_limiting_interval,
"rate_limiting_limit": rate_limiting_limit,
"rate_limiting_technique": rate_limiting_technique,
+ "authentication": authentication,
+ "log_management": log_management,
+ "log_management_strategy": log_management_strategy,
"logpush": logpush,
"logpush_public_key": logpush_public_key,
},
@@ -378,10 +402,14 @@ class AsyncAIGatewayResource(AsyncAPIResource):
def evaluations(self) -> AsyncEvaluationsResource:
return AsyncEvaluationsResource(self._client)
+ @cached_property
+ def urls(self) -> AsyncURLsResource:
+ return AsyncURLsResource(self._client)
+
@cached_property
def with_raw_response(self) -> AsyncAIGatewayResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -408,6 +436,9 @@ class AsyncAIGatewayResource(AsyncAPIResource):
rate_limiting_interval: Optional[int],
rate_limiting_limit: Optional[int],
rate_limiting_technique: Literal["fixed", "sliding"],
+ authentication: bool | NotGiven = NOT_GIVEN,
+ log_management: Optional[int] | NotGiven = NOT_GIVEN,
+ log_management_strategy: Optional[Literal["STOP_INSERTING", "DELETE_OLDEST"]] | NotGiven = NOT_GIVEN,
logpush: bool | NotGiven = NOT_GIVEN,
logpush_public_key: Optional[str] | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -444,6 +475,9 @@ class AsyncAIGatewayResource(AsyncAPIResource):
"rate_limiting_interval": rate_limiting_interval,
"rate_limiting_limit": rate_limiting_limit,
"rate_limiting_technique": rate_limiting_technique,
+ "authentication": authentication,
+ "log_management": log_management,
+ "log_management_strategy": log_management_strategy,
"logpush": logpush,
"logpush_public_key": logpush_public_key,
},
@@ -470,6 +504,9 @@ class AsyncAIGatewayResource(AsyncAPIResource):
rate_limiting_interval: Optional[int],
rate_limiting_limit: Optional[int],
rate_limiting_technique: Literal["fixed", "sliding"],
+ authentication: bool | NotGiven = NOT_GIVEN,
+ log_management: Optional[int] | NotGiven = NOT_GIVEN,
+ log_management_strategy: Optional[Literal["STOP_INSERTING", "DELETE_OLDEST"]] | NotGiven = NOT_GIVEN,
logpush: bool | NotGiven = NOT_GIVEN,
logpush_public_key: Optional[str] | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -507,6 +544,9 @@ class AsyncAIGatewayResource(AsyncAPIResource):
"rate_limiting_interval": rate_limiting_interval,
"rate_limiting_limit": rate_limiting_limit,
"rate_limiting_technique": rate_limiting_technique,
+ "authentication": authentication,
+ "log_management": log_management,
+ "log_management_strategy": log_management_strategy,
"logpush": logpush,
"logpush_public_key": logpush_public_key,
},
@@ -693,6 +733,10 @@ class AIGatewayResourceWithRawResponse:
def evaluations(self) -> EvaluationsResourceWithRawResponse:
return EvaluationsResourceWithRawResponse(self._ai_gateway.evaluations)
+ @cached_property
+ def urls(self) -> URLsResourceWithRawResponse:
+ return URLsResourceWithRawResponse(self._ai_gateway.urls)
+
class AsyncAIGatewayResourceWithRawResponse:
def __init__(self, ai_gateway: AsyncAIGatewayResource) -> None:
@@ -730,6 +774,10 @@ class AsyncAIGatewayResourceWithRawResponse:
def evaluations(self) -> AsyncEvaluationsResourceWithRawResponse:
return AsyncEvaluationsResourceWithRawResponse(self._ai_gateway.evaluations)
+ @cached_property
+ def urls(self) -> AsyncURLsResourceWithRawResponse:
+ return AsyncURLsResourceWithRawResponse(self._ai_gateway.urls)
+
class AIGatewayResourceWithStreamingResponse:
def __init__(self, ai_gateway: AIGatewayResource) -> None:
@@ -767,6 +815,10 @@ class AIGatewayResourceWithStreamingResponse:
def evaluations(self) -> EvaluationsResourceWithStreamingResponse:
return EvaluationsResourceWithStreamingResponse(self._ai_gateway.evaluations)
+ @cached_property
+ def urls(self) -> URLsResourceWithStreamingResponse:
+ return URLsResourceWithStreamingResponse(self._ai_gateway.urls)
+
class AsyncAIGatewayResourceWithStreamingResponse:
def __init__(self, ai_gateway: AsyncAIGatewayResource) -> None:
@@ -803,3 +855,7 @@ class AsyncAIGatewayResourceWithStreamingResponse:
@cached_property
def evaluations(self) -> AsyncEvaluationsResourceWithStreamingResponse:
return AsyncEvaluationsResourceWithStreamingResponse(self._ai_gateway.evaluations)
+
+ @cached_property
+ def urls(self) -> AsyncURLsResourceWithStreamingResponse:
+ return AsyncURLsResourceWithStreamingResponse(self._ai_gateway.urls)
diff --git a/src/cloudflare/resources/ai_gateway/datasets.py b/src/cloudflare/resources/ai_gateway/datasets.py
index 3d58ec297..afed3ec86 100644
--- a/src/cloudflare/resources/ai_gateway/datasets.py
+++ b/src/cloudflare/resources/ai_gateway/datasets.py
@@ -36,7 +36,7 @@ class DatasetsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> DatasetsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -315,7 +315,7 @@ class AsyncDatasetsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncDatasetsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai_gateway/evaluation_types.py b/src/cloudflare/resources/ai_gateway/evaluation_types.py
index 94d76d338..047c5936d 100644
--- a/src/cloudflare/resources/ai_gateway/evaluation_types.py
+++ b/src/cloudflare/resources/ai_gateway/evaluation_types.py
@@ -2,16 +2,12 @@
from __future__ import annotations
-from typing import Type, cast
from typing_extensions import Literal
import httpx
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
-from ..._utils import (
- maybe_transform,
- async_maybe_transform,
-)
+from ..._utils import maybe_transform
from ..._compat import cached_property
from ..._resource import SyncAPIResource, AsyncAPIResource
from ..._response import (
@@ -20,10 +16,10 @@ from ..._response import (
async_to_raw_response_wrapper,
async_to_streamed_response_wrapper,
)
-from ..._wrappers import ResultWrapper
-from ..._base_client import make_request_options
-from ...types.ai_gateway import evaluation_type_get_params
-from ...types.ai_gateway.evaluation_type_get_response import EvaluationTypeGetResponse
+from ...pagination import SyncV4PagePaginationArray, AsyncV4PagePaginationArray
+from ..._base_client import AsyncPaginator, make_request_options
+from ...types.ai_gateway import evaluation_type_list_params
+from ...types.ai_gateway.evaluation_type_list_response import EvaluationTypeListResponse
__all__ = ["EvaluationTypesResource", "AsyncEvaluationTypesResource"]
@@ -32,7 +28,7 @@ class EvaluationTypesResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> EvaluationTypesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -48,7 +44,7 @@ class EvaluationTypesResource(SyncAPIResource):
"""
return EvaluationTypesResourceWithStreamingResponse(self)
- def get(
+ def list(
self,
*,
account_id: str,
@@ -62,7 +58,7 @@ class EvaluationTypesResource(SyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> EvaluationTypeGetResponse:
+ ) -> SyncV4PagePaginationArray[EvaluationTypeListResponse]:
"""
List Evaluators
@@ -77,8 +73,9 @@ class EvaluationTypesResource(SyncAPIResource):
"""
if not account_id:
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
- return self._get(
+ return self._get_api_list(
f"/accounts/{account_id}/ai-gateway/evaluation-types",
+ page=SyncV4PagePaginationArray[EvaluationTypeListResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
@@ -91,11 +88,10 @@ class EvaluationTypesResource(SyncAPIResource):
"page": page,
"per_page": per_page,
},
- evaluation_type_get_params.EvaluationTypeGetParams,
+ evaluation_type_list_params.EvaluationTypeListParams,
),
- post_parser=ResultWrapper[EvaluationTypeGetResponse]._unwrapper,
),
- cast_to=cast(Type[EvaluationTypeGetResponse], ResultWrapper[EvaluationTypeGetResponse]),
+ model=EvaluationTypeListResponse,
)
@@ -103,7 +99,7 @@ class AsyncEvaluationTypesResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncEvaluationTypesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -119,7 +115,7 @@ class AsyncEvaluationTypesResource(AsyncAPIResource):
"""
return AsyncEvaluationTypesResourceWithStreamingResponse(self)
- async def get(
+ def list(
self,
*,
account_id: str,
@@ -133,7 +129,7 @@ class AsyncEvaluationTypesResource(AsyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> EvaluationTypeGetResponse:
+ ) -> AsyncPaginator[EvaluationTypeListResponse, AsyncV4PagePaginationArray[EvaluationTypeListResponse]]:
"""
List Evaluators
@@ -148,25 +144,25 @@ class AsyncEvaluationTypesResource(AsyncAPIResource):
"""
if not account_id:
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
- return await self._get(
+ return self._get_api_list(
f"/accounts/{account_id}/ai-gateway/evaluation-types",
+ page=AsyncV4PagePaginationArray[EvaluationTypeListResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
- query=await async_maybe_transform(
+ query=maybe_transform(
{
"order_by": order_by,
"order_by_direction": order_by_direction,
"page": page,
"per_page": per_page,
},
- evaluation_type_get_params.EvaluationTypeGetParams,
+ evaluation_type_list_params.EvaluationTypeListParams,
),
- post_parser=ResultWrapper[EvaluationTypeGetResponse]._unwrapper,
),
- cast_to=cast(Type[EvaluationTypeGetResponse], ResultWrapper[EvaluationTypeGetResponse]),
+ model=EvaluationTypeListResponse,
)
@@ -174,8 +170,8 @@ class EvaluationTypesResourceWithRawResponse:
def __init__(self, evaluation_types: EvaluationTypesResource) -> None:
self._evaluation_types = evaluation_types
- self.get = to_raw_response_wrapper(
- evaluation_types.get,
+ self.list = to_raw_response_wrapper(
+ evaluation_types.list,
)
@@ -183,8 +179,8 @@ class AsyncEvaluationTypesResourceWithRawResponse:
def __init__(self, evaluation_types: AsyncEvaluationTypesResource) -> None:
self._evaluation_types = evaluation_types
- self.get = async_to_raw_response_wrapper(
- evaluation_types.get,
+ self.list = async_to_raw_response_wrapper(
+ evaluation_types.list,
)
@@ -192,8 +188,8 @@ class EvaluationTypesResourceWithStreamingResponse:
def __init__(self, evaluation_types: EvaluationTypesResource) -> None:
self._evaluation_types = evaluation_types
- self.get = to_streamed_response_wrapper(
- evaluation_types.get,
+ self.list = to_streamed_response_wrapper(
+ evaluation_types.list,
)
@@ -201,6 +197,6 @@ class AsyncEvaluationTypesResourceWithStreamingResponse:
def __init__(self, evaluation_types: AsyncEvaluationTypesResource) -> None:
self._evaluation_types = evaluation_types
- self.get = async_to_streamed_response_wrapper(
- evaluation_types.get,
+ self.list = async_to_streamed_response_wrapper(
+ evaluation_types.list,
)
diff --git a/src/cloudflare/resources/ai_gateway/evaluations.py b/src/cloudflare/resources/ai_gateway/evaluations.py
index 5dbccd8f3..9fadf2aa9 100644
--- a/src/cloudflare/resources/ai_gateway/evaluations.py
+++ b/src/cloudflare/resources/ai_gateway/evaluations.py
@@ -35,7 +35,7 @@ class EvaluationsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> EvaluationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -258,7 +258,7 @@ class AsyncEvaluationsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncEvaluationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai_gateway/logs.py b/src/cloudflare/resources/ai_gateway/logs.py
index 65ac6d95b..0daa36fc2 100644
--- a/src/cloudflare/resources/ai_gateway/logs.py
+++ b/src/cloudflare/resources/ai_gateway/logs.py
@@ -36,7 +36,7 @@ class LogsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> LogsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -410,7 +410,7 @@ class AsyncLogsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncLogsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/ai_gateway/urls.py b/src/cloudflare/resources/ai_gateway/urls.py
new file mode 100644
index 000000000..d29f1b627
--- /dev/null
+++ b/src/cloudflare/resources/ai_gateway/urls.py
@@ -0,0 +1,190 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+from typing import Type, cast
+
+import httpx
+
+from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
+from ..._compat import cached_property
+from ..._resource import SyncAPIResource, AsyncAPIResource
+from ..._response import (
+ to_raw_response_wrapper,
+ to_streamed_response_wrapper,
+ async_to_raw_response_wrapper,
+ async_to_streamed_response_wrapper,
+)
+from ..._wrappers import ResultWrapper
+from ..._base_client import make_request_options
+from ...types.ai_gateway.url_get_response import URLGetResponse
+
+__all__ = ["URLsResource", "AsyncURLsResource"]
+
+
+class URLsResource(SyncAPIResource):
+ @cached_property
+ def with_raw_response(self) -> URLsResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
+ """
+ return URLsResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> URLsResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response
+ """
+ return URLsResourceWithStreamingResponse(self)
+
+ def get(
+ self,
+ provider: str,
+ *,
+ account_id: str,
+ gateway_id: str,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Get Gateway URL
+
+ Args:
+ gateway_id: gateway id
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ if not account_id:
+ raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
+ if not gateway_id:
+ raise ValueError(f"Expected a non-empty value for `gateway_id` but received {gateway_id!r}")
+ if not provider:
+ raise ValueError(f"Expected a non-empty value for `provider` but received {provider!r}")
+ return self._get(
+ f"/accounts/{account_id}/ai-gateway/gateways/{gateway_id}/url/{provider}",
+ options=make_request_options(
+ extra_headers=extra_headers,
+ extra_query=extra_query,
+ extra_body=extra_body,
+ timeout=timeout,
+ post_parser=ResultWrapper[URLGetResponse]._unwrapper,
+ ),
+ cast_to=cast(Type[str], ResultWrapper[str]),
+ )
+
+
+class AsyncURLsResource(AsyncAPIResource):
+ @cached_property
+ def with_raw_response(self) -> AsyncURLsResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
+ """
+ return AsyncURLsResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> AsyncURLsResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response
+ """
+ return AsyncURLsResourceWithStreamingResponse(self)
+
+ async def get(
+ self,
+ provider: str,
+ *,
+ account_id: str,
+ gateway_id: str,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """
+ Get Gateway URL
+
+ Args:
+ gateway_id: gateway id
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ if not account_id:
+ raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
+ if not gateway_id:
+ raise ValueError(f"Expected a non-empty value for `gateway_id` but received {gateway_id!r}")
+ if not provider:
+ raise ValueError(f"Expected a non-empty value for `provider` but received {provider!r}")
+ return await self._get(
+ f"/accounts/{account_id}/ai-gateway/gateways/{gateway_id}/url/{provider}",
+ options=make_request_options(
+ extra_headers=extra_headers,
+ extra_query=extra_query,
+ extra_body=extra_body,
+ timeout=timeout,
+ post_parser=ResultWrapper[URLGetResponse]._unwrapper,
+ ),
+ cast_to=cast(Type[str], ResultWrapper[str]),
+ )
+
+
+class URLsResourceWithRawResponse:
+ def __init__(self, urls: URLsResource) -> None:
+ self._urls = urls
+
+ self.get = to_raw_response_wrapper(
+ urls.get,
+ )
+
+
+class AsyncURLsResourceWithRawResponse:
+ def __init__(self, urls: AsyncURLsResource) -> None:
+ self._urls = urls
+
+ self.get = async_to_raw_response_wrapper(
+ urls.get,
+ )
+
+
+class URLsResourceWithStreamingResponse:
+ def __init__(self, urls: URLsResource) -> None:
+ self._urls = urls
+
+ self.get = to_streamed_response_wrapper(
+ urls.get,
+ )
+
+
+class AsyncURLsResourceWithStreamingResponse:
+ def __init__(self, urls: AsyncURLsResource) -> None:
+ self._urls = urls
+
+ self.get = async_to_streamed_response_wrapper(
+ urls.get,
+ )
diff --git a/src/cloudflare/resources/alerting/alerting.py b/src/cloudflare/resources/alerting/alerting.py
index 26acc6c7b..faa242b37 100644
--- a/src/cloudflare/resources/alerting/alerting.py
+++ b/src/cloudflare/resources/alerting/alerting.py
@@ -60,7 +60,7 @@ class AlertingResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AlertingResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -97,7 +97,7 @@ class AsyncAlertingResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAlertingResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/alerting/available_alerts.py b/src/cloudflare/resources/alerting/available_alerts.py
index 0ef63c9f0..713f9e8db 100644
--- a/src/cloudflare/resources/alerting/available_alerts.py
+++ b/src/cloudflare/resources/alerting/available_alerts.py
@@ -26,7 +26,7 @@ class AvailableAlertsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AvailableAlertsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -86,7 +86,7 @@ class AsyncAvailableAlertsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAvailableAlertsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/alerting/destinations/destinations.py b/src/cloudflare/resources/alerting/destinations/destinations.py
index d15420aed..8e074ffa2 100644
--- a/src/cloudflare/resources/alerting/destinations/destinations.py
+++ b/src/cloudflare/resources/alerting/destinations/destinations.py
@@ -48,7 +48,7 @@ class DestinationsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> DestinationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -81,7 +81,7 @@ class AsyncDestinationsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncDestinationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/alerting/destinations/eligible.py b/src/cloudflare/resources/alerting/destinations/eligible.py
index 4f73d80b3..b93d17a64 100644
--- a/src/cloudflare/resources/alerting/destinations/eligible.py
+++ b/src/cloudflare/resources/alerting/destinations/eligible.py
@@ -26,7 +26,7 @@ class EligibleResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> EligibleResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -86,7 +86,7 @@ class AsyncEligibleResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncEligibleResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/alerting/destinations/pagerduty.py b/src/cloudflare/resources/alerting/destinations/pagerduty.py
index e59cf6537..035b26f0a 100644
--- a/src/cloudflare/resources/alerting/destinations/pagerduty.py
+++ b/src/cloudflare/resources/alerting/destinations/pagerduty.py
@@ -16,8 +16,9 @@ from ...._response import (
async_to_streamed_response_wrapper,
)
from ...._wrappers import ResultWrapper
-from ...._base_client import make_request_options
-from ....types.alerting.destinations.pagerduty_get_response import PagerdutyGetResponse
+from ....pagination import SyncSinglePage, AsyncSinglePage
+from ...._base_client import AsyncPaginator, make_request_options
+from ....types.alerting.destinations.pagerduty import Pagerduty
from ....types.alerting.destinations.pagerduty_link_response import PagerdutyLinkResponse
from ....types.alerting.destinations.pagerduty_create_response import PagerdutyCreateResponse
from ....types.alerting.destinations.pagerduty_delete_response import PagerdutyDeleteResponse
@@ -29,7 +30,7 @@ class PagerdutyResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> PagerdutyResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -129,7 +130,7 @@ class PagerdutyResource(SyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Optional[PagerdutyGetResponse]:
+ ) -> SyncSinglePage[Pagerduty]:
"""
Get a list of all configured PagerDuty services.
@@ -146,16 +147,13 @@ class PagerdutyResource(SyncAPIResource):
"""
if not account_id:
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
- return self._get(
+ return self._get_api_list(
f"/accounts/{account_id}/alerting/v3/destinations/pagerduty",
+ page=SyncSinglePage[Pagerduty],
options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- post_parser=ResultWrapper[Optional[PagerdutyGetResponse]]._unwrapper,
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=cast(Type[Optional[PagerdutyGetResponse]], ResultWrapper[PagerdutyGetResponse]),
+ model=Pagerduty,
)
def link(
@@ -207,7 +205,7 @@ class AsyncPagerdutyResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncPagerdutyResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -297,7 +295,7 @@ class AsyncPagerdutyResource(AsyncAPIResource):
cast_to=PagerdutyDeleteResponse,
)
- async def get(
+ def get(
self,
*,
account_id: str,
@@ -307,7 +305,7 @@ class AsyncPagerdutyResource(AsyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Optional[PagerdutyGetResponse]:
+ ) -> AsyncPaginator[Pagerduty, AsyncSinglePage[Pagerduty]]:
"""
Get a list of all configured PagerDuty services.
@@ -324,16 +322,13 @@ class AsyncPagerdutyResource(AsyncAPIResource):
"""
if not account_id:
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
- return await self._get(
+ return self._get_api_list(
f"/accounts/{account_id}/alerting/v3/destinations/pagerduty",
+ page=AsyncSinglePage[Pagerduty],
options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- post_parser=ResultWrapper[Optional[PagerdutyGetResponse]]._unwrapper,
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=cast(Type[Optional[PagerdutyGetResponse]], ResultWrapper[PagerdutyGetResponse]),
+ model=Pagerduty,
)
async def link(
diff --git a/src/cloudflare/resources/alerting/destinations/webhooks.py b/src/cloudflare/resources/alerting/destinations/webhooks.py
index 5189a7b80..e5d7f0d1b 100644
--- a/src/cloudflare/resources/alerting/destinations/webhooks.py
+++ b/src/cloudflare/resources/alerting/destinations/webhooks.py
@@ -35,7 +35,7 @@ class WebhooksResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> WebhooksResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -299,7 +299,7 @@ class AsyncWebhooksResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncWebhooksResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/alerting/history.py b/src/cloudflare/resources/alerting/history.py
index 29a1fe0f3..23733d5fa 100644
--- a/src/cloudflare/resources/alerting/history.py
+++ b/src/cloudflare/resources/alerting/history.py
@@ -29,7 +29,7 @@ class HistoryResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> HistoryResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -115,7 +115,7 @@ class AsyncHistoryResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncHistoryResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/alerting/policies.py b/src/cloudflare/resources/alerting/policies.py
index c3f6b52c9..650d09f18 100644
--- a/src/cloudflare/resources/alerting/policies.py
+++ b/src/cloudflare/resources/alerting/policies.py
@@ -38,7 +38,7 @@ class PoliciesResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> PoliciesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -88,9 +88,9 @@ class PoliciesResource(SyncAPIResource):
"hostname_aop_custom_certificate_expiration_type",
"http_alert_edge_error",
"http_alert_origin_error",
- "incident_alert",
"image_notification",
"image_resizing_notification",
+ "incident_alert",
"load_balancing_health_alert",
"load_balancing_pool_enablement_alert",
"logo_match_alert",
@@ -113,6 +113,7 @@ class PoliciesResource(SyncAPIResource):
"secondary_dns_warning",
"secondary_dns_zone_successfully_updated",
"secondary_dns_zone_validation_warning",
+ "security_insights_alert",
"sentinel_alert",
"stream_live_notifications",
"synthetic_test_latency_alert",
@@ -233,9 +234,9 @@ class PoliciesResource(SyncAPIResource):
"hostname_aop_custom_certificate_expiration_type",
"http_alert_edge_error",
"http_alert_origin_error",
- "incident_alert",
"image_notification",
"image_resizing_notification",
+ "incident_alert",
"load_balancing_health_alert",
"load_balancing_pool_enablement_alert",
"logo_match_alert",
@@ -258,6 +259,7 @@ class PoliciesResource(SyncAPIResource):
"secondary_dns_warning",
"secondary_dns_zone_successfully_updated",
"secondary_dns_zone_validation_warning",
+ "security_insights_alert",
"sentinel_alert",
"stream_live_notifications",
"synthetic_test_latency_alert",
@@ -471,7 +473,7 @@ class AsyncPoliciesResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncPoliciesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -521,9 +523,9 @@ class AsyncPoliciesResource(AsyncAPIResource):
"hostname_aop_custom_certificate_expiration_type",
"http_alert_edge_error",
"http_alert_origin_error",
- "incident_alert",
"image_notification",
"image_resizing_notification",
+ "incident_alert",
"load_balancing_health_alert",
"load_balancing_pool_enablement_alert",
"logo_match_alert",
@@ -546,6 +548,7 @@ class AsyncPoliciesResource(AsyncAPIResource):
"secondary_dns_warning",
"secondary_dns_zone_successfully_updated",
"secondary_dns_zone_validation_warning",
+ "security_insights_alert",
"sentinel_alert",
"stream_live_notifications",
"synthetic_test_latency_alert",
@@ -666,9 +669,9 @@ class AsyncPoliciesResource(AsyncAPIResource):
"hostname_aop_custom_certificate_expiration_type",
"http_alert_edge_error",
"http_alert_origin_error",
- "incident_alert",
"image_notification",
"image_resizing_notification",
+ "incident_alert",
"load_balancing_health_alert",
"load_balancing_pool_enablement_alert",
"logo_match_alert",
@@ -691,6 +694,7 @@ class AsyncPoliciesResource(AsyncAPIResource):
"secondary_dns_warning",
"secondary_dns_zone_successfully_updated",
"secondary_dns_zone_validation_warning",
+ "security_insights_alert",
"sentinel_alert",
"stream_live_notifications",
"synthetic_test_latency_alert",
diff --git a/src/cloudflare/resources/api_gateway/api_gateway.py b/src/cloudflare/resources/api_gateway/api_gateway.py
index 780055b02..70917610f 100644
--- a/src/cloudflare/resources/api_gateway/api_gateway.py
+++ b/src/cloudflare/resources/api_gateway/api_gateway.py
@@ -96,7 +96,7 @@ class APIGatewayResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> APIGatewayResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -145,7 +145,7 @@ class AsyncAPIGatewayResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAPIGatewayResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/configurations.py b/src/cloudflare/resources/api_gateway/configurations.py
index dafedfedd..450f5205f 100644
--- a/src/cloudflare/resources/api_gateway/configurations.py
+++ b/src/cloudflare/resources/api_gateway/configurations.py
@@ -33,7 +33,7 @@ class ConfigurationsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ConfigurationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -137,7 +137,7 @@ class AsyncConfigurationsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncConfigurationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/discovery/discovery.py b/src/cloudflare/resources/api_gateway/discovery/discovery.py
index 340447b9e..9c3152dd4 100644
--- a/src/cloudflare/resources/api_gateway/discovery/discovery.py
+++ b/src/cloudflare/resources/api_gateway/discovery/discovery.py
@@ -38,7 +38,7 @@ class DiscoveryResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> DiscoveryResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -103,7 +103,7 @@ class AsyncDiscoveryResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncDiscoveryResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/discovery/operations.py b/src/cloudflare/resources/api_gateway/discovery/operations.py
index 1994f365d..f7a855647 100644
--- a/src/cloudflare/resources/api_gateway/discovery/operations.py
+++ b/src/cloudflare/resources/api_gateway/discovery/operations.py
@@ -35,7 +35,7 @@ class OperationsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> OperationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -246,7 +246,7 @@ class AsyncOperationsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncOperationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/expression_template/expression_template.py b/src/cloudflare/resources/api_gateway/expression_template/expression_template.py
index 870b06fcc..e5173f785 100644
--- a/src/cloudflare/resources/api_gateway/expression_template/expression_template.py
+++ b/src/cloudflare/resources/api_gateway/expression_template/expression_template.py
@@ -24,7 +24,7 @@ class ExpressionTemplateResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ExpressionTemplateResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -49,7 +49,7 @@ class AsyncExpressionTemplateResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncExpressionTemplateResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/expression_template/fallthrough.py b/src/cloudflare/resources/api_gateway/expression_template/fallthrough.py
index e518de7be..1cb60fb64 100644
--- a/src/cloudflare/resources/api_gateway/expression_template/fallthrough.py
+++ b/src/cloudflare/resources/api_gateway/expression_template/fallthrough.py
@@ -31,7 +31,7 @@ class FallthroughResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> FallthroughResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -95,7 +95,7 @@ class AsyncFallthroughResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncFallthroughResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/operations/operations.py b/src/cloudflare/resources/api_gateway/operations/operations.py
index 2681b95f9..eae381497 100644
--- a/src/cloudflare/resources/api_gateway/operations/operations.py
+++ b/src/cloudflare/resources/api_gateway/operations/operations.py
@@ -21,7 +21,7 @@ from ...._response import (
async_to_streamed_response_wrapper,
)
from ...._wrappers import ResultWrapper
-from ....pagination import SyncV4PagePaginationArray, AsyncV4PagePaginationArray
+from ....pagination import SyncSinglePage, AsyncSinglePage, SyncV4PagePaginationArray, AsyncV4PagePaginationArray
from ...._base_client import AsyncPaginator, make_request_options
from .schema_validation import (
SchemaValidationResource,
@@ -55,7 +55,7 @@ class OperationsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> OperationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -265,7 +265,7 @@ class OperationsResource(SyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> OperationBulkCreateResponse:
+ ) -> SyncSinglePage[OperationBulkCreateResponse]:
"""Add one or more operations to a zone.
Endpoints can contain path variables.
@@ -287,17 +287,15 @@ class OperationsResource(SyncAPIResource):
"""
if not zone_id:
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
- return self._post(
+ return self._get_api_list(
f"/zones/{zone_id}/api_gateway/operations",
+ page=SyncSinglePage[OperationBulkCreateResponse],
body=maybe_transform(body, Iterable[operation_bulk_create_params.Body]),
options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- post_parser=ResultWrapper[OperationBulkCreateResponse]._unwrapper,
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=cast(Type[OperationBulkCreateResponse], ResultWrapper[OperationBulkCreateResponse]),
+ model=OperationBulkCreateResponse,
+ method="post",
)
def bulk_delete(
@@ -394,7 +392,7 @@ class AsyncOperationsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncOperationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -593,7 +591,7 @@ class AsyncOperationsResource(AsyncAPIResource):
cast_to=OperationDeleteResponse,
)
- async def bulk_create(
+ def bulk_create(
self,
*,
zone_id: str,
@@ -604,7 +602,7 @@ class AsyncOperationsResource(AsyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> OperationBulkCreateResponse:
+ ) -> AsyncPaginator[OperationBulkCreateResponse, AsyncSinglePage[OperationBulkCreateResponse]]:
"""Add one or more operations to a zone.
Endpoints can contain path variables.
@@ -626,17 +624,15 @@ class AsyncOperationsResource(AsyncAPIResource):
"""
if not zone_id:
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
- return await self._post(
+ return self._get_api_list(
f"/zones/{zone_id}/api_gateway/operations",
- body=await async_maybe_transform(body, Iterable[operation_bulk_create_params.Body]),
+ page=AsyncSinglePage[OperationBulkCreateResponse],
+ body=maybe_transform(body, Iterable[operation_bulk_create_params.Body]),
options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- post_parser=ResultWrapper[OperationBulkCreateResponse]._unwrapper,
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=cast(Type[OperationBulkCreateResponse], ResultWrapper[OperationBulkCreateResponse]),
+ model=OperationBulkCreateResponse,
+ method="post",
)
async def bulk_delete(
diff --git a/src/cloudflare/resources/api_gateway/operations/schema_validation.py b/src/cloudflare/resources/api_gateway/operations/schema_validation.py
index 1aec1379e..d08ebba41 100644
--- a/src/cloudflare/resources/api_gateway/operations/schema_validation.py
+++ b/src/cloudflare/resources/api_gateway/operations/schema_validation.py
@@ -39,7 +39,7 @@ class SchemaValidationResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> SchemaValidationResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -194,7 +194,7 @@ class AsyncSchemaValidationResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncSchemaValidationResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/schemas.py b/src/cloudflare/resources/api_gateway/schemas.py
index 7b7eb1ef1..79611e37e 100644
--- a/src/cloudflare/resources/api_gateway/schemas.py
+++ b/src/cloudflare/resources/api_gateway/schemas.py
@@ -32,7 +32,7 @@ class SchemasResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> SchemasResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -107,7 +107,7 @@ class AsyncSchemasResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncSchemasResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/settings/schema_validation.py b/src/cloudflare/resources/api_gateway/settings/schema_validation.py
index 6a984a335..ccb54128e 100644
--- a/src/cloudflare/resources/api_gateway/settings/schema_validation.py
+++ b/src/cloudflare/resources/api_gateway/settings/schema_validation.py
@@ -31,7 +31,7 @@ class SchemaValidationResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> SchemaValidationResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -212,7 +212,7 @@ class AsyncSchemaValidationResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncSchemaValidationResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/settings/settings.py b/src/cloudflare/resources/api_gateway/settings/settings.py
index 8a7e918de..543c2a869 100644
--- a/src/cloudflare/resources/api_gateway/settings/settings.py
+++ b/src/cloudflare/resources/api_gateway/settings/settings.py
@@ -24,7 +24,7 @@ class SettingsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> SettingsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -49,7 +49,7 @@ class AsyncSettingsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncSettingsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/user_schemas/hosts.py b/src/cloudflare/resources/api_gateway/user_schemas/hosts.py
index 1bd4a3f85..aa9fcadb5 100644
--- a/src/cloudflare/resources/api_gateway/user_schemas/hosts.py
+++ b/src/cloudflare/resources/api_gateway/user_schemas/hosts.py
@@ -26,7 +26,7 @@ class HostsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> HostsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -99,7 +99,7 @@ class AsyncHostsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncHostsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/user_schemas/operations.py b/src/cloudflare/resources/api_gateway/user_schemas/operations.py
index a2f9a67fd..5a9c28fa0 100644
--- a/src/cloudflare/resources/api_gateway/user_schemas/operations.py
+++ b/src/cloudflare/resources/api_gateway/user_schemas/operations.py
@@ -29,7 +29,7 @@ class OperationsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> OperationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -132,7 +132,7 @@ class AsyncOperationsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncOperationsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/api_gateway/user_schemas/user_schemas.py b/src/cloudflare/resources/api_gateway/user_schemas/user_schemas.py
index 983cdf401..35c37f69f 100644
--- a/src/cloudflare/resources/api_gateway/user_schemas/user_schemas.py
+++ b/src/cloudflare/resources/api_gateway/user_schemas/user_schemas.py
@@ -66,7 +66,7 @@ class UserSchemasResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> UserSchemasResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -353,7 +353,7 @@ class AsyncUserSchemasResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncUserSchemasResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/argo/argo.py b/src/cloudflare/resources/argo/argo.py
index 3aa821072..eb94300db 100644
--- a/src/cloudflare/resources/argo/argo.py
+++ b/src/cloudflare/resources/argo/argo.py
@@ -36,7 +36,7 @@ class ArgoResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ArgoResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -65,7 +65,7 @@ class AsyncArgoResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncArgoResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/argo/smart_routing.py b/src/cloudflare/resources/argo/smart_routing.py
index f45d5a4b0..66ae9a42e 100644
--- a/src/cloudflare/resources/argo/smart_routing.py
+++ b/src/cloudflare/resources/argo/smart_routing.py
@@ -33,7 +33,7 @@ class SmartRoutingResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> SmartRoutingResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -146,7 +146,7 @@ class AsyncSmartRoutingResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncSmartRoutingResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/argo/tiered_caching.py b/src/cloudflare/resources/argo/tiered_caching.py
index 066b5a75b..a598a0d4f 100644
--- a/src/cloudflare/resources/argo/tiered_caching.py
+++ b/src/cloudflare/resources/argo/tiered_caching.py
@@ -33,7 +33,7 @@ class TieredCachingResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> TieredCachingResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -156,7 +156,7 @@ class AsyncTieredCachingResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncTieredCachingResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/audit_logs.py b/src/cloudflare/resources/audit_logs.py
index 8e3020f4b..bcb31f75e 100644
--- a/src/cloudflare/resources/audit_logs.py
+++ b/src/cloudflare/resources/audit_logs.py
@@ -30,7 +30,7 @@ class AuditLogsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> AuditLogsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -137,7 +137,7 @@ class AsyncAuditLogsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncAuditLogsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/billing/billing.py b/src/cloudflare/resources/billing/billing.py
index 5146ee841..d57c01914 100644
--- a/src/cloudflare/resources/billing/billing.py
+++ b/src/cloudflare/resources/billing/billing.py
@@ -24,7 +24,7 @@ class BillingResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> BillingResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -49,7 +49,7 @@ class AsyncBillingResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncBillingResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/billing/profiles.py b/src/cloudflare/resources/billing/profiles.py
index c025bcb66..6d97c84a0 100644
--- a/src/cloudflare/resources/billing/profiles.py
+++ b/src/cloudflare/resources/billing/profiles.py
@@ -26,7 +26,7 @@ class ProfilesResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ProfilesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -86,7 +86,7 @@ class AsyncProfilesResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncProfilesResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/bot_management.py b/src/cloudflare/resources/bot_management.py
index eefa78d02..f9875019f 100644
--- a/src/cloudflare/resources/bot_management.py
+++ b/src/cloudflare/resources/bot_management.py
@@ -34,7 +34,7 @@ class BotManagementResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> BotManagementResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -578,7 +578,7 @@ class AsyncBotManagementResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncBotManagementResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/botnet_feed/asn.py b/src/cloudflare/resources/botnet_feed/asn.py
index 88932ab9b..15e06d69a 100755
--- a/src/cloudflare/resources/botnet_feed/asn.py
+++ b/src/cloudflare/resources/botnet_feed/asn.py
@@ -33,7 +33,7 @@ class ASNResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ASNResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -139,7 +139,7 @@ class AsyncASNResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncASNResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/botnet_feed/botnet_feed.py b/src/cloudflare/resources/botnet_feed/botnet_feed.py
index b61dfc867..5f71396a7 100755
--- a/src/cloudflare/resources/botnet_feed/botnet_feed.py
+++ b/src/cloudflare/resources/botnet_feed/botnet_feed.py
@@ -36,7 +36,7 @@ class BotnetFeedResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> BotnetFeedResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -65,7 +65,7 @@ class AsyncBotnetFeedResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncBotnetFeedResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/botnet_feed/configs/asn.py b/src/cloudflare/resources/botnet_feed/configs/asn.py
index 0d948a96a..e2f27d024 100755
--- a/src/cloudflare/resources/botnet_feed/configs/asn.py
+++ b/src/cloudflare/resources/botnet_feed/configs/asn.py
@@ -27,7 +27,7 @@ class ASNResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ASNResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -127,7 +127,7 @@ class AsyncASNResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncASNResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/botnet_feed/configs/configs.py b/src/cloudflare/resources/botnet_feed/configs/configs.py
index 90d326795..6fe692cec 100755
--- a/src/cloudflare/resources/botnet_feed/configs/configs.py
+++ b/src/cloudflare/resources/botnet_feed/configs/configs.py
@@ -24,7 +24,7 @@ class ConfigsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> ConfigsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -49,7 +49,7 @@ class AsyncConfigsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncConfigsResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/brand_protection.py b/src/cloudflare/resources/brand_protection.py
index 1727851d6..a23a60344 100644
--- a/src/cloudflare/resources/brand_protection.py
+++ b/src/cloudflare/resources/brand_protection.py
@@ -32,7 +32,7 @@ class BrandProtectionResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> BrandProtectionResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
@@ -148,7 +148,7 @@ class AsyncBrandProtectionResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncBrandProtectionResourceWithRawResponse:
"""
- This property can be used as a prefix for any HTTP method call to return the
+ This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
diff --git a/src/cloudflare/resources/browser_rendering/__init__.py b/src/cloudflare/resources/browser_rendering/__init__.py
new file mode 100644
index 000000000..d42a51797
--- /dev/null
+++ b/src/cloudflare/resources/browser_rendering/__init__.py
@@ -0,0 +1,89 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from .pdf import (
+ PDFResource,
+ AsyncPDFResource,
+ PDFResourceWithRawResponse,
+ AsyncPDFResourceWithRawResponse,
+ PDFResourceWithStreamingResponse,
+ AsyncPDFResourceWithStreamingResponse,
+)
+from .scrape import (
+ ScrapeResource,
+ AsyncScrapeResource,
+ ScrapeResourceWithRawResponse,
+ AsyncScrapeResourceWithRawResponse,
+ ScrapeResourceWithStreamingResponse,
+ AsyncScrapeResourceWithStreamingResponse,
+)
+from .content import (
+ ContentResource,
+ AsyncContentResource,
+ ContentResourceWithRawResponse,
+ AsyncContentResourceWithRawResponse,
+ ContentResourceWithStreamingResponse,
+ AsyncContentResourceWithStreamingResponse,
+)
+from .snapshot import (
+ SnapshotResource,
+ AsyncSnapshotResource,
+ SnapshotResourceWithRawResponse,
+ AsyncSnapshotResourceWithRawResponse,
+ SnapshotResourceWithStreamingResponse,
+ AsyncSnapshotResourceWithStreamingResponse,
+)
+from .screenshot import (
+ ScreenshotResource,
+ AsyncScreenshotResource,
+ ScreenshotResourceWithRawResponse,
+ AsyncScreenshotResourceWithRawResponse,
+ ScreenshotResourceWithStreamingResponse,
+ AsyncScreenshotResourceWithStreamingResponse,
+)
+from .browser_rendering import (
+ BrowserRenderingResource,
+ AsyncBrowserRenderingResource,
+ BrowserRenderingResourceWithRawResponse,
+ AsyncBrowserRenderingResourceWithRawResponse,
+ BrowserRenderingResourceWithStreamingResponse,
+ AsyncBrowserRenderingResourceWithStreamingResponse,
+)
+
+__all__ = [
+ "ContentResource",
+ "AsyncContentResource",
+ "ContentResourceWithRawResponse",
+ "AsyncContentResourceWithRawResponse",
+ "ContentResourceWithStreamingResponse",
+ "AsyncContentResourceWithStreamingResponse",
+ "PDFResource",
+ "AsyncPDFResource",
+ "PDFResourceWithRawResponse",
+ "AsyncPDFResourceWithRawResponse",
+ "PDFResourceWithStreamingResponse",
+ "AsyncPDFResourceWithStreamingResponse",
+ "ScrapeResource",
+ "AsyncScrapeResource",
+ "ScrapeResourceWithRawResponse",
+ "AsyncScrapeResourceWithRawResponse",
+ "ScrapeResourceWithStreamingResponse",
+ "AsyncScrapeResourceWithStreamingResponse",
+ "ScreenshotResource",
+ "AsyncScreenshotResource",
+ "ScreenshotResourceWithRawResponse",
+ "AsyncScreenshotResourceWithRawResponse",
+ "ScreenshotResourceWithStreamingResponse",
+ "AsyncScreenshotResourceWithStreamingResponse",
+ "SnapshotResource",
+ "AsyncSnapshotResource",
+ "SnapshotResourceWithRawResponse",
+ "AsyncSnapshotResourceWithRawResponse",
+ "SnapshotResourceWithStreamingResponse",
+ "AsyncSnapshotResourceWithStreamingResponse",
+ "BrowserRenderingResource",
+ "AsyncBrowserRenderingResource",
+ "BrowserRenderingResourceWithRawResponse",
+ "AsyncBrowserRenderingResourceWithRawResponse",
+ "BrowserRenderingResourceWithStreamingResponse",
+ "AsyncBrowserRenderingResourceWithStreamingResponse",
+]
diff --git a/src/cloudflare/resources/browser_rendering/browser_rendering.py b/src/cloudflare/resources/browser_rendering/browser_rendering.py
new file mode 100644
index 000000000..b597be381
--- /dev/null
+++ b/src/cloudflare/resources/browser_rendering/browser_rendering.py
@@ -0,0 +1,230 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+from .pdf import (
+ PDFResource,
+ AsyncPDFResource,
+ PDFResourceWithRawResponse,
+ AsyncPDFResourceWithRawResponse,
+ PDFResourceWithStreamingResponse,
+ AsyncPDFResourceWithStreamingResponse,
+)
+from .scrape import (
+ ScrapeResource,
+ AsyncScrapeResource,
+ ScrapeResourceWithRawResponse,
+ AsyncScrapeResourceWithRawResponse,
+ ScrapeResourceWithStreamingResponse,
+ AsyncScrapeResourceWithStreamingResponse,
+)
+from .content import (
+ ContentResource,
+ AsyncContentResource,
+ ContentResourceWithRawResponse,
+ AsyncContentResourceWithRawResponse,
+ ContentResourceWithStreamingResponse,
+ AsyncContentResourceWithStreamingResponse,
+)
+from .snapshot import (
+ SnapshotResource,
+ AsyncSnapshotResource,
+ SnapshotResourceWithRawResponse,
+ AsyncSnapshotResourceWithRawResponse,
+ SnapshotResourceWithStreamingResponse,
+ AsyncSnapshotResourceWithStreamingResponse,
+)
+from ..._compat import cached_property
+from .screenshot import (
+ ScreenshotResource,
+ AsyncScreenshotResource,
+ ScreenshotResourceWithRawResponse,
+ AsyncScreenshotResourceWithRawResponse,
+ ScreenshotResourceWithStreamingResponse,
+ AsyncScreenshotResourceWithStreamingResponse,
+)
+from ..._resource import SyncAPIResource, AsyncAPIResource
+
+__all__ = ["BrowserRenderingResource", "AsyncBrowserRenderingResource"]
+
+
+class BrowserRenderingResource(SyncAPIResource):
+ @cached_property
+ def content(self) -> ContentResource:
+ return ContentResource(self._client)
+
+ @cached_property
+ def pdf(self) -> PDFResource:
+ return PDFResource(self._client)
+
+ @cached_property
+ def scrape(self) -> ScrapeResource:
+ return ScrapeResource(self._client)
+
+ @cached_property
+ def screenshot(self) -> ScreenshotResource:
+ return ScreenshotResource(self._client)
+
+ @cached_property
+ def snapshot(self) -> SnapshotResource:
+ return SnapshotResource(self._client)
+
+ @cached_property
+ def with_raw_response(self) -> BrowserRenderingResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
+ """
+ return BrowserRenderingResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> BrowserRenderingResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response
+ """
+ return BrowserRenderingResourceWithStreamingResponse(self)
+
+
+class AsyncBrowserRenderingResource(AsyncAPIResource):
+ @cached_property
+ def content(self) -> AsyncContentResource:
+ return AsyncContentResource(self._client)
+
+ @cached_property
+ def pdf(self) -> AsyncPDFResource:
+ return AsyncPDFResource(self._client)
+
+ @cached_property
+ def scrape(self) -> AsyncScrapeResource:
+ return AsyncScrapeResource(self._client)
+
+ @cached_property
+ def screenshot(self) -> AsyncScreenshotResource:
+ return AsyncScreenshotResource(self._client)
+
+ @cached_property
+ def snapshot(self) -> AsyncSnapshotResource:
+ return AsyncSnapshotResource(self._client)
+
+ @cached_property
+ def with_raw_response(self) -> AsyncBrowserRenderingResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
+ """
+ return AsyncBrowserRenderingResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> AsyncBrowserRenderingResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response
+ """
+ return AsyncBrowserRenderingResourceWithStreamingResponse(self)
+
+
+class BrowserRenderingResourceWithRawResponse:
+ def __init__(self, browser_rendering: BrowserRenderingResource) -> None:
+ self._browser_rendering = browser_rendering
+
+ @cached_property
+ def content(self) -> ContentResourceWithRawResponse:
+ return ContentResourceWithRawResponse(self._browser_rendering.content)
+
+ @cached_property
+ def pdf(self) -> PDFResourceWithRawResponse:
+ return PDFResourceWithRawResponse(self._browser_rendering.pdf)
+
+ @cached_property
+ def scrape(self) -> ScrapeResourceWithRawResponse:
+ return ScrapeResourceWithRawResponse(self._browser_rendering.scrape)
+
+ @cached_property
+ def screenshot(self) -> ScreenshotResourceWithRawResponse:
+ return ScreenshotResourceWithRawResponse(self._browser_rendering.screenshot)
+
+ @cached_property
+ def snapshot(self) -> SnapshotResourceWithRawResponse:
+ return SnapshotResourceWithRawResponse(self._browser_rendering.snapshot)
+
+
+class AsyncBrowserRenderingResourceWithRawResponse:
+ def __init__(self, browser_rendering: AsyncBrowserRenderingResource) -> None:
+ self._browser_rendering = browser_rendering
+
+ @cached_property
+ def content(self) -> AsyncContentResourceWithRawResponse:
+ return AsyncContentResourceWithRawResponse(self._browser_rendering.content)
+
+ @cached_property
+ def pdf(self) -> AsyncPDFResourceWithRawResponse:
+ return AsyncPDFResourceWithRawResponse(self._browser_rendering.pdf)
+
+ @cached_property
+ def scrape(self) -> AsyncScrapeResourceWithRawResponse:
+ return AsyncScrapeResourceWithRawResponse(self._browser_rendering.scrape)
+
+ @cached_property
+ def screenshot(self) -> AsyncScreenshotResourceWithRawResponse:
+ return AsyncScreenshotResourceWithRawResponse(self._browser_rendering.screenshot)
+
+ @cached_property
+ def snapshot(self) -> AsyncSnapshotResourceWithRawResponse:
+ return AsyncSnapshotResourceWithRawResponse(self._browser_rendering.snapshot)
+
+
+class BrowserRenderingResourceWithStreamingResponse:
+ def __init__(self, browser_rendering: BrowserRenderingResource) -> None:
+ self._browser_rendering = browser_rendering
+
+ @cached_property
+ def content(self) -> ContentResourceWithStreamingResponse:
+ return ContentResourceWithStreamingResponse(self._browser_rendering.content)
+
+ @cached_property
+ def pdf(self) -> PDFResourceWithStreamingResponse:
+ return PDFResourceWithStreamingResponse(self._browser_rendering.pdf)
+
+ @cached_property
+ def scrape(self) -> ScrapeResourceWithStreamingResponse:
+ return ScrapeResourceWithStreamingResponse(self._browser_rendering.scrape)
+
+ @cached_property
+ def screenshot(self) -> ScreenshotResourceWithStreamingResponse:
+ return ScreenshotResourceWithStreamingResponse(self._browser_rendering.screenshot)
+
+ @cached_property
+ def snapshot(self) -> SnapshotResourceWithStreamingResponse:
+ return SnapshotResourceWithStreamingResponse(self._browser_rendering.snapshot)
+
+
+class AsyncBrowserRenderingResourceWithStreamingResponse:
+ def __init__(self, browser_rendering: AsyncBrowserRenderingResource) -> None:
+ self._browser_rendering = browser_rendering
+
+ @cached_property
+ def content(self) -> AsyncContentResourceWithStreamingResponse:
+ return AsyncContentResourceWithStreamingResponse(self._browser_rendering.content)
+
+ @cached_property
+ def pdf(self) -> AsyncPDFResourceWithStreamingResponse:
+ return AsyncPDFResourceWithStreamingResponse(self._browser_rendering.pdf)
+
+ @cached_property
+ def scrape(self) -> AsyncScrapeResourceWithStreamingResponse:
+ return AsyncScrapeResourceWithStreamingResponse(self._browser_rendering.scrape)
+
+ @cached_property
+ def screenshot(self) -> AsyncScreenshotResourceWithStreamingResponse:
+ return AsyncScreenshotResourceWithStreamingResponse(self._browser_rendering.screenshot)
+
+ @cached_property
+ def snapshot(self) -> AsyncSnapshotResourceWithStreamingResponse:
+ return AsyncSnapshotResourceWithStreamingResponse(self._browser_rendering.snapshot)
diff --git a/src/cloudflare/resources/browser_rendering/content.py b/src/cloudflare/resources/browser_rendering/content.py
new file mode 100644
index 000000000..45a438dcb
--- /dev/null
+++ b/src/cloudflare/resources/browser_rendering/content.py
@@ -0,0 +1,442 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+from typing import Dict, List, Type, Iterable, Optional, cast
+from typing_extensions import Literal
+
+import httpx
+
+from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
+from ..._utils import (
+ maybe_transform,
+ async_maybe_transform,
+)
+from ..._compat import cached_property
+from ..._resource import SyncAPIResource, AsyncAPIResource
+from ..._response import (
+ to_raw_response_wrapper,
+ to_streamed_response_wrapper,
+ async_to_raw_response_wrapper,
+ async_to_streamed_response_wrapper,
+)
+from ..._wrappers import ResultWrapper
+from ..._base_client import make_request_options
+from ...types.browser_rendering import content_create_params
+from ...types.browser_rendering.content_create_response import ContentCreateResponse
+
+__all__ = ["ContentResource", "AsyncContentResource"]
+
+
+class ContentResource(SyncAPIResource):
+ @cached_property
+ def with_raw_response(self) -> ContentResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
+ """
+ return ContentResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> ContentResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response
+ """
+ return ContentResourceWithStreamingResponse(self)
+
+ def create(
+ self,
+ *,
+ account_id: str,
+ cache_ttl: float | NotGiven = NOT_GIVEN,
+ add_script_tag: Iterable[content_create_params.AddScriptTag] | NotGiven = NOT_GIVEN,
+ add_style_tag: Iterable[content_create_params.AddStyleTag] | NotGiven = NOT_GIVEN,
+ allow_request_pattern: List[str] | NotGiven = NOT_GIVEN,
+ allow_resource_types: List[
+ Literal[
+ "document",
+ "stylesheet",
+ "image",
+ "media",
+ "font",
+ "script",
+ "texttrack",
+ "xhr",
+ "fetch",
+ "prefetch",
+ "eventsource",
+ "websocket",
+ "manifest",
+ "signedexchange",
+ "ping",
+ "cspviolationreport",
+ "preflight",
+ "other",
+ ]
+ ]
+ | NotGiven = NOT_GIVEN,
+ authenticate: content_create_params.Authenticate | NotGiven = NOT_GIVEN,
+ best_attempt: bool | NotGiven = NOT_GIVEN,
+ cookies: Iterable[content_create_params.Cookie] | NotGiven = NOT_GIVEN,
+ emulate_media_type: str | NotGiven = NOT_GIVEN,
+ goto_options: content_create_params.GotoOptions | NotGiven = NOT_GIVEN,
+ html: str | NotGiven = NOT_GIVEN,
+ reject_request_pattern: List[str] | NotGiven = NOT_GIVEN,
+ reject_resource_types: List[
+ Literal[
+ "document",
+ "stylesheet",
+ "image",
+ "media",
+ "font",
+ "script",
+ "texttrack",
+ "xhr",
+ "fetch",
+ "prefetch",
+ "eventsource",
+ "websocket",
+ "manifest",
+ "signedexchange",
+ "ping",
+ "cspviolationreport",
+ "preflight",
+ "other",
+ ]
+ ]
+ | NotGiven = NOT_GIVEN,
+ set_extra_http_headers: Dict[str, str] | NotGiven = NOT_GIVEN,
+ set_java_script_enabled: bool | NotGiven = NOT_GIVEN,
+ url: str | NotGiven = NOT_GIVEN,
+ user_agent: str | NotGiven = NOT_GIVEN,
+ viewport: content_create_params.Viewport | NotGiven = NOT_GIVEN,
+ wait_for_selector: content_create_params.WaitForSelector | NotGiven = NOT_GIVEN,
+ wait_for_timeout: float | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> str:
+ """Fetches rendered HTML content from provided URL or HTML.
+
+ Check available options
+ like `gotoOptions` and `waitFor*` to control page load behaviour.
+
+ Args:
+ account_id: Account ID.
+
+ cache_ttl: Cache TTL default is 5s. Set to 0 to disable.
+
+ add_script_tag: Adds a `