Skip to content

Commit 3fd5de2

Browse files
stainless-app[bot]stainless-bot
authored andcommitted
feat(api): introduce bulk operation methods (#2177)
1 parent c810755 commit 3fd5de2

File tree

66 files changed

+4156
-627
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+4156
-627
lines changed

.stats.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
configured_endpoints: 1435
1+
configured_endpoints: 1449
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-829ade7062fed63a30accc2a5e1a14c6c26fd4dc003d300d1b25a5416b8b8727.yml

api.md

+46-18
Large diffs are not rendered by default.

src/cloudflare/resources/api_gateway/discovery/operations.py

+97-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from __future__ import annotations
44

5-
from typing import List, Type, cast
5+
from typing import Dict, List, Type, cast
66
from typing_extensions import Literal
77

88
import httpx
@@ -23,9 +23,10 @@
2323
from ...._wrappers import ResultWrapper
2424
from ....pagination import SyncV4PagePaginationArray, AsyncV4PagePaginationArray
2525
from ...._base_client import AsyncPaginator, make_request_options
26-
from ....types.api_gateway.discovery import operation_edit_params, operation_list_params
26+
from ....types.api_gateway.discovery import operation_edit_params, operation_list_params, operation_bulk_edit_params
2727
from ....types.api_gateway.discovery_operation import DiscoveryOperation
2828
from ....types.api_gateway.discovery.operation_edit_response import OperationEditResponse
29+
from ....types.api_gateway.discovery.operation_bulk_edit_response import OperationBulkEditResponse
2930

3031
__all__ = ["OperationsResource", "AsyncOperationsResource"]
3132

@@ -148,6 +149,47 @@ def list(
148149
model=DiscoveryOperation,
149150
)
150151

152+
def bulk_edit(
153+
self,
154+
*,
155+
zone_id: str,
156+
body: Dict[str, operation_bulk_edit_params.Body],
157+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
158+
# The extra values given here take precedence over values defined on the client or passed to this method.
159+
extra_headers: Headers | None = None,
160+
extra_query: Query | None = None,
161+
extra_body: Body | None = None,
162+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
163+
) -> OperationBulkEditResponse:
164+
"""
165+
Update the `state` on one or more discovered operations
166+
167+
Args:
168+
zone_id: Identifier
169+
170+
extra_headers: Send extra headers
171+
172+
extra_query: Add additional query parameters to the request
173+
174+
extra_body: Add additional JSON properties to the request
175+
176+
timeout: Override the client-level default timeout for this request, in seconds
177+
"""
178+
if not zone_id:
179+
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
180+
return self._patch(
181+
f"/zones/{zone_id}/api_gateway/discovery/operations",
182+
body=maybe_transform(body, operation_bulk_edit_params.OperationBulkEditParams),
183+
options=make_request_options(
184+
extra_headers=extra_headers,
185+
extra_query=extra_query,
186+
extra_body=extra_body,
187+
timeout=timeout,
188+
post_parser=ResultWrapper[OperationBulkEditResponse]._unwrapper,
189+
),
190+
cast_to=cast(Type[OperationBulkEditResponse], ResultWrapper[OperationBulkEditResponse]),
191+
)
192+
151193
def edit(
152194
self,
153195
operation_id: str,
@@ -318,6 +360,47 @@ def list(
318360
model=DiscoveryOperation,
319361
)
320362

363+
async def bulk_edit(
364+
self,
365+
*,
366+
zone_id: str,
367+
body: Dict[str, operation_bulk_edit_params.Body],
368+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
369+
# The extra values given here take precedence over values defined on the client or passed to this method.
370+
extra_headers: Headers | None = None,
371+
extra_query: Query | None = None,
372+
extra_body: Body | None = None,
373+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
374+
) -> OperationBulkEditResponse:
375+
"""
376+
Update the `state` on one or more discovered operations
377+
378+
Args:
379+
zone_id: Identifier
380+
381+
extra_headers: Send extra headers
382+
383+
extra_query: Add additional query parameters to the request
384+
385+
extra_body: Add additional JSON properties to the request
386+
387+
timeout: Override the client-level default timeout for this request, in seconds
388+
"""
389+
if not zone_id:
390+
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
391+
return await self._patch(
392+
f"/zones/{zone_id}/api_gateway/discovery/operations",
393+
body=await async_maybe_transform(body, operation_bulk_edit_params.OperationBulkEditParams),
394+
options=make_request_options(
395+
extra_headers=extra_headers,
396+
extra_query=extra_query,
397+
extra_body=extra_body,
398+
timeout=timeout,
399+
post_parser=ResultWrapper[OperationBulkEditResponse]._unwrapper,
400+
),
401+
cast_to=cast(Type[OperationBulkEditResponse], ResultWrapper[OperationBulkEditResponse]),
402+
)
403+
321404
async def edit(
322405
self,
323406
operation_id: str,
@@ -377,6 +460,9 @@ def __init__(self, operations: OperationsResource) -> None:
377460
self.list = to_raw_response_wrapper(
378461
operations.list,
379462
)
463+
self.bulk_edit = to_raw_response_wrapper(
464+
operations.bulk_edit,
465+
)
380466
self.edit = to_raw_response_wrapper(
381467
operations.edit,
382468
)
@@ -389,6 +475,9 @@ def __init__(self, operations: AsyncOperationsResource) -> None:
389475
self.list = async_to_raw_response_wrapper(
390476
operations.list,
391477
)
478+
self.bulk_edit = async_to_raw_response_wrapper(
479+
operations.bulk_edit,
480+
)
392481
self.edit = async_to_raw_response_wrapper(
393482
operations.edit,
394483
)
@@ -401,6 +490,9 @@ def __init__(self, operations: OperationsResource) -> None:
401490
self.list = to_streamed_response_wrapper(
402491
operations.list,
403492
)
493+
self.bulk_edit = to_streamed_response_wrapper(
494+
operations.bulk_edit,
495+
)
404496
self.edit = to_streamed_response_wrapper(
405497
operations.edit,
406498
)
@@ -413,6 +505,9 @@ def __init__(self, operations: AsyncOperationsResource) -> None:
413505
self.list = async_to_streamed_response_wrapper(
414506
operations.list,
415507
)
508+
self.bulk_edit = async_to_streamed_response_wrapper(
509+
operations.bulk_edit,
510+
)
416511
self.edit = async_to_streamed_response_wrapper(
417512
operations.edit,
418513
)

src/cloudflare/resources/api_gateway/operations/operations.py

+83
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
from ....types.api_gateway.operation_list_response import OperationListResponse
3737
from ....types.api_gateway.operation_create_response import OperationCreateResponse
3838
from ....types.api_gateway.operation_delete_response import OperationDeleteResponse
39+
from ....types.api_gateway.operation_bulk_delete_response import OperationBulkDeleteResponse
3940

4041
__all__ = ["OperationsResource", "AsyncOperationsResource"]
4142

@@ -229,6 +230,41 @@ def delete(
229230
cast_to=OperationDeleteResponse,
230231
)
231232

233+
def bulk_delete(
234+
self,
235+
*,
236+
zone_id: str,
237+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
238+
# The extra values given here take precedence over values defined on the client or passed to this method.
239+
extra_headers: Headers | None = None,
240+
extra_query: Query | None = None,
241+
extra_body: Body | None = None,
242+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
243+
) -> OperationBulkDeleteResponse:
244+
"""
245+
Delete multiple operations
246+
247+
Args:
248+
zone_id: Identifier
249+
250+
extra_headers: Send extra headers
251+
252+
extra_query: Add additional query parameters to the request
253+
254+
extra_body: Add additional JSON properties to the request
255+
256+
timeout: Override the client-level default timeout for this request, in seconds
257+
"""
258+
if not zone_id:
259+
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
260+
return self._delete(
261+
f"/zones/{zone_id}/api_gateway/operations",
262+
options=make_request_options(
263+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
264+
),
265+
cast_to=OperationBulkDeleteResponse,
266+
)
267+
232268
def get(
233269
self,
234270
operation_id: str,
@@ -469,6 +505,41 @@ async def delete(
469505
cast_to=OperationDeleteResponse,
470506
)
471507

508+
async def bulk_delete(
509+
self,
510+
*,
511+
zone_id: str,
512+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
513+
# The extra values given here take precedence over values defined on the client or passed to this method.
514+
extra_headers: Headers | None = None,
515+
extra_query: Query | None = None,
516+
extra_body: Body | None = None,
517+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
518+
) -> OperationBulkDeleteResponse:
519+
"""
520+
Delete multiple operations
521+
522+
Args:
523+
zone_id: Identifier
524+
525+
extra_headers: Send extra headers
526+
527+
extra_query: Add additional query parameters to the request
528+
529+
extra_body: Add additional JSON properties to the request
530+
531+
timeout: Override the client-level default timeout for this request, in seconds
532+
"""
533+
if not zone_id:
534+
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
535+
return await self._delete(
536+
f"/zones/{zone_id}/api_gateway/operations",
537+
options=make_request_options(
538+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
539+
),
540+
cast_to=OperationBulkDeleteResponse,
541+
)
542+
472543
async def get(
473544
self,
474545
operation_id: str,
@@ -533,6 +604,9 @@ def __init__(self, operations: OperationsResource) -> None:
533604
self.delete = to_raw_response_wrapper(
534605
operations.delete,
535606
)
607+
self.bulk_delete = to_raw_response_wrapper(
608+
operations.bulk_delete,
609+
)
536610
self.get = to_raw_response_wrapper(
537611
operations.get,
538612
)
@@ -555,6 +629,9 @@ def __init__(self, operations: AsyncOperationsResource) -> None:
555629
self.delete = async_to_raw_response_wrapper(
556630
operations.delete,
557631
)
632+
self.bulk_delete = async_to_raw_response_wrapper(
633+
operations.bulk_delete,
634+
)
558635
self.get = async_to_raw_response_wrapper(
559636
operations.get,
560637
)
@@ -577,6 +654,9 @@ def __init__(self, operations: OperationsResource) -> None:
577654
self.delete = to_streamed_response_wrapper(
578655
operations.delete,
579656
)
657+
self.bulk_delete = to_streamed_response_wrapper(
658+
operations.bulk_delete,
659+
)
580660
self.get = to_streamed_response_wrapper(
581661
operations.get,
582662
)
@@ -599,6 +679,9 @@ def __init__(self, operations: AsyncOperationsResource) -> None:
599679
self.delete = async_to_streamed_response_wrapper(
600680
operations.delete,
601681
)
682+
self.bulk_delete = async_to_streamed_response_wrapper(
683+
operations.bulk_delete,
684+
)
602685
self.get = async_to_streamed_response_wrapper(
603686
operations.get,
604687
)

0 commit comments

Comments
 (0)