Skip to content

Commit 1239774

Browse files
feat(api): api update
1 parent de3c367 commit 1239774

File tree

8 files changed

+376
-4
lines changed

8 files changed

+376
-4
lines changed

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 1741
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-6773492e97af018fae5cac5460979be509a3bb6c4d14ce80d805cb9e1328aa4f.yml
3-
openapi_spec_hash: de4f43cb837ae9de82f97c42520bd63d
1+
configured_endpoints: 1742
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-efc58a88a6028fef3d08457bbffc331b54e2b8153dd5e3f4c693517d0c3d073e.yml
3+
openapi_spec_hash: bfc60ab47d6b393226b7c5c2014fed18
44
config_hash: cb36b26a5fcc81fa60c65016b1e74f0a

api.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,13 @@ Methods:
160160
Types:
161161

162162
```python
163-
from cloudflare.types.ips import IPs
163+
from cloudflare.types.ips import IPs, IPListResponse
164164
```
165165

166+
Methods:
167+
168+
- <code title="get /ips">client.ips.<a href="./src/cloudflare/resources/ips.py">list</a>(\*\*<a href="src/cloudflare/types/ips/ip_list_params.py">params</a>) -> <a href="./src/cloudflare/types/ips/ip_list_response.py">Optional[IPListResponse]</a></code>
169+
166170
# Memberships
167171

168172
Types:

src/cloudflare/_client.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
acm,
4242
dns,
4343
iam,
44+
ips,
4445
rum,
4546
ssl,
4647
argo,
@@ -129,6 +130,7 @@
129130
magic_network_monitoring,
130131
origin_post_quantum_encryption,
131132
)
133+
from .resources.ips import IPsResource, AsyncIPsResource
132134
from .resources.ai.ai import AIResource, AsyncAIResource
133135
from .resources.d1.d1 import D1Resource, AsyncD1Resource
134136
from .resources.kv.kv import KVResource, AsyncKVResource
@@ -353,6 +355,12 @@ def origin_ca_certificates(self) -> OriginCACertificatesResource:
353355

354356
return OriginCACertificatesResource(self)
355357

358+
@cached_property
359+
def ips(self) -> IPsResource:
360+
from .resources.ips import IPsResource
361+
362+
return IPsResource(self)
363+
356364
@cached_property
357365
def memberships(self) -> MembershipsResource:
358366
from .resources.memberships import MembershipsResource
@@ -1179,6 +1187,12 @@ def origin_ca_certificates(self) -> AsyncOriginCACertificatesResource:
11791187

11801188
return AsyncOriginCACertificatesResource(self)
11811189

1190+
@cached_property
1191+
def ips(self) -> AsyncIPsResource:
1192+
from .resources.ips import AsyncIPsResource
1193+
1194+
return AsyncIPsResource(self)
1195+
11821196
@cached_property
11831197
def memberships(self) -> AsyncMembershipsResource:
11841198
from .resources.memberships import AsyncMembershipsResource
@@ -1933,6 +1947,12 @@ def origin_ca_certificates(self) -> origin_ca_certificates.OriginCACertificatesR
19331947

19341948
return OriginCACertificatesResourceWithRawResponse(self._client.origin_ca_certificates)
19351949

1950+
@cached_property
1951+
def ips(self) -> ips.IPsResourceWithRawResponse:
1952+
from .resources.ips import IPsResourceWithRawResponse
1953+
1954+
return IPsResourceWithRawResponse(self._client.ips)
1955+
19361956
@cached_property
19371957
def memberships(self) -> memberships.MembershipsResourceWithRawResponse:
19381958
from .resources.memberships import MembershipsResourceWithRawResponse
@@ -2506,6 +2526,12 @@ def origin_ca_certificates(self) -> origin_ca_certificates.AsyncOriginCACertific
25062526

25072527
return AsyncOriginCACertificatesResourceWithRawResponse(self._client.origin_ca_certificates)
25082528

2529+
@cached_property
2530+
def ips(self) -> ips.AsyncIPsResourceWithRawResponse:
2531+
from .resources.ips import AsyncIPsResourceWithRawResponse
2532+
2533+
return AsyncIPsResourceWithRawResponse(self._client.ips)
2534+
25092535
@cached_property
25102536
def memberships(self) -> memberships.AsyncMembershipsResourceWithRawResponse:
25112537
from .resources.memberships import AsyncMembershipsResourceWithRawResponse
@@ -3079,6 +3105,12 @@ def origin_ca_certificates(self) -> origin_ca_certificates.OriginCACertificatesR
30793105

30803106
return OriginCACertificatesResourceWithStreamingResponse(self._client.origin_ca_certificates)
30813107

3108+
@cached_property
3109+
def ips(self) -> ips.IPsResourceWithStreamingResponse:
3110+
from .resources.ips import IPsResourceWithStreamingResponse
3111+
3112+
return IPsResourceWithStreamingResponse(self._client.ips)
3113+
30823114
@cached_property
30833115
def memberships(self) -> memberships.MembershipsResourceWithStreamingResponse:
30843116
from .resources.memberships import MembershipsResourceWithStreamingResponse
@@ -3652,6 +3684,12 @@ def origin_ca_certificates(self) -> origin_ca_certificates.AsyncOriginCACertific
36523684

36533685
return AsyncOriginCACertificatesResourceWithStreamingResponse(self._client.origin_ca_certificates)
36543686

3687+
@cached_property
3688+
def ips(self) -> ips.AsyncIPsResourceWithStreamingResponse:
3689+
from .resources.ips import AsyncIPsResourceWithStreamingResponse
3690+
3691+
return AsyncIPsResourceWithStreamingResponse(self._client.ips)
3692+
36553693
@cached_property
36563694
def memberships(self) -> memberships.AsyncMembershipsResourceWithStreamingResponse:
36573695
from .resources.memberships import AsyncMembershipsResourceWithStreamingResponse

src/cloudflare/resources/ips.py

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing import Any, Optional, cast
6+
7+
import httpx
8+
9+
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
10+
from .._utils import maybe_transform, async_maybe_transform
11+
from .._compat import cached_property
12+
from .._resource import SyncAPIResource, AsyncAPIResource
13+
from .._response import (
14+
to_raw_response_wrapper,
15+
to_streamed_response_wrapper,
16+
async_to_raw_response_wrapper,
17+
async_to_streamed_response_wrapper,
18+
)
19+
from .._wrappers import ResultWrapper
20+
from ..types.ips import ip_list_params
21+
from .._base_client import make_request_options
22+
from ..types.ips.ip_list_response import IPListResponse
23+
24+
__all__ = ["IPsResource", "AsyncIPsResource"]
25+
26+
27+
class IPsResource(SyncAPIResource):
28+
@cached_property
29+
def with_raw_response(self) -> IPsResourceWithRawResponse:
30+
"""
31+
This property can be used as a prefix for any HTTP method call to return
32+
the raw response object instead of the parsed content.
33+
34+
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
35+
"""
36+
return IPsResourceWithRawResponse(self)
37+
38+
@cached_property
39+
def with_streaming_response(self) -> IPsResourceWithStreamingResponse:
40+
"""
41+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
42+
43+
For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response
44+
"""
45+
return IPsResourceWithStreamingResponse(self)
46+
47+
def list(
48+
self,
49+
*,
50+
networks: str | NotGiven = NOT_GIVEN,
51+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
52+
# The extra values given here take precedence over values defined on the client or passed to this method.
53+
extra_headers: Headers | None = None,
54+
extra_query: Query | None = None,
55+
extra_body: Body | None = None,
56+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
57+
) -> Optional[IPListResponse]:
58+
"""
59+
Get IPs used on the Cloudflare/JD Cloud network, see
60+
https://www.cloudflare.com/ips for Cloudflare IPs or
61+
https://developers.cloudflare.com/china-network/reference/infrastructure/ for JD
62+
Cloud IPs.
63+
64+
Args:
65+
networks: Specified as `jdcloud` to list IPs used by JD Cloud data centers.
66+
67+
extra_headers: Send extra headers
68+
69+
extra_query: Add additional query parameters to the request
70+
71+
extra_body: Add additional JSON properties to the request
72+
73+
timeout: Override the client-level default timeout for this request, in seconds
74+
"""
75+
return cast(
76+
Optional[IPListResponse],
77+
self._get(
78+
"/ips",
79+
options=make_request_options(
80+
extra_headers=extra_headers,
81+
extra_query=extra_query,
82+
extra_body=extra_body,
83+
timeout=timeout,
84+
query=maybe_transform({"networks": networks}, ip_list_params.IPListParams),
85+
post_parser=ResultWrapper[Optional[IPListResponse]]._unwrapper,
86+
),
87+
cast_to=cast(
88+
Any, ResultWrapper[IPListResponse]
89+
), # Union types cannot be passed in as arguments in the type system
90+
),
91+
)
92+
93+
94+
class AsyncIPsResource(AsyncAPIResource):
95+
@cached_property
96+
def with_raw_response(self) -> AsyncIPsResourceWithRawResponse:
97+
"""
98+
This property can be used as a prefix for any HTTP method call to return
99+
the raw response object instead of the parsed content.
100+
101+
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
102+
"""
103+
return AsyncIPsResourceWithRawResponse(self)
104+
105+
@cached_property
106+
def with_streaming_response(self) -> AsyncIPsResourceWithStreamingResponse:
107+
"""
108+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
109+
110+
For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response
111+
"""
112+
return AsyncIPsResourceWithStreamingResponse(self)
113+
114+
async def list(
115+
self,
116+
*,
117+
networks: str | NotGiven = NOT_GIVEN,
118+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
119+
# The extra values given here take precedence over values defined on the client or passed to this method.
120+
extra_headers: Headers | None = None,
121+
extra_query: Query | None = None,
122+
extra_body: Body | None = None,
123+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
124+
) -> Optional[IPListResponse]:
125+
"""
126+
Get IPs used on the Cloudflare/JD Cloud network, see
127+
https://www.cloudflare.com/ips for Cloudflare IPs or
128+
https://developers.cloudflare.com/china-network/reference/infrastructure/ for JD
129+
Cloud IPs.
130+
131+
Args:
132+
networks: Specified as `jdcloud` to list IPs used by JD Cloud data centers.
133+
134+
extra_headers: Send extra headers
135+
136+
extra_query: Add additional query parameters to the request
137+
138+
extra_body: Add additional JSON properties to the request
139+
140+
timeout: Override the client-level default timeout for this request, in seconds
141+
"""
142+
return cast(
143+
Optional[IPListResponse],
144+
await self._get(
145+
"/ips",
146+
options=make_request_options(
147+
extra_headers=extra_headers,
148+
extra_query=extra_query,
149+
extra_body=extra_body,
150+
timeout=timeout,
151+
query=await async_maybe_transform({"networks": networks}, ip_list_params.IPListParams),
152+
post_parser=ResultWrapper[Optional[IPListResponse]]._unwrapper,
153+
),
154+
cast_to=cast(
155+
Any, ResultWrapper[IPListResponse]
156+
), # Union types cannot be passed in as arguments in the type system
157+
),
158+
)
159+
160+
161+
class IPsResourceWithRawResponse:
162+
def __init__(self, ips: IPsResource) -> None:
163+
self._ips = ips
164+
165+
self.list = to_raw_response_wrapper(
166+
ips.list,
167+
)
168+
169+
170+
class AsyncIPsResourceWithRawResponse:
171+
def __init__(self, ips: AsyncIPsResource) -> None:
172+
self._ips = ips
173+
174+
self.list = async_to_raw_response_wrapper(
175+
ips.list,
176+
)
177+
178+
179+
class IPsResourceWithStreamingResponse:
180+
def __init__(self, ips: IPsResource) -> None:
181+
self._ips = ips
182+
183+
self.list = to_streamed_response_wrapper(
184+
ips.list,
185+
)
186+
187+
188+
class AsyncIPsResourceWithStreamingResponse:
189+
def __init__(self, ips: AsyncIPsResource) -> None:
190+
self._ips = ips
191+
192+
self.list = async_to_streamed_response_wrapper(
193+
ips.list,
194+
)

src/cloudflare/types/ips/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@
33
from __future__ import annotations
44

55
from .ips import IPs as IPs
6+
from .ip_list_params import IPListParams as IPListParams
7+
from .ip_list_response import IPListResponse as IPListResponse
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing_extensions import TypedDict
6+
7+
__all__ = ["IPListParams"]
8+
9+
10+
class IPListParams(TypedDict, total=False):
11+
networks: str
12+
"""Specified as `jdcloud` to list IPs used by JD Cloud data centers."""
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing import List, Union, Optional
4+
from typing_extensions import TypeAlias
5+
6+
from ..._models import BaseModel
7+
8+
__all__ = ["IPListResponse", "PublicIPIPs", "PublicIPIPsJDCloud"]
9+
10+
11+
class PublicIPIPs(BaseModel):
12+
etag: Optional[str] = None
13+
"""A digest of the IP data. Useful for determining if the data has changed."""
14+
15+
ipv4_cidrs: Optional[List[str]] = None
16+
"""List of Cloudflare IPv4 CIDR addresses."""
17+
18+
ipv6_cidrs: Optional[List[str]] = None
19+
"""List of Cloudflare IPv6 CIDR addresses."""
20+
21+
22+
class PublicIPIPsJDCloud(BaseModel):
23+
etag: Optional[str] = None
24+
"""A digest of the IP data. Useful for determining if the data has changed."""
25+
26+
ipv4_cidrs: Optional[List[str]] = None
27+
"""List of Cloudflare IPv4 CIDR addresses."""
28+
29+
ipv6_cidrs: Optional[List[str]] = None
30+
"""List of Cloudflare IPv6 CIDR addresses."""
31+
32+
jdcloud_cidrs: Optional[List[str]] = None
33+
"""List IPv4 and IPv6 CIDRs, only populated if `?networks=jdcloud` is used."""
34+
35+
36+
IPListResponse: TypeAlias = Union[PublicIPIPs, PublicIPIPsJDCloud]

0 commit comments

Comments
 (0)