Skip to content

Commit c71f02d

Browse files
chore(api): update composite API spec
1 parent 314afb0 commit c71f02d

8 files changed

Lines changed: 777 additions & 6 deletions

File tree

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 1808
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-60f68ce3e803f1dd3014b7f64fd74f3d21342433c2f2b8ce023fdcdf56178709.yml
3-
openapi_spec_hash: 1eb3735858f3473597211658da60498d
4-
config_hash: 22d1fdacde5ac0fd404d3b7c095aac71
1+
configured_endpoints: 1811
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-6dfd94d5a1383db126dbbb88603080a057b20788d5195dbd31cfe7fdc96ccf1f.yml
3+
openapi_spec_hash: 6e5322c0512c4a28aacaa0ebb3e79f46
4+
config_hash: 4e184f6d41e4088670e95ba876c8238b

api.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,6 +1094,8 @@ from cloudflare.types.dns import (
10941094
RecordExportResponse,
10951095
RecordImportResponse,
10961096
RecordScanResponse,
1097+
RecordScanReviewResponse,
1098+
RecordScanTriggerResponse,
10971099
)
10981100
```
10991101

@@ -1109,6 +1111,9 @@ Methods:
11091111
- <code title="get /zones/{zone_id}/dns_records/{dns_record_id}">client.dns.records.<a href="./src/cloudflare/resources/dns/records.py">get</a>(dns_record_id, \*, zone_id) -> <a href="./src/cloudflare/types/dns/record_response.py">Optional[RecordResponse]</a></code>
11101112
- <code title="post /zones/{zone_id}/dns_records/import">client.dns.records.<a href="./src/cloudflare/resources/dns/records.py">import\_</a>(\*, zone_id, \*\*<a href="src/cloudflare/types/dns/record_import_params.py">params</a>) -> <a href="./src/cloudflare/types/dns/record_import_response.py">Optional[RecordImportResponse]</a></code>
11111113
- <code title="post /zones/{zone_id}/dns_records/scan">client.dns.records.<a href="./src/cloudflare/resources/dns/records.py">scan</a>(\*, zone_id, \*\*<a href="src/cloudflare/types/dns/record_scan_params.py">params</a>) -> <a href="./src/cloudflare/types/dns/record_scan_response.py">Optional[RecordScanResponse]</a></code>
1114+
- <code title="get /zones/{zone_id}/dns_records/scan/review">client.dns.records.<a href="./src/cloudflare/resources/dns/records.py">scan_list</a>(\*, zone_id) -> <a href="./src/cloudflare/types/dns/record_response.py">SyncSinglePage[RecordResponse]</a></code>
1115+
- <code title="post /zones/{zone_id}/dns_records/scan/review">client.dns.records.<a href="./src/cloudflare/resources/dns/records.py">scan_review</a>(\*, zone_id, \*\*<a href="src/cloudflare/types/dns/record_scan_review_params.py">params</a>) -> <a href="./src/cloudflare/types/dns/record_scan_review_response.py">Optional[RecordScanReviewResponse]</a></code>
1116+
- <code title="post /zones/{zone_id}/dns_records/scan/trigger">client.dns.records.<a href="./src/cloudflare/resources/dns/records.py">scan_trigger</a>(\*, zone_id) -> <a href="./src/cloudflare/types/dns/record_scan_trigger_response.py">RecordScanTriggerResponse</a></code>
11121117

11131118
## Settings
11141119

src/cloudflare/resources/dns/records.py

Lines changed: 298 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@
2727
record_create_params,
2828
record_import_params,
2929
record_update_params,
30+
record_scan_review_params,
3031
)
31-
from ...pagination import SyncV4PagePaginationArray, AsyncV4PagePaginationArray
32+
from ...pagination import SyncSinglePage, AsyncSinglePage, SyncV4PagePaginationArray, AsyncV4PagePaginationArray
3233
from ..._base_client import AsyncPaginator, make_request_options
3334
from ...types.dns.ttl_param import TTLParam
3435
from ...types.dns.record_tags import RecordTags
@@ -40,6 +41,8 @@
4041
from ...types.dns.record_batch_response import RecordBatchResponse
4142
from ...types.dns.record_delete_response import RecordDeleteResponse
4243
from ...types.dns.record_import_response import RecordImportResponse
44+
from ...types.dns.record_scan_review_response import RecordScanReviewResponse
45+
from ...types.dns.record_scan_trigger_response import RecordScanTriggerResponse
4346

4447
__all__ = ["RecordsResource", "AsyncRecordsResource"]
4548

@@ -4973,6 +4976,135 @@ def scan(
49734976
cast_to=cast(Type[Optional[RecordScanResponse]], ResultWrapper[RecordScanResponse]),
49744977
)
49754978

4979+
def scan_list(
4980+
self,
4981+
*,
4982+
zone_id: str,
4983+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
4984+
# The extra values given here take precedence over values defined on the client or passed to this method.
4985+
extra_headers: Headers | None = None,
4986+
extra_query: Query | None = None,
4987+
extra_body: Body | None = None,
4988+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
4989+
) -> SyncSinglePage[RecordResponse]:
4990+
"""
4991+
Retrieves the list of DNS records discovered up to this point by the
4992+
asynchronous scan. These records are temporary until explicitly accepted or
4993+
rejected via `POST /scan/review`. Additional records may be discovered by the
4994+
scan later.
4995+
4996+
Args:
4997+
zone_id: Identifier.
4998+
4999+
extra_headers: Send extra headers
5000+
5001+
extra_query: Add additional query parameters to the request
5002+
5003+
extra_body: Add additional JSON properties to the request
5004+
5005+
timeout: Override the client-level default timeout for this request, in seconds
5006+
"""
5007+
if not zone_id:
5008+
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
5009+
return self._get_api_list(
5010+
f"/zones/{zone_id}/dns_records/scan/review",
5011+
page=SyncSinglePage[RecordResponse],
5012+
options=make_request_options(
5013+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
5014+
),
5015+
model=cast(Any, RecordResponse), # Union types cannot be passed in as arguments in the type system
5016+
)
5017+
5018+
def scan_review(
5019+
self,
5020+
*,
5021+
zone_id: str,
5022+
accepts: Iterable[record_scan_review_params.Accept] | Omit = omit,
5023+
rejects: Iterable[record_scan_review_params.Reject] | Omit = omit,
5024+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
5025+
# The extra values given here take precedence over values defined on the client or passed to this method.
5026+
extra_headers: Headers | None = None,
5027+
extra_query: Query | None = None,
5028+
extra_body: Body | None = None,
5029+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
5030+
) -> Optional[RecordScanReviewResponse]:
5031+
"""Accept or reject DNS records found by the DNS records scan.
5032+
5033+
Accepted records
5034+
will be permanently added to the zone, while rejected records will be
5035+
permanently deleted.
5036+
5037+
Args:
5038+
zone_id: Identifier.
5039+
5040+
extra_headers: Send extra headers
5041+
5042+
extra_query: Add additional query parameters to the request
5043+
5044+
extra_body: Add additional JSON properties to the request
5045+
5046+
timeout: Override the client-level default timeout for this request, in seconds
5047+
"""
5048+
if not zone_id:
5049+
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
5050+
return self._post(
5051+
f"/zones/{zone_id}/dns_records/scan/review",
5052+
body=maybe_transform(
5053+
{
5054+
"accepts": accepts,
5055+
"rejects": rejects,
5056+
},
5057+
record_scan_review_params.RecordScanReviewParams,
5058+
),
5059+
options=make_request_options(
5060+
extra_headers=extra_headers,
5061+
extra_query=extra_query,
5062+
extra_body=extra_body,
5063+
timeout=timeout,
5064+
post_parser=ResultWrapper[Optional[RecordScanReviewResponse]]._unwrapper,
5065+
),
5066+
cast_to=cast(Type[Optional[RecordScanReviewResponse]], ResultWrapper[RecordScanReviewResponse]),
5067+
)
5068+
5069+
def scan_trigger(
5070+
self,
5071+
*,
5072+
zone_id: str,
5073+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
5074+
# The extra values given here take precedence over values defined on the client or passed to this method.
5075+
extra_headers: Headers | None = None,
5076+
extra_query: Query | None = None,
5077+
extra_body: Body | None = None,
5078+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
5079+
) -> RecordScanTriggerResponse:
5080+
"""Initiates an asynchronous scan for common DNS records on your domain.
5081+
5082+
Note that
5083+
this **does not** automatically add records to your zone. The scan runs in the
5084+
background, and results can be reviewed later using the `/scan/review`
5085+
endpoints. Useful if you haven't updated your nameservers yet.
5086+
5087+
Args:
5088+
zone_id: Identifier.
5089+
5090+
extra_headers: Send extra headers
5091+
5092+
extra_query: Add additional query parameters to the request
5093+
5094+
extra_body: Add additional JSON properties to the request
5095+
5096+
timeout: Override the client-level default timeout for this request, in seconds
5097+
"""
5098+
if not zone_id:
5099+
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
5100+
return self._post(
5101+
f"/zones/{zone_id}/dns_records/scan/trigger",
5102+
options=make_request_options(
5103+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
5104+
),
5105+
cast_to=RecordScanTriggerResponse,
5106+
)
5107+
49765108

49775109
class AsyncRecordsResource(AsyncAPIResource):
49785110
@cached_property
@@ -9903,6 +10035,135 @@ async def scan(
990310035
cast_to=cast(Type[Optional[RecordScanResponse]], ResultWrapper[RecordScanResponse]),
990410036
)
990510037

10038+
def scan_list(
10039+
self,
10040+
*,
10041+
zone_id: str,
10042+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
10043+
# The extra values given here take precedence over values defined on the client or passed to this method.
10044+
extra_headers: Headers | None = None,
10045+
extra_query: Query | None = None,
10046+
extra_body: Body | None = None,
10047+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
10048+
) -> AsyncPaginator[RecordResponse, AsyncSinglePage[RecordResponse]]:
10049+
"""
10050+
Retrieves the list of DNS records discovered up to this point by the
10051+
asynchronous scan. These records are temporary until explicitly accepted or
10052+
rejected via `POST /scan/review`. Additional records may be discovered by the
10053+
scan later.
10054+
10055+
Args:
10056+
zone_id: Identifier.
10057+
10058+
extra_headers: Send extra headers
10059+
10060+
extra_query: Add additional query parameters to the request
10061+
10062+
extra_body: Add additional JSON properties to the request
10063+
10064+
timeout: Override the client-level default timeout for this request, in seconds
10065+
"""
10066+
if not zone_id:
10067+
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
10068+
return self._get_api_list(
10069+
f"/zones/{zone_id}/dns_records/scan/review",
10070+
page=AsyncSinglePage[RecordResponse],
10071+
options=make_request_options(
10072+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
10073+
),
10074+
model=cast(Any, RecordResponse), # Union types cannot be passed in as arguments in the type system
10075+
)
10076+
10077+
async def scan_review(
10078+
self,
10079+
*,
10080+
zone_id: str,
10081+
accepts: Iterable[record_scan_review_params.Accept] | Omit = omit,
10082+
rejects: Iterable[record_scan_review_params.Reject] | Omit = omit,
10083+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
10084+
# The extra values given here take precedence over values defined on the client or passed to this method.
10085+
extra_headers: Headers | None = None,
10086+
extra_query: Query | None = None,
10087+
extra_body: Body | None = None,
10088+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
10089+
) -> Optional[RecordScanReviewResponse]:
10090+
"""Accept or reject DNS records found by the DNS records scan.
10091+
10092+
Accepted records
10093+
will be permanently added to the zone, while rejected records will be
10094+
permanently deleted.
10095+
10096+
Args:
10097+
zone_id: Identifier.
10098+
10099+
extra_headers: Send extra headers
10100+
10101+
extra_query: Add additional query parameters to the request
10102+
10103+
extra_body: Add additional JSON properties to the request
10104+
10105+
timeout: Override the client-level default timeout for this request, in seconds
10106+
"""
10107+
if not zone_id:
10108+
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
10109+
return await self._post(
10110+
f"/zones/{zone_id}/dns_records/scan/review",
10111+
body=await async_maybe_transform(
10112+
{
10113+
"accepts": accepts,
10114+
"rejects": rejects,
10115+
},
10116+
record_scan_review_params.RecordScanReviewParams,
10117+
),
10118+
options=make_request_options(
10119+
extra_headers=extra_headers,
10120+
extra_query=extra_query,
10121+
extra_body=extra_body,
10122+
timeout=timeout,
10123+
post_parser=ResultWrapper[Optional[RecordScanReviewResponse]]._unwrapper,
10124+
),
10125+
cast_to=cast(Type[Optional[RecordScanReviewResponse]], ResultWrapper[RecordScanReviewResponse]),
10126+
)
10127+
10128+
async def scan_trigger(
10129+
self,
10130+
*,
10131+
zone_id: str,
10132+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
10133+
# The extra values given here take precedence over values defined on the client or passed to this method.
10134+
extra_headers: Headers | None = None,
10135+
extra_query: Query | None = None,
10136+
extra_body: Body | None = None,
10137+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
10138+
) -> RecordScanTriggerResponse:
10139+
"""Initiates an asynchronous scan for common DNS records on your domain.
10140+
10141+
Note that
10142+
this **does not** automatically add records to your zone. The scan runs in the
10143+
background, and results can be reviewed later using the `/scan/review`
10144+
endpoints. Useful if you haven't updated your nameservers yet.
10145+
10146+
Args:
10147+
zone_id: Identifier.
10148+
10149+
extra_headers: Send extra headers
10150+
10151+
extra_query: Add additional query parameters to the request
10152+
10153+
extra_body: Add additional JSON properties to the request
10154+
10155+
timeout: Override the client-level default timeout for this request, in seconds
10156+
"""
10157+
if not zone_id:
10158+
raise ValueError(f"Expected a non-empty value for `zone_id` but received {zone_id!r}")
10159+
return await self._post(
10160+
f"/zones/{zone_id}/dns_records/scan/trigger",
10161+
options=make_request_options(
10162+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
10163+
),
10164+
cast_to=RecordScanTriggerResponse,
10165+
)
10166+
990610167

990710168
class RecordsResourceWithRawResponse:
990810169
def __init__(self, records: RecordsResource) -> None:
@@ -9940,6 +10201,15 @@ def __init__(self, records: RecordsResource) -> None:
994010201
records.scan, # pyright: ignore[reportDeprecated],
994110202
)
994210203
)
10204+
self.scan_list = to_raw_response_wrapper(
10205+
records.scan_list,
10206+
)
10207+
self.scan_review = to_raw_response_wrapper(
10208+
records.scan_review,
10209+
)
10210+
self.scan_trigger = to_raw_response_wrapper(
10211+
records.scan_trigger,
10212+
)
994310213

994410214

994510215
class AsyncRecordsResourceWithRawResponse:
@@ -9978,6 +10248,15 @@ def __init__(self, records: AsyncRecordsResource) -> None:
997810248
records.scan, # pyright: ignore[reportDeprecated],
997910249
)
998010250
)
10251+
self.scan_list = async_to_raw_response_wrapper(
10252+
records.scan_list,
10253+
)
10254+
self.scan_review = async_to_raw_response_wrapper(
10255+
records.scan_review,
10256+
)
10257+
self.scan_trigger = async_to_raw_response_wrapper(
10258+
records.scan_trigger,
10259+
)
998110260

998210261

998310262
class RecordsResourceWithStreamingResponse:
@@ -10016,6 +10295,15 @@ def __init__(self, records: RecordsResource) -> None:
1001610295
records.scan, # pyright: ignore[reportDeprecated],
1001710296
)
1001810297
)
10298+
self.scan_list = to_streamed_response_wrapper(
10299+
records.scan_list,
10300+
)
10301+
self.scan_review = to_streamed_response_wrapper(
10302+
records.scan_review,
10303+
)
10304+
self.scan_trigger = to_streamed_response_wrapper(
10305+
records.scan_trigger,
10306+
)
1001910307

1002010308

1002110309
class AsyncRecordsResourceWithStreamingResponse:
@@ -10054,3 +10342,12 @@ def __init__(self, records: AsyncRecordsResource) -> None:
1005410342
records.scan, # pyright: ignore[reportDeprecated],
1005510343
)
1005610344
)
10345+
self.scan_list = async_to_streamed_response_wrapper(
10346+
records.scan_list,
10347+
)
10348+
self.scan_review = async_to_streamed_response_wrapper(
10349+
records.scan_review,
10350+
)
10351+
self.scan_trigger = async_to_streamed_response_wrapper(
10352+
records.scan_trigger,
10353+
)

src/cloudflare/types/dns/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,6 @@
6363
from .record_delete_response import RecordDeleteResponse as RecordDeleteResponse
6464
from .record_export_response import RecordExportResponse as RecordExportResponse
6565
from .record_import_response import RecordImportResponse as RecordImportResponse
66+
from .record_scan_review_params import RecordScanReviewParams as RecordScanReviewParams
67+
from .record_scan_review_response import RecordScanReviewResponse as RecordScanReviewResponse
68+
from .record_scan_trigger_response import RecordScanTriggerResponse as RecordScanTriggerResponse

0 commit comments

Comments
 (0)