Skip to content

release: 4.4.0 #2664

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 751 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
751 commits
Select commit Hold shift + click to select a range
7a3233f
codegen metadata
stainless-app[bot] Jul 29, 2025
5cf8e6c
codegen metadata
stainless-app[bot] Jul 29, 2025
909b415
codegen metadata
stainless-app[bot] Jul 29, 2025
8434154
codegen metadata
stainless-app[bot] Jul 29, 2025
676953a
codegen metadata
stainless-app[bot] Jul 29, 2025
ef4b433
codegen metadata
stainless-app[bot] Jul 29, 2025
2d3e22b
codegen metadata
stainless-app[bot] Jul 29, 2025
3a781a0
codegen metadata
stainless-app[bot] Jul 29, 2025
e568d41
codegen metadata
stainless-app[bot] Jul 29, 2025
ebcf6a2
codegen metadata
stainless-app[bot] Jul 29, 2025
4372d91
codegen metadata
stainless-app[bot] Jul 29, 2025
40b1e48
codegen metadata
stainless-app[bot] Jul 29, 2025
be94ae0
chore(api): upload OpenAPI schema from api-schemas
stainless-app[bot] Jul 30, 2025
2bfa20a
feat(client): support file upload requests
stainless-app[bot] Jul 30, 2025
9cce5ac
chore(api): update composite API spec
stainless-app[bot] Jul 30, 2025
053f18f
feat(api): api update
stainless-app[bot] Jul 30, 2025
e0e13d1
feat(api): api update
stainless-app[bot] Jul 30, 2025
0ea1719
feat(api): api update
stainless-app[bot] Jul 31, 2025
b0defd7
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Jul 31, 2025
f47f76b
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Jul 31, 2025
0d5adaa
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Jul 31, 2025
f548ad4
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Jul 31, 2025
d903656
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Jul 31, 2025
4456fdb
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Jul 31, 2025
8b866ab
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Jul 31, 2025
5d2c28c
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Jul 31, 2025
2496ef6
codegen metadata
stainless-app[bot] Jul 31, 2025
daa7fe0
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Jul 31, 2025
82af7fa
codegen metadata
stainless-app[bot] Jul 31, 2025
7d95ee9
codegen metadata
stainless-app[bot] Aug 1, 2025
1a01a4c
feat(api): api update
stainless-app[bot] Aug 1, 2025
54f39a7
codegen metadata
stainless-app[bot] Aug 1, 2025
4f45fd3
feat(api): api update
stainless-app[bot] Aug 1, 2025
cde1ea6
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 1, 2025
da40430
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 1, 2025
c5b4600
codegen metadata
stainless-app[bot] Aug 4, 2025
33b5aba
feat(api): api update
stainless-app[bot] Aug 4, 2025
1509d02
codegen metadata
stainless-app[bot] Aug 4, 2025
716164d
codegen metadata
stainless-app[bot] Aug 4, 2025
3ec16bb
codegen metadata
stainless-app[bot] Aug 4, 2025
58a55d5
codegen metadata
stainless-app[bot] Aug 4, 2025
6409e1c
feat(api): api update
stainless-app[bot] Aug 4, 2025
01861c1
codegen metadata
stainless-app[bot] Aug 4, 2025
1fe51da
codegen metadata
stainless-app[bot] Aug 4, 2025
1e44790
feat(api): api update
stainless-app[bot] Aug 4, 2025
58569a8
codegen metadata
stainless-app[bot] Aug 4, 2025
bfdc49d
codegen metadata
stainless-app[bot] Aug 4, 2025
45cbd69
codegen metadata
stainless-app[bot] Aug 5, 2025
776e3fe
codegen metadata
stainless-app[bot] Aug 5, 2025
d8f12f4
codegen metadata
stainless-app[bot] Aug 5, 2025
2eacfc3
codegen metadata
stainless-app[bot] Aug 5, 2025
12b632c
codegen metadata
stainless-app[bot] Aug 5, 2025
88f5280
chore(internal): fix ruff target version
stainless-app[bot] Aug 5, 2025
432cee1
codegen metadata
stainless-app[bot] Aug 5, 2025
01e8b8f
codegen metadata
stainless-app[bot] Aug 5, 2025
c4397a3
codegen metadata
stainless-app[bot] Aug 5, 2025
2b3bf9a
codegen metadata
stainless-app[bot] Aug 5, 2025
9e346be
codegen metadata
stainless-app[bot] Aug 5, 2025
c03c32f
codegen metadata
stainless-app[bot] Aug 5, 2025
e771f59
codegen metadata
stainless-app[bot] Aug 5, 2025
be2ee94
codegen metadata
stainless-app[bot] Aug 5, 2025
a9d663c
codegen metadata
stainless-app[bot] Aug 5, 2025
4a19fdc
feat(api): api update
stainless-app[bot] Aug 6, 2025
7625ab6
codegen metadata
stainless-app[bot] Aug 6, 2025
e929abc
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
23052e9
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
a27e50c
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
a59205e
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
82ca780
codegen metadata
stainless-app[bot] Aug 6, 2025
8c9c619
codegen metadata
stainless-app[bot] Aug 6, 2025
e122304
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
ca1f686
codegen metadata
stainless-app[bot] Aug 6, 2025
772b16a
codegen metadata
stainless-app[bot] Aug 6, 2025
c6e5b8c
codegen metadata
stainless-app[bot] Aug 6, 2025
06bed10
codegen metadata
stainless-app[bot] Aug 6, 2025
980b404
codegen metadata
stainless-app[bot] Aug 6, 2025
5ea1f95
codegen metadata
stainless-app[bot] Aug 6, 2025
a4b55b1
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
dc18093
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
9f4226d
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
49eb6de
codegen metadata
stainless-app[bot] Aug 6, 2025
17ff10e
codegen metadata
stainless-app[bot] Aug 6, 2025
5724345
codegen metadata
stainless-app[bot] Aug 6, 2025
dd641c8
feat(api): api update
stainless-app[bot] Aug 6, 2025
54f3f95
codegen metadata
stainless-app[bot] Aug 6, 2025
6a1b4d4
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
a83c7e9
codegen metadata
stainless-app[bot] Aug 6, 2025
a78c89b
codegen metadata
stainless-app[bot] Aug 6, 2025
2bf6eee
codegen metadata
stainless-app[bot] Aug 6, 2025
6464b31
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
1e499f3
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 6, 2025
5662a87
feat(api): api update
stainless-app[bot] Aug 6, 2025
21ac940
codegen metadata
stainless-app[bot] Aug 6, 2025
c070bb9
codegen metadata
stainless-app[bot] Aug 6, 2025
0fea836
codegen metadata
stainless-app[bot] Aug 6, 2025
bcf6e3e
codegen metadata
stainless-app[bot] Aug 7, 2025
99f367f
codegen metadata
stainless-app[bot] Aug 7, 2025
c019dae
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 7, 2025
5698cb6
feat(api): api update
stainless-app[bot] Aug 7, 2025
420916d
codegen metadata
stainless-app[bot] Aug 7, 2025
78f2fe1
codegen metadata
stainless-app[bot] Aug 7, 2025
4afac86
codegen metadata
stainless-app[bot] Aug 7, 2025
6dc54a3
codegen metadata
stainless-app[bot] Aug 7, 2025
6792a7a
codegen metadata
stainless-app[bot] Aug 7, 2025
4f42c75
codegen metadata
stainless-app[bot] Aug 7, 2025
fcff175
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 7, 2025
c7027ca
codegen metadata
stainless-app[bot] Aug 7, 2025
9f04236
codegen metadata
stainless-app[bot] Aug 7, 2025
1345ed3
codegen metadata
stainless-app[bot] Aug 7, 2025
d49e730
codegen metadata
stainless-app[bot] Aug 7, 2025
9f1f4b0
feat(api): api update
stainless-app[bot] Aug 7, 2025
6cbf008
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 7, 2025
fc725ed
codegen metadata
stainless-app[bot] Aug 7, 2025
1b9c534
codegen metadata
stainless-app[bot] Aug 7, 2025
649bc99
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 7, 2025
f6cb2e1
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 7, 2025
9fff7a0
feat(api): api update
stainless-app[bot] Aug 7, 2025
abee1be
codegen metadata
stainless-app[bot] Aug 7, 2025
e02e133
codegen metadata
stainless-app[bot] Aug 7, 2025
a7d8353
codegen metadata
stainless-app[bot] Aug 7, 2025
7e10f24
codegen metadata
stainless-app[bot] Aug 7, 2025
cadee02
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 7, 2025
d3c0690
codegen metadata
stainless-app[bot] Aug 7, 2025
9bee0a8
codegen metadata
stainless-app[bot] Aug 7, 2025
3f7e26d
codegen metadata
stainless-app[bot] Aug 7, 2025
9582934
codegen metadata
stainless-app[bot] Aug 7, 2025
4a7d32d
codegen metadata
stainless-app[bot] Aug 7, 2025
49c5552
codegen metadata
stainless-app[bot] Aug 7, 2025
be708f5
codegen metadata
stainless-app[bot] Aug 7, 2025
6600542
codegen metadata
stainless-app[bot] Aug 7, 2025
772aedb
codegen metadata
stainless-app[bot] Aug 8, 2025
51aac22
codegen metadata
stainless-app[bot] Aug 8, 2025
eecae32
codegen metadata
stainless-app[bot] Aug 8, 2025
18cb6b3
codegen metadata
stainless-app[bot] Aug 8, 2025
9fc8b31
codegen metadata
stainless-app[bot] Aug 8, 2025
8d1c023
codegen metadata
stainless-app[bot] Aug 8, 2025
86277db
codegen metadata
stainless-app[bot] Aug 8, 2025
3117368
codegen metadata
stainless-app[bot] Aug 8, 2025
3b9ea5d
feat(api): api update
stainless-app[bot] Aug 8, 2025
fa0b676
codegen metadata
stainless-app[bot] Aug 8, 2025
c8ae192
codegen metadata
stainless-app[bot] Aug 8, 2025
78661c3
codegen metadata
stainless-app[bot] Aug 8, 2025
041aba6
codegen metadata
stainless-app[bot] Aug 8, 2025
8378dd0
codegen metadata
stainless-app[bot] Aug 8, 2025
7bfd28f
codegen metadata
stainless-app[bot] Aug 8, 2025
a1e726e
chore: update @stainless-api/prism-cli to v5.15.0
stainless-app[bot] Aug 8, 2025
562f4e7
codegen metadata
stainless-app[bot] Aug 8, 2025
aa0b329
codegen metadata
stainless-app[bot] Aug 8, 2025
29eeab3
codegen metadata
stainless-app[bot] Aug 8, 2025
e449e47
feat(api): api update
stainless-app[bot] Aug 8, 2025
73c752b
codegen metadata
stainless-app[bot] Aug 8, 2025
1c14611
codegen metadata
stainless-app[bot] Aug 8, 2025
2526d05
codegen metadata
stainless-app[bot] Aug 8, 2025
cf3a21e
chore(internal): detect breaking changes when removing endpoints
stainless-app[bot] Aug 8, 2025
7477489
chore(api): upload stainless config from cloudflare-config
stainless-app[bot] Aug 8, 2025
8f64f5f
chore(internal): update comment in script
stainless-app[bot] Aug 8, 2025
410146f
codegen metadata
stainless-app[bot] Aug 8, 2025
d46c5af
codegen metadata
stainless-app[bot] Aug 8, 2025
a051a1a
codegen metadata
stainless-app[bot] Aug 9, 2025
7c1787d
codegen metadata
stainless-app[bot] Aug 9, 2025
49ea1e3
codegen metadata
stainless-app[bot] Aug 10, 2025
97ef71e
codegen metadata
stainless-app[bot] Aug 11, 2025
f4a0e39
codegen metadata
stainless-app[bot] Aug 11, 2025
fa39008
codegen metadata
stainless-app[bot] Aug 11, 2025
950193e
codegen metadata
stainless-app[bot] Aug 11, 2025
f8282eb
codegen metadata
stainless-app[bot] Aug 11, 2025
b20d895
feat(api): api update
stainless-app[bot] Aug 11, 2025
02bb247
codegen metadata
stainless-app[bot] Aug 11, 2025
080e338
codegen metadata
stainless-app[bot] Aug 11, 2025
e4f6db1
feat(api): api update
stainless-app[bot] Aug 11, 2025
30efe43
codegen metadata
stainless-app[bot] Aug 11, 2025
31b69b8
codegen metadata
stainless-app[bot] Aug 11, 2025
6bee693
codegen metadata
stainless-app[bot] Aug 11, 2025
8c733e8
codegen metadata
stainless-app[bot] Aug 11, 2025
c8b84c8
codegen metadata
stainless-app[bot] Aug 11, 2025
d79454a
codegen metadata
stainless-app[bot] Aug 11, 2025
54b30b1
codegen metadata
stainless-app[bot] Aug 11, 2025
43bcfe1
codegen metadata
stainless-app[bot] Aug 11, 2025
dc60d1f
codegen metadata
stainless-app[bot] Aug 11, 2025
e9401b4
codegen metadata
stainless-app[bot] Aug 11, 2025
dcdce96
codegen metadata
stainless-app[bot] Aug 11, 2025
f587c98
codegen metadata
stainless-app[bot] Aug 11, 2025
a6720f5
feat(api): api update
stainless-app[bot] Aug 11, 2025
13aaaf8
codegen metadata
stainless-app[bot] Aug 11, 2025
df1ea9b
codegen metadata
stainless-app[bot] Aug 11, 2025
73c642d
codegen metadata
stainless-app[bot] Aug 11, 2025
81796e7
codegen metadata
stainless-app[bot] Aug 11, 2025
8570679
feat(api): api update
stainless-app[bot] Aug 11, 2025
c3f510c
feat(api): api update
stainless-app[bot] Aug 11, 2025
9e35d23
feat(api): api update
stainless-app[bot] Aug 11, 2025
e46ab45
codegen metadata
stainless-app[bot] Aug 11, 2025
d68eb0b
codegen metadata
stainless-app[bot] Aug 11, 2025
86d177b
codegen metadata
stainless-app[bot] Aug 11, 2025
1747166
codegen metadata
stainless-app[bot] Aug 11, 2025
c0bf1f3
codegen metadata
stainless-app[bot] Aug 11, 2025
4acc106
codegen metadata
stainless-app[bot] Aug 11, 2025
282793c
codegen metadata
stainless-app[bot] Aug 11, 2025
04032a7
codegen metadata
stainless-app[bot] Aug 11, 2025
6e2a4c8
codegen metadata
stainless-app[bot] Aug 11, 2025
96dd75c
codegen metadata
stainless-app[bot] Aug 11, 2025
a76ac03
codegen metadata
stainless-app[bot] Aug 12, 2025
2439e6f
feat(api): api update
stainless-app[bot] Aug 12, 2025
1107896
codegen metadata
stainless-app[bot] Aug 12, 2025
af66067
feat(api): api update
stainless-app[bot] Aug 12, 2025
24bfb4d
codegen metadata
stainless-app[bot] Aug 12, 2025
12167db
codegen metadata
stainless-app[bot] Aug 12, 2025
924f630
codegen metadata
stainless-app[bot] Aug 12, 2025
05b795b
codegen metadata
stainless-app[bot] Aug 12, 2025
2580c2d
codegen metadata
stainless-app[bot] Aug 12, 2025
9dd5c70
codegen metadata
stainless-app[bot] Aug 12, 2025
9f57ff4
codegen metadata
stainless-app[bot] Aug 12, 2025
490c474
codegen metadata
stainless-app[bot] Aug 12, 2025
0ac5a45
codegen metadata
stainless-app[bot] Aug 12, 2025
27dcdf9
codegen metadata
stainless-app[bot] Aug 12, 2025
91c3a53
codegen metadata
stainless-app[bot] Aug 12, 2025
1eae20b
codegen metadata
stainless-app[bot] Aug 12, 2025
2f4f8a9
codegen metadata
stainless-app[bot] Aug 12, 2025
fc9fb01
codegen metadata
stainless-app[bot] Aug 12, 2025
c79d831
codegen metadata
stainless-app[bot] Aug 12, 2025
b115142
feat(api): api update
stainless-app[bot] Aug 12, 2025
bfa56fb
codegen metadata
stainless-app[bot] Aug 12, 2025
65c576c
codegen metadata
stainless-app[bot] Aug 12, 2025
78034ba
feat(api): api update
stainless-app[bot] Aug 12, 2025
f4b8ab1
codegen metadata
stainless-app[bot] Aug 12, 2025
bd9776b
codegen metadata
stainless-app[bot] Aug 12, 2025
6353be6
codegen metadata
stainless-app[bot] Aug 12, 2025
725d375
codegen metadata
stainless-app[bot] Aug 12, 2025
85fe55a
codegen metadata
stainless-app[bot] Aug 12, 2025
c116216
codegen metadata
stainless-app[bot] Aug 12, 2025
fef2d52
codegen metadata
stainless-app[bot] Aug 12, 2025
8f6824a
codegen metadata
stainless-app[bot] Aug 12, 2025
5ec55ef
codegen metadata
stainless-app[bot] Aug 12, 2025
58a95e5
codegen metadata
stainless-app[bot] Aug 12, 2025
9a383ab
feat(api): api update
stainless-app[bot] Aug 12, 2025
1c6167c
codegen metadata
stainless-app[bot] Aug 12, 2025
6b38219
feat(api): api update
stainless-app[bot] Aug 12, 2025
98f5a49
codegen metadata
stainless-app[bot] Aug 12, 2025
ceef2bf
codegen metadata
stainless-app[bot] Aug 13, 2025
fbb869b
codegen metadata
stainless-app[bot] Aug 13, 2025
52f8e71
codegen metadata
stainless-app[bot] Aug 13, 2025
2bf7ec6
feat(api): api update
stainless-app[bot] Aug 13, 2025
246a724
codegen metadata
stainless-app[bot] Aug 13, 2025
6c49455
codegen metadata
stainless-app[bot] Aug 13, 2025
5d69c85
codegen metadata
stainless-app[bot] Aug 13, 2025
469282a
codegen metadata
stainless-app[bot] Aug 13, 2025
2bbe521
codegen metadata
stainless-app[bot] Aug 13, 2025
0a37a07
codegen metadata
stainless-app[bot] Aug 13, 2025
7028488
codegen metadata
stainless-app[bot] Aug 13, 2025
dbf2825
codegen metadata
stainless-app[bot] Aug 13, 2025
d04f9b8
release: 4.4.0
stainless-app[bot] Aug 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 24 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ on:
- 'integrated/**'
- 'stl-preview-head/**'
- 'stl-preview-base/**'
pull_request:
branches-ignore:
- 'stl-preview-head/**'
- 'stl-preview-base/**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -18,6 +22,7 @@ jobs:
timeout-minutes: 10
name: lint
runs-on: ${{ github.repository == 'stainless-sdks/cloudflare-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v4

Expand All @@ -35,17 +40,31 @@ jobs:
- name: Run lints
run: ./scripts/lint

upload:
if: github.repository == 'stainless-sdks/cloudflare-python'
build:
if: github.repository == 'stainless-sdks/cloudflare-python' && (github.event_name == 'push' || github.event.pull_request.head.repo.fork)
timeout-minutes: 10
name: upload
name: build
permissions:
contents: read
id-token: write
runs-on: depot-ubuntu-24.04
steps:
- uses: actions/checkout@v4

- name: Install Rye
run: |
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'

- name: Install dependencies
run: rye sync --all-features

- name: Run build
run: rye build

- name: Get GitHub OIDC Token
id: github-oidc
uses: actions/github-script@v6
Expand All @@ -63,6 +82,7 @@ jobs:
timeout-minutes: 30
name: test
runs-on: ${{ github.repository == 'stainless-sdks/cloudflare-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v4

Expand All @@ -84,7 +104,7 @@ jobs:
timeout-minutes: 10
name: examples
runs-on: ${{ github.repository == 'stainless-sdks/cloudflare-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.repository == 'cloudflare/cloudflare-python'
if: github.repository == 'cloudflare/cloudflare-python' && (github.event_name == 'push' || github.event.pull_request.head.repo.fork)

steps:
- uses: actions/checkout@v4
Expand Down
39 changes: 39 additions & 0 deletions .github/workflows/detect-breaking-changes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: CI
on:
pull_request:
branches:
- main
- next

jobs:
detect_breaking_changes:
runs-on: 'ubuntu-latest'
name: detect-breaking-changes
if: github.repository == 'cloudflare/cloudflare-python'
steps:
- name: Calculate fetch-depth
run: |
echo "FETCH_DEPTH=$(expr ${{ github.event.pull_request.commits }} + 1)" >> $GITHUB_ENV

- uses: actions/checkout@v4
with:
# Ensure we can check out the pull request base in the script below.
fetch-depth: ${{ env.FETCH_DEPTH }}

- name: Install Rye
run: |
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'
- name: Install dependencies
run: |
rye sync --all-features

- name: Detect breaking changes
run: |
# Try to check out previous versions of the breaking change detection script. This ensures that
# we still detect breaking changes when entire files and their tests are removed.
git checkout "${{ github.event.pull_request.base.sha }}" -- ./scripts/detect-breaking-changes 2>/dev/null || true
./scripts/detect-breaking-changes ${{ github.event.pull_request.base.sha }}
Comment on lines +10 to +39

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}

Copilot Autofix

AI 5 days ago

To fix the problem, add a permissions block to the workflow to explicitly set the minimum required permissions for the GITHUB_TOKEN. Since the workflow only checks out code and runs scripts, it only needs contents: read permission. The best way to do this is to add the following at the top level of the workflow file (just after the name: line and before on:), so it applies to all jobs in the workflow. No changes to the jobs or steps are required.


Suggested changeset 1
.github/workflows/detect-breaking-changes.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/detect-breaking-changes.yml b/.github/workflows/detect-breaking-changes.yml
--- a/.github/workflows/detect-breaking-changes.yml
+++ b/.github/workflows/detect-breaking-changes.yml
@@ -1,3 +1,5 @@
+permissions:
+  contents: read
 name: CI
 on:
   pull_request:
EOF
@@ -1,3 +1,5 @@
permissions:
contents: read
name: CI
on:
pull_request:
Copilot is powered by AI and may make mistakes. Always verify output.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
.prism.log
.vscode
_dev

__pycache__
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "4.3.1"
".": "4.4.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: 1752
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b15b44e0efd207de48e7e74e742b0b4b190c74f12a941a1a0ef59a51656a5224.yml
openapi_spec_hash: 83243c9ee06f88d0fa91e9b185d8a42e
config_hash: 8601d43fd5ccaf9e3d08f26748a5a63a
configured_endpoints: 1793
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-bf6dcd562e592c1c6d992e04b39d5b372e2a7cb4d3fdcad23e483e21389bd3aa.yml
openapi_spec_hash: 8b8da2355d909906fe7af3bc6f507487
config_hash: de4c81cee29cd7dd907279e8916b334f
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"python.analysis.importFormat": "relative",
}
82 changes: 82 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,87 @@
# Changelog

## 4.4.0 (2025-08-13)

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

### Features

* **api:** api update ([2bf7ec6](https://github.com/cloudflare/cloudflare-python/commit/2bf7ec640e0cb0e3d809b37b58a429794b12d617))
* **api:** api update ([6b38219](https://github.com/cloudflare/cloudflare-python/commit/6b38219e064393068404b17eb36799e4921d16c9))
* **api:** api update ([9a383ab](https://github.com/cloudflare/cloudflare-python/commit/9a383aba94cbfd597107abf58979ce946d72b9a1))
* **api:** api update ([78034ba](https://github.com/cloudflare/cloudflare-python/commit/78034ba1680989c16fba7c47599d1d4dbe76e843))
* **api:** api update ([b115142](https://github.com/cloudflare/cloudflare-python/commit/b115142726fafa5d1f77d4da0751b07e05d569ea))
* **api:** api update ([af66067](https://github.com/cloudflare/cloudflare-python/commit/af66067fdbc10da9ca865c75c2ca2760a9c870ec))
* **api:** api update ([2439e6f](https://github.com/cloudflare/cloudflare-python/commit/2439e6fef1cf995510c5d90e598455e3a54a6b95))
* **api:** api update ([9e35d23](https://github.com/cloudflare/cloudflare-python/commit/9e35d237a01bc6530dd6667c2f51879e282e1e63))
* **api:** api update ([c3f510c](https://github.com/cloudflare/cloudflare-python/commit/c3f510c0602e4756e907991fa933f8fd14602d7f))
* **api:** api update ([8570679](https://github.com/cloudflare/cloudflare-python/commit/85706796ecb7e7107b072c9bfcaf7a45d30b51d5))
* **api:** api update ([a6720f5](https://github.com/cloudflare/cloudflare-python/commit/a6720f52cd03b6aefd8cfb3450fe64062c34405e))
* **api:** api update ([e4f6db1](https://github.com/cloudflare/cloudflare-python/commit/e4f6db131b8c4c0ce3125fa8a76fe1ec0ecfbae9))
* **api:** api update ([b20d895](https://github.com/cloudflare/cloudflare-python/commit/b20d89591b9e8090948a76c745a5cdbb7e00267a))
* **api:** api update ([e449e47](https://github.com/cloudflare/cloudflare-python/commit/e449e47e8a68b54ca5ea09b868c40cdecd3e15c7))
* **api:** api update ([3b9ea5d](https://github.com/cloudflare/cloudflare-python/commit/3b9ea5d0c69edfe53123243b927e096f1157e88a))
* **api:** api update ([9fff7a0](https://github.com/cloudflare/cloudflare-python/commit/9fff7a0346574783ea17c6bd459f9a58a039c584))
* **api:** api update ([9f1f4b0](https://github.com/cloudflare/cloudflare-python/commit/9f1f4b0c08551204165be1560cdd1b3091037a8e))
* **api:** api update ([5698cb6](https://github.com/cloudflare/cloudflare-python/commit/5698cb6425b2b3c689aac42e6a474083e16c688d))
* **api:** api update ([5662a87](https://github.com/cloudflare/cloudflare-python/commit/5662a87c01b857d54338e3ccff69474d2c14b491))
* **api:** api update ([dd641c8](https://github.com/cloudflare/cloudflare-python/commit/dd641c805298a6e7545f49fde23d9dbc82d006cc))
* **api:** api update ([4a19fdc](https://github.com/cloudflare/cloudflare-python/commit/4a19fdc85d0fadb23837fe13b3aaefbca6adc72a))
* **api:** api update ([1e44790](https://github.com/cloudflare/cloudflare-python/commit/1e44790622257efd20e23b4a0e30bf4d4fe29ebc))
* **api:** api update ([6409e1c](https://github.com/cloudflare/cloudflare-python/commit/6409e1c4d9b04fdfe03ad5197ccdf48d647c2510))
* **api:** api update ([33b5aba](https://github.com/cloudflare/cloudflare-python/commit/33b5abaddae6d5139bd7ffffc2513e6a9d5b59d2))
* **api:** api update ([4f45fd3](https://github.com/cloudflare/cloudflare-python/commit/4f45fd34ff28ffc24a0dd6e184e84cb9e600048b))
* **api:** api update ([1a01a4c](https://github.com/cloudflare/cloudflare-python/commit/1a01a4cef3884c2342cc9fc3091f15f175c10f64))
* **api:** api update ([0ea1719](https://github.com/cloudflare/cloudflare-python/commit/0ea1719087ab998f84f42b4531a31ac211fc499a))
* **api:** api update ([e0e13d1](https://github.com/cloudflare/cloudflare-python/commit/e0e13d1e05ee85b87e97a525ba226bc1e2978d61))
* **api:** api update ([053f18f](https://github.com/cloudflare/cloudflare-python/commit/053f18f518d9a667b36a6787a9a098acda63ee16))
* **api:** api update ([a51aa98](https://github.com/cloudflare/cloudflare-python/commit/a51aa985775acb99497a9c477d7dc09139c2aac9))
* **api:** api update ([2528e34](https://github.com/cloudflare/cloudflare-python/commit/2528e345a3ba076ccbe8625662aa380616632332))
* **api:** api update ([ff93fa7](https://github.com/cloudflare/cloudflare-python/commit/ff93fa75d4fb56cd32905f0b038b4bbf7f5461a7))
* **api:** api update ([f36b1b3](https://github.com/cloudflare/cloudflare-python/commit/f36b1b337c568609dcb285729cdfd9ad645abf85))
* **api:** api update ([f34ac3b](https://github.com/cloudflare/cloudflare-python/commit/f34ac3bd57d88ae4a7b85191191ab8681d47b85d))
* **api:** api update ([798ad9b](https://github.com/cloudflare/cloudflare-python/commit/798ad9bbc747d55eddc313bcb44505d29bd54850))
* **client:** support file upload requests ([2bfa20a](https://github.com/cloudflare/cloudflare-python/commit/2bfa20a5ce735617e95729fa7f7e15e7b7aa34cc))


### Chores

* **api:** update composite API spec ([9cce5ac](https://github.com/cloudflare/cloudflare-python/commit/9cce5acde48c47ed3a59e5662ba87e8a38e83414))
* **api:** upload OpenAPI schema from api-schemas ([be94ae0](https://github.com/cloudflare/cloudflare-python/commit/be94ae004837ec8e2c6fa132747a8378337ecb93))
* **api:** upload stainless config from cloudflare-config ([7477489](https://github.com/cloudflare/cloudflare-python/commit/74774897bf9f410ea8a9cc17e9ae2b1890f6a2d0))
* **api:** upload stainless config from cloudflare-config ([cadee02](https://github.com/cloudflare/cloudflare-python/commit/cadee02a6b85c5973f3ecdc6b2d9f36466bef915))
* **api:** upload stainless config from cloudflare-config ([f6cb2e1](https://github.com/cloudflare/cloudflare-python/commit/f6cb2e1a3a0df41f786b2cd9fa10426b9e5d6328))
* **api:** upload stainless config from cloudflare-config ([649bc99](https://github.com/cloudflare/cloudflare-python/commit/649bc9915fb21e3b35ad7d5664c1893b1e55c3c1))
* **api:** upload stainless config from cloudflare-config ([6cbf008](https://github.com/cloudflare/cloudflare-python/commit/6cbf008e22076e1a5b00a422c11e3fa000a324c1))
* **api:** upload stainless config from cloudflare-config ([fcff175](https://github.com/cloudflare/cloudflare-python/commit/fcff1758c1e91d6f9ad3b91914395e664f629dcf))
* **api:** upload stainless config from cloudflare-config ([c019dae](https://github.com/cloudflare/cloudflare-python/commit/c019dae16f08a5e964e9c9ad27e8013afbfdb52c))
* **api:** upload stainless config from cloudflare-config ([1e499f3](https://github.com/cloudflare/cloudflare-python/commit/1e499f38ecbdf0398bf5143db2200952ff07adc3))
* **api:** upload stainless config from cloudflare-config ([6464b31](https://github.com/cloudflare/cloudflare-python/commit/6464b318e163995e744c6d59064cc8d912835230))
* **api:** upload stainless config from cloudflare-config ([6a1b4d4](https://github.com/cloudflare/cloudflare-python/commit/6a1b4d4184d20adf92b05d65752ecd9d5218972a))
* **api:** upload stainless config from cloudflare-config ([9f4226d](https://github.com/cloudflare/cloudflare-python/commit/9f4226de0aac877922578b036ac6502add00c651))
* **api:** upload stainless config from cloudflare-config ([dc18093](https://github.com/cloudflare/cloudflare-python/commit/dc180939633e6568ea205ff993b07265464f082a))
* **api:** upload stainless config from cloudflare-config ([a4b55b1](https://github.com/cloudflare/cloudflare-python/commit/a4b55b1fe9212b25ea2e808b07379e05c686fe15))
* **api:** upload stainless config from cloudflare-config ([e122304](https://github.com/cloudflare/cloudflare-python/commit/e1223043f114cf951ea24a0b02b84955bd34eb8c))
* **api:** upload stainless config from cloudflare-config ([a59205e](https://github.com/cloudflare/cloudflare-python/commit/a59205e5050482174638115ed556bb9cfe755263))
* **api:** upload stainless config from cloudflare-config ([a27e50c](https://github.com/cloudflare/cloudflare-python/commit/a27e50c312aba0763fbbd8f69122885acc73ae9e))
* **api:** upload stainless config from cloudflare-config ([23052e9](https://github.com/cloudflare/cloudflare-python/commit/23052e9bac88c1bebcedf30eba913d1ab20413d3))
* **api:** upload stainless config from cloudflare-config ([e929abc](https://github.com/cloudflare/cloudflare-python/commit/e929abc72b667908ec15f920846510f3d403430c))
* **api:** upload stainless config from cloudflare-config ([da40430](https://github.com/cloudflare/cloudflare-python/commit/da40430abf95b44de17abbc172bcfb7477b08ec7))
* **api:** upload stainless config from cloudflare-config ([cde1ea6](https://github.com/cloudflare/cloudflare-python/commit/cde1ea60050d99f02a275d3fb84625afd79154e7))
* **api:** upload stainless config from cloudflare-config ([daa7fe0](https://github.com/cloudflare/cloudflare-python/commit/daa7fe0beca11ed9ba77bcf2d16a67ae9a8e83c0))
* **api:** upload stainless config from cloudflare-config ([5d2c28c](https://github.com/cloudflare/cloudflare-python/commit/5d2c28c0fff36330feeacacbfa7039a5d3291e14))
* **api:** upload stainless config from cloudflare-config ([8b866ab](https://github.com/cloudflare/cloudflare-python/commit/8b866ab3e5d548593a824fb4407fbacdd9a94fe0))
* **api:** upload stainless config from cloudflare-config ([4456fdb](https://github.com/cloudflare/cloudflare-python/commit/4456fdb5bfc62a726f66f3705a3bddd8fc73407b))
* **api:** upload stainless config from cloudflare-config ([d903656](https://github.com/cloudflare/cloudflare-python/commit/d903656ac46dffde681ddd97cdae697184e1c440))
* **api:** upload stainless config from cloudflare-config ([f548ad4](https://github.com/cloudflare/cloudflare-python/commit/f548ad490f3f7d7b887a7c6691eae3234209f258))
* **api:** upload stainless config from cloudflare-config ([0d5adaa](https://github.com/cloudflare/cloudflare-python/commit/0d5adaab4397dc11b3730304e796fb331102424b))
* **api:** upload stainless config from cloudflare-config ([f47f76b](https://github.com/cloudflare/cloudflare-python/commit/f47f76b7499ed679f722ffcbfba3abafe77be702))
* **api:** upload stainless config from cloudflare-config ([b0defd7](https://github.com/cloudflare/cloudflare-python/commit/b0defd7fef30a561cd1ce0adcf7444c3973d5bb8))
* **internal:** detect breaking changes when removing endpoints ([cf3a21e](https://github.com/cloudflare/cloudflare-python/commit/cf3a21edb663b92b610352ea292f0ba0cb7d8bb5))
* **internal:** fix ruff target version ([88f5280](https://github.com/cloudflare/cloudflare-python/commit/88f5280930375959c8d89bb512008b9a99731e74))
* **internal:** update comment in script ([8f64f5f](https://github.com/cloudflare/cloudflare-python/commit/8f64f5f49b53a35b5d568ef7eb7e344acc463865))
* update @stainless-api/prism-cli to v5.15.0 ([a1e726e](https://github.com/cloudflare/cloudflare-python/commit/a1e726e0336c44efea0368dfaeb5aeb9a6965a02))

## 4.3.1 (2025-06-16)

Full Changelog: [v4.3.0...v4.3.1](https://github.com/cloudflare/cloudflare-python/compare/v4.3.0...v4.3.1)
Expand Down
40 changes: 38 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Cloudflare Python API library

[![PyPI version](https://img.shields.io/pypi/v/cloudflare.svg)](https://pypi.org/project/cloudflare/)
<!-- prettier-ignore -->
[![PyPI version](https://img.shields.io/pypi/v/cloudflare.svg?label=pypi%20(stable))](https://pypi.org/project/cloudflare/)

The Cloudflare Python library provides convenient access to the Cloudflare REST API from any Python 3.8+
application. The library includes type definitions for all request params and response fields,
Expand Down Expand Up @@ -70,6 +71,41 @@ asyncio.run(main())

Functionality between the synchronous and asynchronous clients is otherwise identical.

### With aiohttp

By default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.

You can enable this by installing `aiohttp`:

```sh
# install from PyPI
pip install cloudflare[aiohttp]
```

Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:

```python
import asyncio
from cloudflare import DefaultAioHttpClient
from cloudflare import AsyncCloudflare


async def main() -> None:
async with AsyncCloudflare(
api_token="Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY",
http_client=DefaultAioHttpClient(),
) as client:
zone = await client.zones.create(
account={"id": "023e105f4ecef8ad9ca31a8372d0c353"},
name="example.com",
type="full",
)
print(zone.id)


asyncio.run(main())
```

## Using types

Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like:
Expand Down Expand Up @@ -244,7 +280,7 @@ client.with_options(max_retries=5).zones.get(
### Timeouts

By default requests time out after 1 minute. You can configure this with a `timeout` option,
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/#fine-tuning-the-configuration) object:
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:

```python
from cloudflare import Cloudflare
Expand Down
Loading
Loading