Skip to content

Commit

Permalink
feat(api): introduce bulk operation methods (#2177)
Browse files Browse the repository at this point in the history
  • Loading branch information
stainless-app[bot] authored Nov 20, 2024
1 parent 01b11b2 commit ad9193a
Show file tree
Hide file tree
Showing 66 changed files with 4,156 additions and 627 deletions.
2 changes: 1 addition & 1 deletion .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
configured_endpoints: 1435
configured_endpoints: 1449
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-829ade7062fed63a30accc2a5e1a14c6c26fd4dc003d300d1b25a5416b8b8727.yml
64 changes: 46 additions & 18 deletions api.md

Large diffs are not rendered by default.

99 changes: 97 additions & 2 deletions src/cloudflare/resources/api_gateway/discovery/operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from __future__ import annotations

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

import httpx
Expand All @@ -23,9 +23,10 @@
from ...._wrappers import ResultWrapper
from ....pagination import SyncV4PagePaginationArray, AsyncV4PagePaginationArray
from ...._base_client import AsyncPaginator, make_request_options
from ....types.api_gateway.discovery import operation_edit_params, operation_list_params
from ....types.api_gateway.discovery import operation_edit_params, operation_list_params, operation_bulk_edit_params
from ....types.api_gateway.discovery_operation import DiscoveryOperation
from ....types.api_gateway.discovery.operation_edit_response import OperationEditResponse
from ....types.api_gateway.discovery.operation_bulk_edit_response import OperationBulkEditResponse

__all__ = ["OperationsResource", "AsyncOperationsResource"]

Expand Down Expand Up @@ -148,6 +149,47 @@ def list(
model=DiscoveryOperation,
)

def bulk_edit(
self,
*,
zone_id: str,
body: Dict[str, operation_bulk_edit_params.Body],
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> OperationBulkEditResponse:
"""
Update the `state` on one or more discovered operations
Args:
zone_id: Identifier
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
extra_body: Add additional JSON properties to the request
timeout: Override the client-level default timeout for this request, in seconds
"""
if not zone_id:
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
return self._patch(
f"/zones/{zone_id}/api_gateway/discovery/operations",
body=maybe_transform(body, operation_bulk_edit_params.OperationBulkEditParams),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
post_parser=ResultWrapper[OperationBulkEditResponse]._unwrapper,
),
cast_to=cast(Type[OperationBulkEditResponse], ResultWrapper[OperationBulkEditResponse]),
)

def edit(
self,
operation_id: str,
Expand Down Expand Up @@ -318,6 +360,47 @@ def list(
model=DiscoveryOperation,
)

async def bulk_edit(
self,
*,
zone_id: str,
body: Dict[str, operation_bulk_edit_params.Body],
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> OperationBulkEditResponse:
"""
Update the `state` on one or more discovered operations
Args:
zone_id: Identifier
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
extra_body: Add additional JSON properties to the request
timeout: Override the client-level default timeout for this request, in seconds
"""
if not zone_id:
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
return await self._patch(
f"/zones/{zone_id}/api_gateway/discovery/operations",
body=await async_maybe_transform(body, operation_bulk_edit_params.OperationBulkEditParams),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
post_parser=ResultWrapper[OperationBulkEditResponse]._unwrapper,
),
cast_to=cast(Type[OperationBulkEditResponse], ResultWrapper[OperationBulkEditResponse]),
)

async def edit(
self,
operation_id: str,
Expand Down Expand Up @@ -377,6 +460,9 @@ def __init__(self, operations: OperationsResource) -> None:
self.list = to_raw_response_wrapper(
operations.list,
)
self.bulk_edit = to_raw_response_wrapper(
operations.bulk_edit,
)
self.edit = to_raw_response_wrapper(
operations.edit,
)
Expand All @@ -389,6 +475,9 @@ def __init__(self, operations: AsyncOperationsResource) -> None:
self.list = async_to_raw_response_wrapper(
operations.list,
)
self.bulk_edit = async_to_raw_response_wrapper(
operations.bulk_edit,
)
self.edit = async_to_raw_response_wrapper(
operations.edit,
)
Expand All @@ -401,6 +490,9 @@ def __init__(self, operations: OperationsResource) -> None:
self.list = to_streamed_response_wrapper(
operations.list,
)
self.bulk_edit = to_streamed_response_wrapper(
operations.bulk_edit,
)
self.edit = to_streamed_response_wrapper(
operations.edit,
)
Expand All @@ -413,6 +505,9 @@ def __init__(self, operations: AsyncOperationsResource) -> None:
self.list = async_to_streamed_response_wrapper(
operations.list,
)
self.bulk_edit = async_to_streamed_response_wrapper(
operations.bulk_edit,
)
self.edit = async_to_streamed_response_wrapper(
operations.edit,
)
83 changes: 83 additions & 0 deletions src/cloudflare/resources/api_gateway/operations/operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
from ....types.api_gateway.operation_list_response import OperationListResponse
from ....types.api_gateway.operation_create_response import OperationCreateResponse
from ....types.api_gateway.operation_delete_response import OperationDeleteResponse
from ....types.api_gateway.operation_bulk_delete_response import OperationBulkDeleteResponse

__all__ = ["OperationsResource", "AsyncOperationsResource"]

Expand Down Expand Up @@ -229,6 +230,41 @@ def delete(
cast_to=OperationDeleteResponse,
)

def bulk_delete(
self,
*,
zone_id: str,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> OperationBulkDeleteResponse:
"""
Delete multiple operations
Args:
zone_id: Identifier
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
extra_body: Add additional JSON properties to the request
timeout: Override the client-level default timeout for this request, in seconds
"""
if not zone_id:
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
return self._delete(
f"/zones/{zone_id}/api_gateway/operations",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=OperationBulkDeleteResponse,
)

def get(
self,
operation_id: str,
Expand Down Expand Up @@ -469,6 +505,41 @@ async def delete(
cast_to=OperationDeleteResponse,
)

async def bulk_delete(
self,
*,
zone_id: str,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> OperationBulkDeleteResponse:
"""
Delete multiple operations
Args:
zone_id: Identifier
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
extra_body: Add additional JSON properties to the request
timeout: Override the client-level default timeout for this request, in seconds
"""
if not zone_id:
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
return await self._delete(
f"/zones/{zone_id}/api_gateway/operations",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=OperationBulkDeleteResponse,
)

async def get(
self,
operation_id: str,
Expand Down Expand Up @@ -533,6 +604,9 @@ def __init__(self, operations: OperationsResource) -> None:
self.delete = to_raw_response_wrapper(
operations.delete,
)
self.bulk_delete = to_raw_response_wrapper(
operations.bulk_delete,
)
self.get = to_raw_response_wrapper(
operations.get,
)
Expand All @@ -555,6 +629,9 @@ def __init__(self, operations: AsyncOperationsResource) -> None:
self.delete = async_to_raw_response_wrapper(
operations.delete,
)
self.bulk_delete = async_to_raw_response_wrapper(
operations.bulk_delete,
)
self.get = async_to_raw_response_wrapper(
operations.get,
)
Expand All @@ -577,6 +654,9 @@ def __init__(self, operations: OperationsResource) -> None:
self.delete = to_streamed_response_wrapper(
operations.delete,
)
self.bulk_delete = to_streamed_response_wrapper(
operations.bulk_delete,
)
self.get = to_streamed_response_wrapper(
operations.get,
)
Expand All @@ -599,6 +679,9 @@ def __init__(self, operations: AsyncOperationsResource) -> None:
self.delete = async_to_streamed_response_wrapper(
operations.delete,
)
self.bulk_delete = async_to_streamed_response_wrapper(
operations.bulk_delete,
)
self.get = async_to_streamed_response_wrapper(
operations.get,
)
Expand Down
Loading

0 comments on commit ad9193a

Please sign in to comment.