Skip to content

Commit fd04baa

Browse files
feat: docs: WC-4152 Expose subdomain delete for workers
* docs: WC-4152 Expose subdomain delete for workers
1 parent 83926a8 commit fd04baa

4 files changed

Lines changed: 164 additions & 3 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 1886
1+
configured_endpoints: 1887
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ffb103f5eee9b32861f01358666cd5ca83d8c5b17eb87398652b6b1512a4a830.yml
33
openapi_spec_hash: 748e21d73949bb766db229a1c3ecf8ce
4-
config_hash: feb968146b5a84697390fed70d260f68
4+
config_hash: da15c53ae7de30af9d9aa523b32f6559

api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2582,6 +2582,7 @@ from cloudflare.types.workers import SubdomainUpdateResponse, SubdomainGetRespon
25822582
Methods:
25832583

25842584
- <code title="put /accounts/{account_id}/workers/subdomain">client.workers.subdomains.<a href="./src/cloudflare/resources/workers/subdomains.py">update</a>(\*, account_id, \*\*<a href="src/cloudflare/types/workers/subdomain_update_params.py">params</a>) -> <a href="./src/cloudflare/types/workers/subdomain_update_response.py">SubdomainUpdateResponse</a></code>
2585+
- <code title="delete /accounts/{account_id}/workers/subdomain">client.workers.subdomains.<a href="./src/cloudflare/resources/workers/subdomains.py">delete</a>(\*, account_id) -> None</code>
25852586
- <code title="get /accounts/{account_id}/workers/subdomain">client.workers.subdomains.<a href="./src/cloudflare/resources/workers/subdomains.py">get</a>(\*, account_id) -> <a href="./src/cloudflare/types/workers/subdomain_get_response.py">SubdomainGetResponse</a></code>
25862587

25872588
## Observability

src/cloudflare/resources/workers/subdomains.py

Lines changed: 85 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import httpx
88

9-
from ..._types import Body, Query, Headers, NotGiven, not_given
9+
from ..._types import Body, Query, Headers, NoneType, NotGiven, not_given
1010
from ..._utils import maybe_transform, async_maybe_transform
1111
from ..._compat import cached_property
1212
from ..._resource import SyncAPIResource, AsyncAPIResource
@@ -86,6 +86,42 @@ def update(
8686
cast_to=cast(Type[SubdomainUpdateResponse], ResultWrapper[SubdomainUpdateResponse]),
8787
)
8888

89+
def delete(
90+
self,
91+
*,
92+
account_id: str,
93+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
94+
# The extra values given here take precedence over values defined on the client or passed to this method.
95+
extra_headers: Headers | None = None,
96+
extra_query: Query | None = None,
97+
extra_body: Body | None = None,
98+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
99+
) -> None:
100+
"""
101+
Deletes a Workers subdomain for an account.
102+
103+
Args:
104+
account_id: Identifier.
105+
106+
extra_headers: Send extra headers
107+
108+
extra_query: Add additional query parameters to the request
109+
110+
extra_body: Add additional JSON properties to the request
111+
112+
timeout: Override the client-level default timeout for this request, in seconds
113+
"""
114+
if not account_id:
115+
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
116+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
117+
return self._delete(
118+
f"/accounts/{account_id}/workers/subdomain",
119+
options=make_request_options(
120+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
121+
),
122+
cast_to=NoneType,
123+
)
124+
89125
def get(
90126
self,
91127
*,
@@ -187,6 +223,42 @@ async def update(
187223
cast_to=cast(Type[SubdomainUpdateResponse], ResultWrapper[SubdomainUpdateResponse]),
188224
)
189225

226+
async def delete(
227+
self,
228+
*,
229+
account_id: str,
230+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
231+
# The extra values given here take precedence over values defined on the client or passed to this method.
232+
extra_headers: Headers | None = None,
233+
extra_query: Query | None = None,
234+
extra_body: Body | None = None,
235+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
236+
) -> None:
237+
"""
238+
Deletes a Workers subdomain for an account.
239+
240+
Args:
241+
account_id: Identifier.
242+
243+
extra_headers: Send extra headers
244+
245+
extra_query: Add additional query parameters to the request
246+
247+
extra_body: Add additional JSON properties to the request
248+
249+
timeout: Override the client-level default timeout for this request, in seconds
250+
"""
251+
if not account_id:
252+
raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}")
253+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
254+
return await self._delete(
255+
f"/accounts/{account_id}/workers/subdomain",
256+
options=make_request_options(
257+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
258+
),
259+
cast_to=NoneType,
260+
)
261+
190262
async def get(
191263
self,
192264
*,
@@ -234,6 +306,9 @@ def __init__(self, subdomains: SubdomainsResource) -> None:
234306
self.update = to_raw_response_wrapper(
235307
subdomains.update,
236308
)
309+
self.delete = to_raw_response_wrapper(
310+
subdomains.delete,
311+
)
237312
self.get = to_raw_response_wrapper(
238313
subdomains.get,
239314
)
@@ -246,6 +321,9 @@ def __init__(self, subdomains: AsyncSubdomainsResource) -> None:
246321
self.update = async_to_raw_response_wrapper(
247322
subdomains.update,
248323
)
324+
self.delete = async_to_raw_response_wrapper(
325+
subdomains.delete,
326+
)
249327
self.get = async_to_raw_response_wrapper(
250328
subdomains.get,
251329
)
@@ -258,6 +336,9 @@ def __init__(self, subdomains: SubdomainsResource) -> None:
258336
self.update = to_streamed_response_wrapper(
259337
subdomains.update,
260338
)
339+
self.delete = to_streamed_response_wrapper(
340+
subdomains.delete,
341+
)
261342
self.get = to_streamed_response_wrapper(
262343
subdomains.get,
263344
)
@@ -270,6 +351,9 @@ def __init__(self, subdomains: AsyncSubdomainsResource) -> None:
270351
self.update = async_to_streamed_response_wrapper(
271352
subdomains.update,
272353
)
354+
self.delete = async_to_streamed_response_wrapper(
355+
subdomains.delete,
356+
)
273357
self.get = async_to_streamed_response_wrapper(
274358
subdomains.get,
275359
)

tests/api_resources/workers/test_subdomains.py

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,44 @@ def test_path_params_update(self, client: Cloudflare) -> None:
5959
subdomain="my-subdomain",
6060
)
6161

62+
@parametrize
63+
def test_method_delete(self, client: Cloudflare) -> None:
64+
subdomain = client.workers.subdomains.delete(
65+
account_id="023e105f4ecef8ad9ca31a8372d0c353",
66+
)
67+
assert subdomain is None
68+
69+
@parametrize
70+
def test_raw_response_delete(self, client: Cloudflare) -> None:
71+
response = client.workers.subdomains.with_raw_response.delete(
72+
account_id="023e105f4ecef8ad9ca31a8372d0c353",
73+
)
74+
75+
assert response.is_closed is True
76+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
77+
subdomain = response.parse()
78+
assert subdomain is None
79+
80+
@parametrize
81+
def test_streaming_response_delete(self, client: Cloudflare) -> None:
82+
with client.workers.subdomains.with_streaming_response.delete(
83+
account_id="023e105f4ecef8ad9ca31a8372d0c353",
84+
) as response:
85+
assert not response.is_closed
86+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
87+
88+
subdomain = response.parse()
89+
assert subdomain is None
90+
91+
assert cast(Any, response.is_closed) is True
92+
93+
@parametrize
94+
def test_path_params_delete(self, client: Cloudflare) -> None:
95+
with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"):
96+
client.workers.subdomains.with_raw_response.delete(
97+
account_id="",
98+
)
99+
62100
@parametrize
63101
def test_method_get(self, client: Cloudflare) -> None:
64102
subdomain = client.workers.subdomains.get(
@@ -145,6 +183,44 @@ async def test_path_params_update(self, async_client: AsyncCloudflare) -> None:
145183
subdomain="my-subdomain",
146184
)
147185

186+
@parametrize
187+
async def test_method_delete(self, async_client: AsyncCloudflare) -> None:
188+
subdomain = await async_client.workers.subdomains.delete(
189+
account_id="023e105f4ecef8ad9ca31a8372d0c353",
190+
)
191+
assert subdomain is None
192+
193+
@parametrize
194+
async def test_raw_response_delete(self, async_client: AsyncCloudflare) -> None:
195+
response = await async_client.workers.subdomains.with_raw_response.delete(
196+
account_id="023e105f4ecef8ad9ca31a8372d0c353",
197+
)
198+
199+
assert response.is_closed is True
200+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
201+
subdomain = await response.parse()
202+
assert subdomain is None
203+
204+
@parametrize
205+
async def test_streaming_response_delete(self, async_client: AsyncCloudflare) -> None:
206+
async with async_client.workers.subdomains.with_streaming_response.delete(
207+
account_id="023e105f4ecef8ad9ca31a8372d0c353",
208+
) as response:
209+
assert not response.is_closed
210+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
211+
212+
subdomain = await response.parse()
213+
assert subdomain is None
214+
215+
assert cast(Any, response.is_closed) is True
216+
217+
@parametrize
218+
async def test_path_params_delete(self, async_client: AsyncCloudflare) -> None:
219+
with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"):
220+
await async_client.workers.subdomains.with_raw_response.delete(
221+
account_id="",
222+
)
223+
148224
@parametrize
149225
async def test_method_get(self, async_client: AsyncCloudflare) -> None:
150226
subdomain = await async_client.workers.subdomains.get(

0 commit comments

Comments
 (0)