Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
35e4152
codegen metadata
stainless-app[bot] Jun 16, 2026
7255f4b
chore(api): update composite API spec
stainless-app[bot] Jun 17, 2026
171964c
chore(api): update composite API spec
stainless-app[bot] Jun 17, 2026
6fac09c
chore(api): update composite API spec
stainless-app[bot] Jun 17, 2026
66c8009
codegen metadata
stainless-app[bot] Jun 17, 2026
c409a18
feat: feat: add MoQ relays to prod (RT-603)
stainless-app[bot] Jun 17, 2026
72346d3
codegen metadata
stainless-app[bot] Jun 17, 2026
99d3b37
codegen metadata
stainless-app[bot] Jun 17, 2026
613f3c0
codegen metadata
stainless-app[bot] Jun 17, 2026
168da5a
codegen metadata
stainless-app[bot] Jun 17, 2026
ec9a675
codegen metadata
stainless-app[bot] Jun 17, 2026
11ac697
feat: fix(moq): render MoQ via explicit custom casing (RT-603)
stainless-app[bot] Jun 17, 2026
9aec347
chore(api): update composite API spec
stainless-app[bot] Jun 17, 2026
13b7798
codegen metadata
stainless-app[bot] Jun 17, 2026
7606580
chore(api): update composite API spec
stainless-app[bot] Jun 17, 2026
e3c84dd
codegen metadata
stainless-app[bot] Jun 18, 2026
c85c761
codegen metadata
stainless-app[bot] Jun 18, 2026
65f2fbc
chore(api): update composite API spec
stainless-app[bot] Jun 18, 2026
43fb66a
feat: feat: ES-13122 Add email-auth API endpoints
stainless-app[bot] Jun 18, 2026
0337708
codegen metadata
stainless-app[bot] Jun 18, 2026
f70dfa8
chore(api): update composite API spec
stainless-app[bot] Jun 18, 2026
ce30887
chore(api): update composite API spec
stainless-app[bot] Jun 19, 2026
335fe0f
codegen metadata
stainless-app[bot] Jun 19, 2026
583042b
codegen metadata
stainless-app[bot] Jun 19, 2026
e96350d
feat: feat(email_security): Add API to do bulk message movements and …
stainless-app[bot] Jun 19, 2026
05c5ac3
chore(api): update composite API spec
stainless-app[bot] Jun 19, 2026
409955f
codegen metadata
stainless-app[bot] Jun 19, 2026
56b8ae2
chore(api): update composite API spec
stainless-app[bot] Jun 19, 2026
7888a65
chore(api): update composite API spec
stainless-app[bot] Jun 19, 2026
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
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: 2417
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare/cloudflare-08f6951dff1022387f05582fe54cd8eff8e606ad0809b0e3efb5874ebb11cf01.yml
openapi_spec_hash: 6b8ffc5d6d40adc6dc83fbb44811ef18
config_hash: cd80863b2a094f3805409e4a5676b0b8
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
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
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
4 changes: 4 additions & 0 deletions src/cloudflare/resources/aisearch/instances/instances.py
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,7 @@ def update(
| Omit = omit,
rewrite_query: bool | Omit = omit,
score_threshold: float | Omit = omit,
source: Optional[str] | Omit = omit,
source_params: Optional[instance_update_params.SourceParams] | Omit = omit,
summarization: bool | Omit = omit,
summarization_model: Optional[
Expand Down Expand Up @@ -481,6 +482,7 @@ def update(
"rewrite_model": rewrite_model,
"rewrite_query": rewrite_query,
"score_threshold": score_threshold,
"source": source,
"source_params": source_params,
"summarization": summarization,
"summarization_model": summarization_model,
Expand Down Expand Up @@ -1165,6 +1167,7 @@ async def update(
| Omit = omit,
rewrite_query: bool | Omit = omit,
score_threshold: float | Omit = omit,
source: Optional[str] | Omit = omit,
source_params: Optional[instance_update_params.SourceParams] | Omit = omit,
summarization: bool | Omit = omit,
summarization_model: Optional[
Expand Down Expand Up @@ -1268,6 +1271,7 @@ async def update(
"rewrite_model": rewrite_model,
"rewrite_query": rewrite_query,
"score_threshold": score_threshold,
"source": source,
"source_params": source_params,
"summarization": summarization,
"summarization_model": summarization_model,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,7 @@ def update(
| Omit = omit,
rewrite_query: bool | Omit = omit,
score_threshold: float | Omit = omit,
source: Optional[str] | Omit = omit,
source_params: Optional[instance_update_params.SourceParams] | Omit = omit,
summarization: bool | Omit = omit,
summarization_model: Optional[
Expand Down Expand Up @@ -506,6 +507,7 @@ def update(
"rewrite_model": rewrite_model,
"rewrite_query": rewrite_query,
"score_threshold": score_threshold,
"source": source,
"source_params": source_params,
"summarization": summarization,
"summarization_model": summarization_model,
Expand Down Expand Up @@ -1243,6 +1245,7 @@ async def update(
| Omit = omit,
rewrite_query: bool | Omit = omit,
score_threshold: float | Omit = omit,
source: Optional[str] | Omit = omit,
source_params: Optional[instance_update_params.SourceParams] | Omit = omit,
summarization: bool | Omit = omit,
summarization_model: Optional[
Expand Down Expand Up @@ -1353,6 +1356,7 @@ async def update(
"rewrite_model": rewrite_model,
"rewrite_query": rewrite_query,
"score_threshold": score_threshold,
"source": source,
"source_params": source_params,
"summarization": summarization,
"summarization_model": summarization_model,
Expand Down
2 changes: 1 addition & 1 deletion src/cloudflare/resources/cloudforce_one/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ from cloudflare.types.cloudforce_one.threat_events import (
Methods:

- <code title="post /accounts/{account_id}/cloudforce-one/events/dataset/create">client.cloudforce_one.threat_events.datasets.<a href="./src/cloudflare/resources/cloudforce_one/threat_events/datasets.py">create</a>(\*, account_id, \*\*<a href="src/cloudflare/types/cloudforce_one/threat_events/dataset_create_params.py">params</a>) -> <a href="./src/cloudflare/types/cloudforce_one/threat_events/dataset_create_response.py">DatasetCreateResponse</a></code>
- <code title="get /accounts/{account_id}/cloudforce-one/events/dataset">client.cloudforce_one.threat_events.datasets.<a href="./src/cloudflare/resources/cloudforce_one/threat_events/datasets.py">list</a>(\*, account_id) -> <a href="./src/cloudflare/types/cloudforce_one/threat_events/dataset_list_response.py">DatasetListResponse</a></code>
- <code title="get /accounts/{account_id}/cloudforce-one/events/dataset">client.cloudforce_one.threat_events.datasets.<a href="./src/cloudflare/resources/cloudforce_one/threat_events/datasets.py">list</a>(\*, account_id, \*\*<a href="src/cloudflare/types/cloudforce_one/threat_events/dataset_list_params.py">params</a>) -> <a href="./src/cloudflare/types/cloudforce_one/threat_events/dataset_list_response.py">DatasetListResponse</a></code>
- <code title="patch /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}">client.cloudforce_one.threat_events.datasets.<a href="./src/cloudflare/resources/cloudforce_one/threat_events/datasets.py">edit</a>(dataset_id, \*, account_id, \*\*<a href="src/cloudflare/types/cloudforce_one/threat_events/dataset_edit_params.py">params</a>) -> <a href="./src/cloudflare/types/cloudforce_one/threat_events/dataset_edit_response.py">DatasetEditResponse</a></code>
- <code title="get /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}">client.cloudforce_one.threat_events.datasets.<a href="./src/cloudflare/resources/cloudforce_one/threat_events/datasets.py">get</a>(dataset_id, \*, account_id) -> <a href="./src/cloudflare/types/cloudforce_one/threat_events/dataset_get_response.py">DatasetGetResponse</a></code>
- <code title="get /accounts/{account_id}/cloudforce-one/events/raw/{dataset_id}/{event_id}">client.cloudforce_one.threat_events.datasets.<a href="./src/cloudflare/resources/cloudforce_one/threat_events/datasets.py">raw</a>(event_id, \*, account_id, dataset_id) -> <a href="./src/cloudflare/types/cloudforce_one/threat_events/dataset_raw_response.py">DatasetRawResponse</a></code>
Expand Down
Loading
Loading