Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
86bdf98
chore(internal): codegen related update
stainless-app[bot] Jun 12, 2026
72eb205
chore(api): update composite API spec
stainless-app[bot] Jun 12, 2026
45260b9
chore(api): update composite API spec
stainless-app[bot] Jun 12, 2026
7677b4c
feat: feat(tenants): add tenants resource SDK mapping [PT-2567]
stainless-app[bot] Jun 12, 2026
5bb529c
feat: feat(ct_alerter): add CT alerting subscription endpoint mappings
stainless-app[bot] Jun 12, 2026
14409ae
codegen metadata
stainless-app[bot] Jun 12, 2026
04f9fee
codegen metadata
stainless-app[bot] Jun 13, 2026
2fcdb13
codegen metadata
stainless-app[bot] Jun 13, 2026
16d8e61
codegen metadata
stainless-app[bot] Jun 15, 2026
eeec39a
chore(api): update composite API spec
stainless-app[bot] Jun 15, 2026
b982ff3
feat: feat(ai_gateway): add custom_providers resource
stainless-app[bot] Jun 15, 2026
0ff89f9
chore(api): update composite API spec
stainless-app[bot] Jun 15, 2026
5d8e422
feat: feat(api): map ipsec_tunnels/psk, sites/app_policies and cf1_si…
stainless-app[bot] Jun 15, 2026
3e26c73
chore(api): update composite API spec
stainless-app[bot] Jun 15, 2026
3817b57
chore(api): update composite API spec
stainless-app[bot] Jun 15, 2026
05e802d
chore(api): update composite API spec
stainless-app[bot] Jun 15, 2026
656f973
chore(api): update composite API spec
stainless-app[bot] Jun 16, 2026
f94e4de
chore(api): update composite API spec
stainless-app[bot] Jun 16, 2026
c7202c9
chore(api): update composite API spec
stainless-app[bot] Jun 16, 2026
f8e14b9
codegen metadata
stainless-app[bot] Jun 16, 2026
25b2838
codegen metadata
stainless-app[bot] Jun 16, 2026
2b0e738
chore(api): update composite API spec
stainless-app[bot] Jun 16, 2026
64469d6
Merge pull request #2732 from cloudflare/staging-next
ssicard Jun 16, 2026
87ee898
release: 5.4.0
stainless-app[bot] Jun 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: feat(api): map ipsec_tunnels/psk, sites/app_policies and cf1_si…
…tes for magic-on-ramps

* fix(api): remove unnecessary skip_test_reason from ipsec_tunnels psk_set

psk_set was carrying a copied "TODO: investigate broken test" skip, but it is a new endpoint whose generated test has never run. Its closest analogue psk_generate (also POST) is unskipped and passes, and psk_set does not share the modified_ipsec_tunnel response wrapper that breaks the update/bulk_update tests. Removing the skip so the test runs; if it genuinely fails downstream it can be re-added with a concrete reason.

* fix(api): remove app_policies mapping from magic-on-ramps

app_policies has no implementation in conduit-api and none is planned, so mapping GET /accounts/{account_id}/magic/sites/{site_id}/app_policies would document a route that does not exist. Removing the skipped entry; psk_set and cf1_sites are unaffected.

* fix(api): add models, terraform, skip guards for magic-on-ramps resources

- Add skip_test_reason to psk_set (aligns with sibling update/bulk_update)
- Add skip guard to app_policies (aligns with sibling app_configuration)
- Add terraform.name and models block to cf1_sites
- Add models block to cf1_sites.ramps sub-resource

* feat(api): map cf1_sites and ramps for magic-on-ramps

Add cf1_sites resource with CRUD methods and ramps sub-resource
to magic_transit in Stainless config for SDK generation.

Ref: APIX-667, APIX-795

* feat(api): map ipsec_tunnels/psk and sites/app_policies for magic-on-ramps

Add Stainless config mappings for two undocumented routes from APIX-667:
- ipsec_tunnels.psk_set: POST /accounts/{account_id}/magic/ipsec_tunnels/psk
- sites.app_policies.list: GET /accounts/{account_id}/magic/sites/{site_id}/app_policies
  • Loading branch information
stainless-app[bot] committed Jun 16, 2026
commit 5d8e422736d8e044d2c73065cbb8595573b2656d
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 2388
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare/cloudflare-bc7ee140b4763ca4b45594b9db8d569431c061fb81c261ddb5a3a247973dd741.yml
configured_endpoints: 2398
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare/cloudflare-2b344db846f73d18cb70c546df5b9ba346937191f97a00052bf626946391c7e2.yml
openapi_spec_hash: 30882bab9ab718768db2497c4638fe7d
config_hash: f81f9e27d86c53b33ee1f1f3654ef3c6
config_hash: 2f529580a17438fc62cd0b47db41b6f1
14 changes: 14 additions & 0 deletions src/cloudflare/resources/magic_transit/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,14 @@
RoutesResourceWithStreamingResponse,
AsyncRoutesResourceWithStreamingResponse,
)
from .cf1_sites import (
Cf1SitesResource,
AsyncCf1SitesResource,
Cf1SitesResourceWithRawResponse,
AsyncCf1SitesResourceWithRawResponse,
Cf1SitesResourceWithStreamingResponse,
AsyncCf1SitesResourceWithStreamingResponse,
)
from .connectors import (
ConnectorsResource,
AsyncConnectorsResource,
Expand Down Expand Up @@ -116,6 +124,12 @@
"AsyncConnectorsResourceWithRawResponse",
"ConnectorsResourceWithStreamingResponse",
"AsyncConnectorsResourceWithStreamingResponse",
"Cf1SitesResource",
"AsyncCf1SitesResource",
"Cf1SitesResourceWithRawResponse",
"AsyncCf1SitesResourceWithRawResponse",
"Cf1SitesResourceWithStreamingResponse",
"AsyncCf1SitesResourceWithStreamingResponse",
"PCAPsResource",
"AsyncPCAPsResource",
"PCAPsResourceWithRawResponse",
Expand Down
33 changes: 33 additions & 0 deletions src/cloudflare/resources/magic_transit/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ from cloudflare.types.magic_transit import (
IPSECTunnelBulkUpdateResponse,
IPSECTunnelGetResponse,
IPSECTunnelPSKGenerateResponse,
IPSECTunnelPSKSetResponse,
)
```

Expand All @@ -98,6 +99,7 @@ Methods:
- <code title="put /accounts/{account_id}/magic/ipsec_tunnels">client.magic_transit.ipsec_tunnels.<a href="./src/cloudflare/resources/magic_transit/ipsec_tunnels.py">bulk_update</a>(\*, account_id, \*\*<a href="src/cloudflare/types/magic_transit/ipsec_tunnel_bulk_update_params.py">params</a>) -> <a href="./src/cloudflare/types/magic_transit/ipsec_tunnel_bulk_update_response.py">IPSECTunnelBulkUpdateResponse</a></code>
- <code title="get /accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}">client.magic_transit.ipsec_tunnels.<a href="./src/cloudflare/resources/magic_transit/ipsec_tunnels.py">get</a>(ipsec_tunnel_id, \*, account_id) -> <a href="./src/cloudflare/types/magic_transit/ipsec_tunnel_get_response.py">IPSECTunnelGetResponse</a></code>
- <code title="post /accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}/psk_generate">client.magic_transit.ipsec_tunnels.<a href="./src/cloudflare/resources/magic_transit/ipsec_tunnels.py">psk_generate</a>(ipsec_tunnel_id, \*, account_id, \*\*<a href="src/cloudflare/types/magic_transit/ipsec_tunnel_psk_generate_params.py">params</a>) -> <a href="./src/cloudflare/types/magic_transit/ipsec_tunnel_psk_generate_response.py">IPSECTunnelPSKGenerateResponse</a></code>
- <code title="post /accounts/{account_id}/magic/ipsec_tunnels/psk">client.magic_transit.ipsec_tunnels.<a href="./src/cloudflare/resources/magic_transit/ipsec_tunnels.py">psk_set</a>(\*, account_id, \*\*<a href="src/cloudflare/types/magic_transit/ipsec_tunnel_psk_set_params.py">params</a>) -> <a href="./src/cloudflare/types/magic_transit/ipsec_tunnel_psk_set_response.py">IPSECTunnelPSKSetResponse</a></code>

## Routes

Expand Down Expand Up @@ -275,6 +277,37 @@ Methods:

- <code title="get /accounts/{account_id}/magic/connectors/{connector_id}/telemetry/snapshots/latest">client.magic_transit.connectors.snapshots.latest.<a href="./src/cloudflare/resources/magic_transit/connectors/snapshots/latest.py">list</a>(connector_id, \*, account_id) -> <a href="./src/cloudflare/types/magic_transit/connectors/snapshots/latest_list_response.py">LatestListResponse</a></code>

## Cf1Sites

Types:

```python
from cloudflare.types.magic_transit import Cf1Site, Cf1SiteLocation
```

Methods:

- <code title="post /accounts/{account_id}/magic/cf1_sites">client.magic_transit.cf1_sites.<a href="./src/cloudflare/resources/magic_transit/cf1_sites/cf1_sites.py">create</a>(\*, account_id, \*\*<a href="src/cloudflare/types/magic_transit/cf1_site_create_params.py">params</a>) -> <a href="./src/cloudflare/types/magic_transit/cf1_site.py">SyncSinglePage[Cf1Site]</a></code>
- <code title="patch /accounts/{account_id}/magic/cf1_sites/{cf1_site_id}">client.magic_transit.cf1_sites.<a href="./src/cloudflare/resources/magic_transit/cf1_sites/cf1_sites.py">update</a>(cf1_site_id, \*, account_id, \*\*<a href="src/cloudflare/types/magic_transit/cf1_site_update_params.py">params</a>) -> <a href="./src/cloudflare/types/magic_transit/cf1_site.py">Cf1Site</a></code>
- <code title="get /accounts/{account_id}/magic/cf1_sites">client.magic_transit.cf1_sites.<a href="./src/cloudflare/resources/magic_transit/cf1_sites/cf1_sites.py">list</a>(\*, account_id) -> <a href="./src/cloudflare/types/magic_transit/cf1_site.py">SyncSinglePage[Cf1Site]</a></code>
- <code title="delete /accounts/{account_id}/magic/cf1_sites/{cf1_site_id}">client.magic_transit.cf1_sites.<a href="./src/cloudflare/resources/magic_transit/cf1_sites/cf1_sites.py">delete</a>(cf1_site_id, \*, account_id) -> <a href="./src/cloudflare/types/magic_transit/cf1_site.py">Cf1Site</a></code>
- <code title="get /accounts/{account_id}/magic/cf1_sites/{cf1_site_id}">client.magic_transit.cf1_sites.<a href="./src/cloudflare/resources/magic_transit/cf1_sites/cf1_sites.py">get</a>(cf1_site_id, \*, account_id) -> <a href="./src/cloudflare/types/magic_transit/cf1_site.py">Cf1Site</a></code>

### Ramps

Types:

```python
from cloudflare.types.magic_transit.cf1_sites import Ramp, RampType
```

Methods:

- <code title="post /accounts/{account_id}/magic/cf1_sites/{cf1_site_id}/ramps">client.magic_transit.cf1_sites.ramps.<a href="./src/cloudflare/resources/magic_transit/cf1_sites/ramps.py">create</a>(cf1_site_id, \*, account_id, \*\*<a href="src/cloudflare/types/magic_transit/cf1_sites/ramp_create_params.py">params</a>) -> <a href="./src/cloudflare/types/magic_transit/cf1_sites/ramp.py">SyncSinglePage[Ramp]</a></code>
- <code title="get /accounts/{account_id}/magic/cf1_sites/{cf1_site_id}/ramps">client.magic_transit.cf1_sites.ramps.<a href="./src/cloudflare/resources/magic_transit/cf1_sites/ramps.py">list</a>(cf1_site_id, \*, account_id) -> <a href="./src/cloudflare/types/magic_transit/cf1_sites/ramp.py">SyncSinglePage[Ramp]</a></code>
- <code title="delete /accounts/{account_id}/magic/cf1_sites/{cf1_site_id}/ramps/{ramp_id}">client.magic_transit.cf1_sites.ramps.<a href="./src/cloudflare/resources/magic_transit/cf1_sites/ramps.py">delete</a>(ramp_id, \*, account_id, cf1_site_id) -> <a href="./src/cloudflare/types/magic_transit/cf1_sites/ramp.py">Ramp</a></code>
- <code title="get /accounts/{account_id}/magic/cf1_sites/{cf1_site_id}/ramps/{ramp_id}">client.magic_transit.cf1_sites.ramps.<a href="./src/cloudflare/resources/magic_transit/cf1_sites/ramps.py">get</a>(ramp_id, \*, account_id, cf1_site_id) -> <a href="./src/cloudflare/types/magic_transit/cf1_sites/ramp.py">Ramp</a></code>

## PCAPs

Types:
Expand Down
33 changes: 33 additions & 0 deletions src/cloudflare/resources/magic_transit/cf1_sites/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from .ramps import (
RampsResource,
AsyncRampsResource,
RampsResourceWithRawResponse,
AsyncRampsResourceWithRawResponse,
RampsResourceWithStreamingResponse,
AsyncRampsResourceWithStreamingResponse,
)
from .cf1_sites import (
Cf1SitesResource,
AsyncCf1SitesResource,
Cf1SitesResourceWithRawResponse,
AsyncCf1SitesResourceWithRawResponse,
Cf1SitesResourceWithStreamingResponse,
AsyncCf1SitesResourceWithStreamingResponse,
)

__all__ = [
"RampsResource",
"AsyncRampsResource",
"RampsResourceWithRawResponse",
"AsyncRampsResourceWithRawResponse",
"RampsResourceWithStreamingResponse",
"AsyncRampsResourceWithStreamingResponse",
"Cf1SitesResource",
"AsyncCf1SitesResource",
"Cf1SitesResourceWithRawResponse",
"AsyncCf1SitesResourceWithRawResponse",
"Cf1SitesResourceWithStreamingResponse",
"AsyncCf1SitesResourceWithStreamingResponse",
]
Loading