Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore: sync repo
  • Loading branch information
stainless-app[bot] committed Jul 10, 2026
commit 7e4ea009e21a537618819ed79187fa693935eb24
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "5.4.0"
".": "5.3.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 2404
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare/cloudflare-874436f83bd9c383144c69da47c4b767bb9c6f4f2bb4945af58cf3b6015f0f62.yml
openapi_spec_hash: beaf9a654991bf65d642e05c03460e4c
config_hash: 2f529580a17438fc62cd0b47db41b6f1
configured_endpoints: 2423
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare/cloudflare-f0d02c72311fc8f42c105f9863992a11421a5acdc701e6bb669af613f3b77d5d.yml
openapi_spec_hash: 85df1a77de03e8d8f5655c0ca4c8e12d
config_hash: 1f57db47c206f28a2925ad48223f2151
27 changes: 0 additions & 27 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,5 @@
# Changelog

## 5.4.0 (2026-06-16)

Full Changelog: [v5.3.0...v5.4.0](https://github.com/cloudflare/cloudflare-python/compare/v5.3.0...v5.4.0)

### Features

* feat(ai_gateway): add custom_providers resource ([b982ff3](https://github.com/cloudflare/cloudflare-python/commit/b982ff391eab267ef16c719d0fc798d970292ed2))
* feat(api): map ipsec_tunnels/psk, sites/app_policies and cf1_sites for magic-on-ramps ([5d8e422](https://github.com/cloudflare/cloudflare-python/commit/5d8e422736d8e044d2c73065cbb8595573b2656d))
* feat(ct_alerter): add CT alerting subscription endpoint mappings ([5bb529c](https://github.com/cloudflare/cloudflare-python/commit/5bb529c2eabe4ce0c23cddbf8073c6a025dc3024))
* feat(tenants): add tenants resource SDK mapping [PT-2567] ([7677b4c](https://github.com/cloudflare/cloudflare-python/commit/7677b4c9566495b627b2cd90c9220268f9c6c46d))


### Chores

* **api:** update composite API spec ([2b0e738](https://github.com/cloudflare/cloudflare-python/commit/2b0e7388107c4110489484c2b38d4d9295b15af2))
* **api:** update composite API spec ([c7202c9](https://github.com/cloudflare/cloudflare-python/commit/c7202c9f9215a179b17362439c59b2e99566ab40))
* **api:** update composite API spec ([f94e4de](https://github.com/cloudflare/cloudflare-python/commit/f94e4de91421e736243f75eee987c888f06d8f0b))
* **api:** update composite API spec ([656f973](https://github.com/cloudflare/cloudflare-python/commit/656f97390d51da3e224e67f2305d6d46f7ae239a))
* **api:** update composite API spec ([05e802d](https://github.com/cloudflare/cloudflare-python/commit/05e802d1940e1b0bfe59a25c388b83f53edd238e))
* **api:** update composite API spec ([3817b57](https://github.com/cloudflare/cloudflare-python/commit/3817b571d02b2d23f087bbdb574853632d0bc1db))
* **api:** update composite API spec ([3e26c73](https://github.com/cloudflare/cloudflare-python/commit/3e26c739c29586ab33e05bb4dc6673d06748d013))
* **api:** update composite API spec ([0ff89f9](https://github.com/cloudflare/cloudflare-python/commit/0ff89f99ddfbaf078d3b20eada5fd2bc4139fc65))
* **api:** update composite API spec ([eeec39a](https://github.com/cloudflare/cloudflare-python/commit/eeec39a7ab478625ead7a1e6276c1c258ff574fd))
* **api:** update composite API spec ([45260b9](https://github.com/cloudflare/cloudflare-python/commit/45260b91f48ed30eb69f1ecd184f245b03a59146))
* **api:** update composite API spec ([72eb205](https://github.com/cloudflare/cloudflare-python/commit/72eb20551c18d2cae3dfbef960a12ff22b4a7de7))
* **internal:** codegen related update ([86bdf98](https://github.com/cloudflare/cloudflare-python/commit/86bdf981e37d4b028f4e555d7e0b1e76324f23b3))

## 5.3.0 (2026-06-11)

Full Changelog: [v5.2.0...v5.3.0](https://github.com/cloudflare/cloudflare-python/compare/v5.2.0...v5.3.0)
Expand Down
4 changes: 4 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ from cloudflare.types import (

# [EmailSecurity](src/cloudflare/resources/email_security/api.md)

# [EmailAuth](src/cloudflare/resources/email_auth/api.md)

# [EmailRouting](src/cloudflare/resources/email_routing/api.md)

# [EmailSending](src/cloudflare/resources/email_sending/api.md)
Expand Down Expand Up @@ -211,6 +213,8 @@ from cloudflare.types import (

# [Calls](src/cloudflare/resources/calls/api.md)

# [MoQ](src/cloudflare/resources/moq/api.md)

# [CloudforceOne](src/cloudflare/resources/cloudforce_one/api.md)

# [AIGateway](src/cloudflare/resources/ai_gateway/api.md)
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "cloudflare"
version = "5.4.0"
version = "5.3.0"
description = "The official Python library for the cloudflare API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
76 changes: 76 additions & 0 deletions src/cloudflare/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
dns,
iam,
ips,
moq,
rum,
ssl,
argo,
Expand Down Expand Up @@ -88,6 +89,7 @@
addressing,
ai_gateway,
audit_logs,
email_auth,
hyperdrive,
page_rules,
zero_trust,
Expand Down Expand Up @@ -163,6 +165,7 @@
from .resources.dns.dns import DNSResource, AsyncDNSResource
from .resources.iam.iam import IAMResource, AsyncIAMResource
from .resources.ips.ips import IPsResource, AsyncIPsResource
from .resources.moq.moq import MoQResource, AsyncMoQResource
from .resources.rum.rum import RUMResource, AsyncRUMResource
from .resources.ssl.ssl import SSLResource, AsyncSSLResource
from .resources.argo.argo import ArgoResource, AsyncArgoResource
Expand Down Expand Up @@ -204,6 +207,7 @@
from .resources.addressing.addressing import AddressingResource, AsyncAddressingResource
from .resources.ai_gateway.ai_gateway import AIGatewayResource, AsyncAIGatewayResource
from .resources.audit_logs.audit_logs import AuditLogsResource, AsyncAuditLogsResource
from .resources.email_auth.email_auth import EmailAuthResource, AsyncEmailAuthResource
from .resources.hyperdrive.hyperdrive import HyperdriveResource, AsyncHyperdriveResource
from .resources.page_rules.page_rules import PageRulesResource, AsyncPageRulesResource
from .resources.zero_trust.zero_trust import ZeroTrustResource, AsyncZeroTrustResource
Expand Down Expand Up @@ -557,6 +561,12 @@ def email_security(self) -> EmailSecurityResource:

return EmailSecurityResource(self)

@cached_property
def email_auth(self) -> EmailAuthResource:
from .resources.email_auth import EmailAuthResource

return EmailAuthResource(self)

@cached_property
def email_routing(self) -> EmailRoutingResource:
from .resources.email_routing import EmailRoutingResource
Expand Down Expand Up @@ -965,6 +975,12 @@ def calls(self) -> CallsResource:

return CallsResource(self)

@cached_property
def moq(self) -> MoQResource:
from .resources.moq import MoQResource

return MoQResource(self)

@cached_property
def cloudforce_one(self) -> CloudforceOneResource:
from .resources.cloudforce_one import CloudforceOneResource
Expand Down Expand Up @@ -1509,6 +1525,12 @@ def email_security(self) -> AsyncEmailSecurityResource:

return AsyncEmailSecurityResource(self)

@cached_property
def email_auth(self) -> AsyncEmailAuthResource:
from .resources.email_auth import AsyncEmailAuthResource

return AsyncEmailAuthResource(self)

@cached_property
def email_routing(self) -> AsyncEmailRoutingResource:
from .resources.email_routing import AsyncEmailRoutingResource
Expand Down Expand Up @@ -1917,6 +1939,12 @@ def calls(self) -> AsyncCallsResource:

return AsyncCallsResource(self)

@cached_property
def moq(self) -> AsyncMoQResource:
from .resources.moq import AsyncMoQResource

return AsyncMoQResource(self)

@cached_property
def cloudforce_one(self) -> AsyncCloudforceOneResource:
from .resources.cloudforce_one import AsyncCloudforceOneResource
Expand Down Expand Up @@ -2381,6 +2409,12 @@ def email_security(self) -> email_security.EmailSecurityResourceWithRawResponse:

return EmailSecurityResourceWithRawResponse(self._client.email_security)

@cached_property
def email_auth(self) -> email_auth.EmailAuthResourceWithRawResponse:
from .resources.email_auth import EmailAuthResourceWithRawResponse

return EmailAuthResourceWithRawResponse(self._client.email_auth)

@cached_property
def email_routing(self) -> email_routing.EmailRoutingResourceWithRawResponse:
from .resources.email_routing import EmailRoutingResourceWithRawResponse
Expand Down Expand Up @@ -2793,6 +2827,12 @@ def calls(self) -> calls.CallsResourceWithRawResponse:

return CallsResourceWithRawResponse(self._client.calls)

@cached_property
def moq(self) -> moq.MoQResourceWithRawResponse:
from .resources.moq import MoQResourceWithRawResponse

return MoQResourceWithRawResponse(self._client.moq)

@cached_property
def cloudforce_one(self) -> cloudforce_one.CloudforceOneResourceWithRawResponse:
from .resources.cloudforce_one import CloudforceOneResourceWithRawResponse
Expand Down Expand Up @@ -3084,6 +3124,12 @@ def email_security(self) -> email_security.AsyncEmailSecurityResourceWithRawResp

return AsyncEmailSecurityResourceWithRawResponse(self._client.email_security)

@cached_property
def email_auth(self) -> email_auth.AsyncEmailAuthResourceWithRawResponse:
from .resources.email_auth import AsyncEmailAuthResourceWithRawResponse

return AsyncEmailAuthResourceWithRawResponse(self._client.email_auth)

@cached_property
def email_routing(self) -> email_routing.AsyncEmailRoutingResourceWithRawResponse:
from .resources.email_routing import AsyncEmailRoutingResourceWithRawResponse
Expand Down Expand Up @@ -3496,6 +3542,12 @@ def calls(self) -> calls.AsyncCallsResourceWithRawResponse:

return AsyncCallsResourceWithRawResponse(self._client.calls)

@cached_property
def moq(self) -> moq.AsyncMoQResourceWithRawResponse:
from .resources.moq import AsyncMoQResourceWithRawResponse

return AsyncMoQResourceWithRawResponse(self._client.moq)

@cached_property
def cloudforce_one(self) -> cloudforce_one.AsyncCloudforceOneResourceWithRawResponse:
from .resources.cloudforce_one import AsyncCloudforceOneResourceWithRawResponse
Expand Down Expand Up @@ -3787,6 +3839,12 @@ def email_security(self) -> email_security.EmailSecurityResourceWithStreamingRes

return EmailSecurityResourceWithStreamingResponse(self._client.email_security)

@cached_property
def email_auth(self) -> email_auth.EmailAuthResourceWithStreamingResponse:
from .resources.email_auth import EmailAuthResourceWithStreamingResponse

return EmailAuthResourceWithStreamingResponse(self._client.email_auth)

@cached_property
def email_routing(self) -> email_routing.EmailRoutingResourceWithStreamingResponse:
from .resources.email_routing import EmailRoutingResourceWithStreamingResponse
Expand Down Expand Up @@ -4199,6 +4257,12 @@ def calls(self) -> calls.CallsResourceWithStreamingResponse:

return CallsResourceWithStreamingResponse(self._client.calls)

@cached_property
def moq(self) -> moq.MoQResourceWithStreamingResponse:
from .resources.moq import MoQResourceWithStreamingResponse

return MoQResourceWithStreamingResponse(self._client.moq)

@cached_property
def cloudforce_one(self) -> cloudforce_one.CloudforceOneResourceWithStreamingResponse:
from .resources.cloudforce_one import CloudforceOneResourceWithStreamingResponse
Expand Down Expand Up @@ -4492,6 +4556,12 @@ def email_security(self) -> email_security.AsyncEmailSecurityResourceWithStreami

return AsyncEmailSecurityResourceWithStreamingResponse(self._client.email_security)

@cached_property
def email_auth(self) -> email_auth.AsyncEmailAuthResourceWithStreamingResponse:
from .resources.email_auth import AsyncEmailAuthResourceWithStreamingResponse

return AsyncEmailAuthResourceWithStreamingResponse(self._client.email_auth)

@cached_property
def email_routing(self) -> email_routing.AsyncEmailRoutingResourceWithStreamingResponse:
from .resources.email_routing import AsyncEmailRoutingResourceWithStreamingResponse
Expand Down Expand Up @@ -4910,6 +4980,12 @@ def calls(self) -> calls.AsyncCallsResourceWithStreamingResponse:

return AsyncCallsResourceWithStreamingResponse(self._client.calls)

@cached_property
def moq(self) -> moq.AsyncMoQResourceWithStreamingResponse:
from .resources.moq import AsyncMoQResourceWithStreamingResponse

return AsyncMoQResourceWithStreamingResponse(self._client.moq)

@cached_property
def cloudforce_one(self) -> cloudforce_one.AsyncCloudforceOneResourceWithStreamingResponse:
from .resources.cloudforce_one import AsyncCloudforceOneResourceWithStreamingResponse
Expand Down
2 changes: 1 addition & 1 deletion src/cloudflare/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "cloudflare"
__version__ = "5.4.0" # x-release-please-version
__version__ = "5.3.0" # x-release-please-version
37 changes: 27 additions & 10 deletions src/cloudflare/resources/ai_gateway/billing/spending_limit.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from __future__ import annotations

import typing_extensions
from typing import Type, cast
from typing_extensions import Literal

Expand Down Expand Up @@ -45,6 +46,7 @@ def with_streaming_response(self) -> SpendingLimitResourceWithStreamingResponse:
"""
return SpendingLimitResourceWithStreamingResponse(self)

@typing_extensions.deprecated("deprecated")
def create(
self,
*,
Expand All @@ -60,7 +62,10 @@ def create(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> object:
"""
Configure a spending limit with amount, strategy, and duration.
Deprecated: spending limits can no longer be created, enabled, or modified and
this endpoint always responds 403. Use the new AI Gateway spend limits instead:
https://developers.cloudflare.com/ai-gateway/features/spend-limits/. Existing
limits can be removed via DELETE /spending-limit.

Args:
amount: Spending limit amount in cents (min 100).
Expand Down Expand Up @@ -194,6 +199,7 @@ def with_streaming_response(self) -> AsyncSpendingLimitResourceWithStreamingResp
"""
return AsyncSpendingLimitResourceWithStreamingResponse(self)

@typing_extensions.deprecated("deprecated")
async def create(
self,
*,
Expand All @@ -209,7 +215,10 @@ async def create(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> object:
"""
Configure a spending limit with amount, strategy, and duration.
Deprecated: spending limits can no longer be created, enabled, or modified and
this endpoint always responds 403. Use the new AI Gateway spend limits instead:
https://developers.cloudflare.com/ai-gateway/features/spend-limits/. Existing
limits can be removed via DELETE /spending-limit.

Args:
amount: Spending limit amount in cents (min 100).
Expand Down Expand Up @@ -327,8 +336,10 @@ class SpendingLimitResourceWithRawResponse:
def __init__(self, spending_limit: SpendingLimitResource) -> None:
self._spending_limit = spending_limit

self.create = to_raw_response_wrapper(
spending_limit.create,
self.create = ( # pyright: ignore[reportDeprecated]
to_raw_response_wrapper(
spending_limit.create, # pyright: ignore[reportDeprecated],
)
)
self.delete = to_raw_response_wrapper(
spending_limit.delete,
Expand All @@ -342,8 +353,10 @@ class AsyncSpendingLimitResourceWithRawResponse:
def __init__(self, spending_limit: AsyncSpendingLimitResource) -> None:
self._spending_limit = spending_limit

self.create = async_to_raw_response_wrapper(
spending_limit.create,
self.create = ( # pyright: ignore[reportDeprecated]
async_to_raw_response_wrapper(
spending_limit.create, # pyright: ignore[reportDeprecated],
)
)
self.delete = async_to_raw_response_wrapper(
spending_limit.delete,
Expand All @@ -357,8 +370,10 @@ class SpendingLimitResourceWithStreamingResponse:
def __init__(self, spending_limit: SpendingLimitResource) -> None:
self._spending_limit = spending_limit

self.create = to_streamed_response_wrapper(
spending_limit.create,
self.create = ( # pyright: ignore[reportDeprecated]
to_streamed_response_wrapper(
spending_limit.create, # pyright: ignore[reportDeprecated],
)
)
self.delete = to_streamed_response_wrapper(
spending_limit.delete,
Expand All @@ -372,8 +387,10 @@ class AsyncSpendingLimitResourceWithStreamingResponse:
def __init__(self, spending_limit: AsyncSpendingLimitResource) -> None:
self._spending_limit = spending_limit

self.create = async_to_streamed_response_wrapper(
spending_limit.create,
self.create = ( # pyright: ignore[reportDeprecated]
async_to_streamed_response_wrapper(
spending_limit.create, # pyright: ignore[reportDeprecated],
)
)
self.delete = async_to_streamed_response_wrapper(
spending_limit.delete,
Expand Down
Loading
Loading