mirror of
https://github.com/hanzoai/python-sdk.git
synced 2026-10-23 20:23:00 +00:00
Add Pages resource and Gateway resource with DNS alignment
New Pages resource for CF Pages project/deployment/domain management. New Gateway resource for rate limit and routing rule CRUD. DNS resource gains update_record and verify_domain methods for platform alignment.
This commit is contained in:
@@ -37,6 +37,7 @@ from .resources import (
|
||||
add,
|
||||
db,
|
||||
dns,
|
||||
pages,
|
||||
kms,
|
||||
kv,
|
||||
mpc,
|
||||
@@ -217,6 +218,7 @@ class Hanzo(SyncAPIClient):
|
||||
db: db.DBResource
|
||||
kv: kv.KVResource
|
||||
dns: dns.DNSResource
|
||||
pages: pages.PagesResource
|
||||
kms: kms.KMSResource
|
||||
cart: cart.CartResource
|
||||
edge: edge.EdgeResource
|
||||
@@ -403,6 +405,7 @@ class Hanzo(SyncAPIClient):
|
||||
self.db = db.DBResource(self)
|
||||
self.kv = kv.KVResource(self)
|
||||
self.dns = dns.DNSResource(self)
|
||||
self.pages = pages.PagesResource(self)
|
||||
self.kms = kms.KMSResource(self)
|
||||
self.cart = cart.CartResource(self)
|
||||
self.edge = edge.EdgeResource(self)
|
||||
@@ -651,6 +654,7 @@ class AsyncHanzo(AsyncAPIClient):
|
||||
db: db.AsyncDBResource
|
||||
kv: kv.AsyncKVResource
|
||||
dns: dns.AsyncDNSResource
|
||||
pages: pages.AsyncPagesResource
|
||||
kms: kms.AsyncKMSResource
|
||||
cart: cart.AsyncCartResource
|
||||
edge: edge.AsyncEdgeResource
|
||||
@@ -837,6 +841,7 @@ class AsyncHanzo(AsyncAPIClient):
|
||||
self.db = db.AsyncDBResource(self)
|
||||
self.kv = kv.AsyncKVResource(self)
|
||||
self.dns = dns.AsyncDNSResource(self)
|
||||
self.pages = pages.AsyncPagesResource(self)
|
||||
self.kms = kms.AsyncKMSResource(self)
|
||||
self.cart = cart.AsyncCartResource(self)
|
||||
self.edge = edge.AsyncEdgeResource(self)
|
||||
@@ -1107,6 +1112,7 @@ class HanzoWithRawResponse:
|
||||
self.db = db.DBResourceWithRawResponse(client.db)
|
||||
self.kv = kv.KVResourceWithRawResponse(client.kv)
|
||||
self.dns = dns.DNSResourceWithRawResponse(client.dns)
|
||||
self.pages = pages.PagesResourceWithRawResponse(client.pages)
|
||||
self.kms = kms.KMSResourceWithRawResponse(client.kms)
|
||||
self.cart = cart.CartResourceWithRawResponse(client.cart)
|
||||
self.edge = edge.EdgeResourceWithRawResponse(client.edge)
|
||||
@@ -1257,6 +1263,7 @@ class AsyncHanzoWithRawResponse:
|
||||
self.db = db.AsyncDBResourceWithRawResponse(client.db)
|
||||
self.kv = kv.AsyncKVResourceWithRawResponse(client.kv)
|
||||
self.dns = dns.AsyncDNSResourceWithRawResponse(client.dns)
|
||||
self.pages = pages.AsyncPagesResourceWithRawResponse(client.pages)
|
||||
self.kms = kms.AsyncKMSResourceWithRawResponse(client.kms)
|
||||
self.cart = cart.AsyncCartResourceWithRawResponse(client.cart)
|
||||
self.edge = edge.AsyncEdgeResourceWithRawResponse(client.edge)
|
||||
@@ -1419,6 +1426,7 @@ class HanzoWithStreamedResponse:
|
||||
self.db = db.DBResourceWithStreamingResponse(client.db)
|
||||
self.kv = kv.KVResourceWithStreamingResponse(client.kv)
|
||||
self.dns = dns.DNSResourceWithStreamingResponse(client.dns)
|
||||
self.pages = pages.PagesResourceWithStreamingResponse(client.pages)
|
||||
self.kms = kms.KMSResourceWithStreamingResponse(client.kms)
|
||||
self.cart = cart.CartResourceWithStreamingResponse(client.cart)
|
||||
self.edge = edge.EdgeResourceWithStreamingResponse(client.edge)
|
||||
@@ -1591,6 +1599,7 @@ class AsyncHanzoWithStreamedResponse:
|
||||
self.db = db.AsyncDBResourceWithStreamingResponse(client.db)
|
||||
self.kv = kv.AsyncKVResourceWithStreamingResponse(client.kv)
|
||||
self.dns = dns.AsyncDNSResourceWithStreamingResponse(client.dns)
|
||||
self.pages = pages.AsyncPagesResourceWithStreamingResponse(client.pages)
|
||||
self.kms = kms.AsyncKMSResourceWithStreamingResponse(client.kms)
|
||||
self.cart = cart.AsyncCartResourceWithStreamingResponse(client.cart)
|
||||
self.edge = edge.AsyncEdgeResourceWithStreamingResponse(client.edge)
|
||||
|
||||
@@ -33,6 +33,14 @@ from .dns import (
|
||||
DNSResourceWithStreamingResponse,
|
||||
AsyncDNSResourceWithStreamingResponse,
|
||||
)
|
||||
from .pages import (
|
||||
PagesResource,
|
||||
AsyncPagesResource,
|
||||
PagesResourceWithRawResponse,
|
||||
AsyncPagesResourceWithRawResponse,
|
||||
PagesResourceWithStreamingResponse,
|
||||
AsyncPagesResourceWithStreamingResponse,
|
||||
)
|
||||
from .key import (
|
||||
KeyResource,
|
||||
AsyncKeyResource,
|
||||
@@ -1394,6 +1402,12 @@ __all__ = [
|
||||
"AsyncDNSResourceWithRawResponse",
|
||||
"DNSResourceWithStreamingResponse",
|
||||
"AsyncDNSResourceWithStreamingResponse",
|
||||
"PagesResource",
|
||||
"AsyncPagesResource",
|
||||
"PagesResourceWithRawResponse",
|
||||
"AsyncPagesResourceWithRawResponse",
|
||||
"PagesResourceWithStreamingResponse",
|
||||
"AsyncPagesResourceWithStreamingResponse",
|
||||
# Build/Release Resources
|
||||
"BuildResource",
|
||||
"AsyncBuildResource",
|
||||
|
||||
@@ -136,6 +136,40 @@ class DNSResource(SyncAPIResource):
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def update_record(
|
||||
self,
|
||||
zone_id: str,
|
||||
record_id: str,
|
||||
*,
|
||||
type: str,
|
||||
name: str,
|
||||
content: str,
|
||||
proxied: bool | NotGiven = NOT_GIVEN,
|
||||
ttl: int | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Update a DNS record."""
|
||||
return self._put(
|
||||
f"/dns/zones/{zone_id}/records/{record_id}",
|
||||
body={
|
||||
"type": type,
|
||||
"name": name,
|
||||
"content": content,
|
||||
"proxied": proxied,
|
||||
"ttl": ttl,
|
||||
},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def delete_record(
|
||||
self,
|
||||
zone_id: str,
|
||||
@@ -158,6 +192,30 @@ class DNSResource(SyncAPIResource):
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Domain verification
|
||||
def verify_domain(
|
||||
self,
|
||||
domain: str,
|
||||
*,
|
||||
expected_ip: str | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Verify DNS configuration for a domain."""
|
||||
return self._post(
|
||||
"/dns/verify",
|
||||
body={"domain": domain, "expectedIp": expected_ip},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Service linking
|
||||
def link(
|
||||
self,
|
||||
@@ -329,6 +387,40 @@ class AsyncDNSResource(AsyncAPIResource):
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def update_record(
|
||||
self,
|
||||
zone_id: str,
|
||||
record_id: str,
|
||||
*,
|
||||
type: str,
|
||||
name: str,
|
||||
content: str,
|
||||
proxied: bool | NotGiven = NOT_GIVEN,
|
||||
ttl: int | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Update a DNS record."""
|
||||
return await self._put(
|
||||
f"/dns/zones/{zone_id}/records/{record_id}",
|
||||
body={
|
||||
"type": type,
|
||||
"name": name,
|
||||
"content": content,
|
||||
"proxied": proxied,
|
||||
"ttl": ttl,
|
||||
},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def delete_record(
|
||||
self,
|
||||
zone_id: str,
|
||||
@@ -351,6 +443,30 @@ class AsyncDNSResource(AsyncAPIResource):
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Domain verification
|
||||
async def verify_domain(
|
||||
self,
|
||||
domain: str,
|
||||
*,
|
||||
expected_ip: str | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Verify DNS configuration for a domain."""
|
||||
return await self._post(
|
||||
"/dns/verify",
|
||||
body={"domain": domain, "expectedIp": expected_ip},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def link(
|
||||
self,
|
||||
*,
|
||||
|
||||
+382
-242
@@ -13,7 +13,7 @@ from .._base_client import make_request_options
|
||||
|
||||
|
||||
class GatewayResource(SyncAPIResource):
|
||||
"""Site-to-site gateway and bridge management."""
|
||||
"""API gateway management service."""
|
||||
|
||||
@cached_property
|
||||
def with_raw_response(self) -> GatewayResourceWithRawResponse:
|
||||
@@ -23,119 +23,9 @@ class GatewayResource(SyncAPIResource):
|
||||
def with_streaming_response(self) -> GatewayResourceWithStreamingResponse:
|
||||
return GatewayResourceWithStreamingResponse(self)
|
||||
|
||||
def create(
|
||||
self,
|
||||
*,
|
||||
name: str,
|
||||
type: str | NotGiven = NOT_GIVEN,
|
||||
config: Dict[str, Any] | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Create a gateway."""
|
||||
return self._post(
|
||||
"/gateway",
|
||||
body={"name": name, "type": type, "config": config},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def list(
|
||||
self,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""List gateways."""
|
||||
return self._get(
|
||||
"/gateway",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def get(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Get gateway details."""
|
||||
return self._get(
|
||||
f"/gateway/{gateway_id}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def delete(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Delete a gateway."""
|
||||
return self._delete(
|
||||
f"/gateway/{gateway_id}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def attach(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
target: str,
|
||||
target_type: str,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Attach gateway to VPC/subnet/k8s."""
|
||||
return self._post(
|
||||
f"/gateway/{gateway_id}/attach",
|
||||
body={"target": target, "target_type": target_type},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Status
|
||||
def status(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
@@ -144,7 +34,7 @@ class GatewayResource(SyncAPIResource):
|
||||
) -> object:
|
||||
"""Get gateway status."""
|
||||
return self._get(
|
||||
f"/gateway/{gateway_id}/status",
|
||||
"/gateway/status",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
@@ -154,18 +44,18 @@ class GatewayResource(SyncAPIResource):
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def logs(
|
||||
# Rate limit management
|
||||
def list_rate_limits(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Get gateway logs."""
|
||||
"""List all rate limit rules."""
|
||||
return self._get(
|
||||
f"/gateway/{gateway_id}/logs",
|
||||
"/gateway/rate-limits",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
@@ -175,18 +65,198 @@ class GatewayResource(SyncAPIResource):
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def rotate_keys(
|
||||
def create_rate_limit(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
name: str,
|
||||
scope: str,
|
||||
requests_per_minute: int,
|
||||
burst_size: int,
|
||||
scope_id: str | NotGiven = NOT_GIVEN,
|
||||
enabled: bool | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Create a rate limit rule."""
|
||||
return self._post(
|
||||
"/gateway/rate-limits",
|
||||
body={
|
||||
"name": name,
|
||||
"scope": scope,
|
||||
"scopeId": scope_id,
|
||||
"requestsPerMinute": requests_per_minute,
|
||||
"burstSize": burst_size,
|
||||
"enabled": enabled,
|
||||
},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def update_rate_limit(
|
||||
self,
|
||||
rule_id: str,
|
||||
*,
|
||||
name: str | NotGiven = NOT_GIVEN,
|
||||
requests_per_minute: int | NotGiven = NOT_GIVEN,
|
||||
burst_size: int | NotGiven = NOT_GIVEN,
|
||||
enabled: bool | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Update a rate limit rule."""
|
||||
return self._put(
|
||||
f"/gateway/rate-limits/{rule_id}",
|
||||
body={
|
||||
"name": name,
|
||||
"requestsPerMinute": requests_per_minute,
|
||||
"burstSize": burst_size,
|
||||
"enabled": enabled,
|
||||
},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def delete_rate_limit(
|
||||
self,
|
||||
rule_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Rotate gateway keys."""
|
||||
"""Delete a rate limit rule."""
|
||||
return self._delete(
|
||||
f"/gateway/rate-limits/{rule_id}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Route management
|
||||
def list_routes(
|
||||
self,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""List all gateway routes."""
|
||||
return self._get(
|
||||
"/gateway/routes",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def create_route(
|
||||
self,
|
||||
*,
|
||||
name: str,
|
||||
host: str,
|
||||
backend: str,
|
||||
path_prefix: str | NotGiven = NOT_GIVEN,
|
||||
middlewares: List[str] | NotGiven = NOT_GIVEN,
|
||||
priority: int | NotGiven = NOT_GIVEN,
|
||||
enabled: bool | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Create a gateway route."""
|
||||
return self._post(
|
||||
f"/gateway/{gateway_id}/rotate-keys",
|
||||
"/gateway/routes",
|
||||
body={
|
||||
"name": name,
|
||||
"host": host,
|
||||
"backend": backend,
|
||||
"pathPrefix": path_prefix,
|
||||
"middlewares": middlewares,
|
||||
"priority": priority,
|
||||
"enabled": enabled,
|
||||
},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def update_route(
|
||||
self,
|
||||
rule_id: str,
|
||||
*,
|
||||
name: str | NotGiven = NOT_GIVEN,
|
||||
host: str | NotGiven = NOT_GIVEN,
|
||||
backend: str | NotGiven = NOT_GIVEN,
|
||||
path_prefix: str | NotGiven = NOT_GIVEN,
|
||||
middlewares: List[str] | NotGiven = NOT_GIVEN,
|
||||
priority: int | NotGiven = NOT_GIVEN,
|
||||
enabled: bool | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Update a gateway route."""
|
||||
return self._put(
|
||||
f"/gateway/routes/{rule_id}",
|
||||
body={
|
||||
"name": name,
|
||||
"host": host,
|
||||
"backend": backend,
|
||||
"pathPrefix": path_prefix,
|
||||
"middlewares": middlewares,
|
||||
"priority": priority,
|
||||
"enabled": enabled,
|
||||
},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def delete_route(
|
||||
self,
|
||||
rule_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Delete a gateway route."""
|
||||
return self._delete(
|
||||
f"/gateway/routes/{rule_id}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
@@ -198,7 +268,7 @@ class GatewayResource(SyncAPIResource):
|
||||
|
||||
|
||||
class AsyncGatewayResource(AsyncAPIResource):
|
||||
"""Site-to-site gateway and bridge management."""
|
||||
"""API gateway management service."""
|
||||
|
||||
@cached_property
|
||||
def with_raw_response(self) -> AsyncGatewayResourceWithRawResponse:
|
||||
@@ -208,119 +278,9 @@ class AsyncGatewayResource(AsyncAPIResource):
|
||||
def with_streaming_response(self) -> AsyncGatewayResourceWithStreamingResponse:
|
||||
return AsyncGatewayResourceWithStreamingResponse(self)
|
||||
|
||||
async def create(
|
||||
self,
|
||||
*,
|
||||
name: str,
|
||||
type: str | NotGiven = NOT_GIVEN,
|
||||
config: Dict[str, Any] | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Create a gateway."""
|
||||
return await self._post(
|
||||
"/gateway",
|
||||
body={"name": name, "type": type, "config": config},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def list(
|
||||
self,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""List gateways."""
|
||||
return await self._get(
|
||||
"/gateway",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def get(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Get gateway details."""
|
||||
return await self._get(
|
||||
f"/gateway/{gateway_id}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def delete(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Delete a gateway."""
|
||||
return await self._delete(
|
||||
f"/gateway/{gateway_id}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def attach(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
target: str,
|
||||
target_type: str,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Attach gateway to VPC/subnet/k8s."""
|
||||
return await self._post(
|
||||
f"/gateway/{gateway_id}/attach",
|
||||
body={"target": target, "target_type": target_type},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Status
|
||||
async def status(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
@@ -329,7 +289,7 @@ class AsyncGatewayResource(AsyncAPIResource):
|
||||
) -> object:
|
||||
"""Get gateway status."""
|
||||
return await self._get(
|
||||
f"/gateway/{gateway_id}/status",
|
||||
"/gateway/status",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
@@ -339,18 +299,18 @@ class AsyncGatewayResource(AsyncAPIResource):
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def logs(
|
||||
# Rate limit management
|
||||
async def list_rate_limits(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Get gateway logs."""
|
||||
"""List all rate limit rules."""
|
||||
return await self._get(
|
||||
f"/gateway/{gateway_id}/logs",
|
||||
"/gateway/rate-limits",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
@@ -360,18 +320,198 @@ class AsyncGatewayResource(AsyncAPIResource):
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def rotate_keys(
|
||||
async def create_rate_limit(
|
||||
self,
|
||||
gateway_id: str,
|
||||
*,
|
||||
name: str,
|
||||
scope: str,
|
||||
requests_per_minute: int,
|
||||
burst_size: int,
|
||||
scope_id: str | NotGiven = NOT_GIVEN,
|
||||
enabled: bool | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Create a rate limit rule."""
|
||||
return await self._post(
|
||||
"/gateway/rate-limits",
|
||||
body={
|
||||
"name": name,
|
||||
"scope": scope,
|
||||
"scopeId": scope_id,
|
||||
"requestsPerMinute": requests_per_minute,
|
||||
"burstSize": burst_size,
|
||||
"enabled": enabled,
|
||||
},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def update_rate_limit(
|
||||
self,
|
||||
rule_id: str,
|
||||
*,
|
||||
name: str | NotGiven = NOT_GIVEN,
|
||||
requests_per_minute: int | NotGiven = NOT_GIVEN,
|
||||
burst_size: int | NotGiven = NOT_GIVEN,
|
||||
enabled: bool | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Update a rate limit rule."""
|
||||
return await self._put(
|
||||
f"/gateway/rate-limits/{rule_id}",
|
||||
body={
|
||||
"name": name,
|
||||
"requestsPerMinute": requests_per_minute,
|
||||
"burstSize": burst_size,
|
||||
"enabled": enabled,
|
||||
},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def delete_rate_limit(
|
||||
self,
|
||||
rule_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Rotate gateway keys."""
|
||||
"""Delete a rate limit rule."""
|
||||
return await self._delete(
|
||||
f"/gateway/rate-limits/{rule_id}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Route management
|
||||
async def list_routes(
|
||||
self,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""List all gateway routes."""
|
||||
return await self._get(
|
||||
"/gateway/routes",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def create_route(
|
||||
self,
|
||||
*,
|
||||
name: str,
|
||||
host: str,
|
||||
backend: str,
|
||||
path_prefix: str | NotGiven = NOT_GIVEN,
|
||||
middlewares: List[str] | NotGiven = NOT_GIVEN,
|
||||
priority: int | NotGiven = NOT_GIVEN,
|
||||
enabled: bool | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Create a gateway route."""
|
||||
return await self._post(
|
||||
f"/gateway/{gateway_id}/rotate-keys",
|
||||
"/gateway/routes",
|
||||
body={
|
||||
"name": name,
|
||||
"host": host,
|
||||
"backend": backend,
|
||||
"pathPrefix": path_prefix,
|
||||
"middlewares": middlewares,
|
||||
"priority": priority,
|
||||
"enabled": enabled,
|
||||
},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def update_route(
|
||||
self,
|
||||
rule_id: str,
|
||||
*,
|
||||
name: str | NotGiven = NOT_GIVEN,
|
||||
host: str | NotGiven = NOT_GIVEN,
|
||||
backend: str | NotGiven = NOT_GIVEN,
|
||||
path_prefix: str | NotGiven = NOT_GIVEN,
|
||||
middlewares: List[str] | NotGiven = NOT_GIVEN,
|
||||
priority: int | NotGiven = NOT_GIVEN,
|
||||
enabled: bool | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Update a gateway route."""
|
||||
return await self._put(
|
||||
f"/gateway/routes/{rule_id}",
|
||||
body={
|
||||
"name": name,
|
||||
"host": host,
|
||||
"backend": backend,
|
||||
"pathPrefix": path_prefix,
|
||||
"middlewares": middlewares,
|
||||
"priority": priority,
|
||||
"enabled": enabled,
|
||||
},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def delete_route(
|
||||
self,
|
||||
rule_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Delete a gateway route."""
|
||||
return await self._delete(
|
||||
f"/gateway/routes/{rule_id}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
|
||||
@@ -0,0 +1,410 @@
|
||||
# Hanzo AI SDK
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Dict, List
|
||||
|
||||
import httpx
|
||||
|
||||
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
|
||||
from .._compat import cached_property
|
||||
from .._resource import SyncAPIResource, AsyncAPIResource
|
||||
from .._base_client import make_request_options
|
||||
|
||||
|
||||
class PagesResource(SyncAPIResource):
|
||||
"""Cloudflare Pages project management service."""
|
||||
|
||||
@cached_property
|
||||
def with_raw_response(self) -> PagesResourceWithRawResponse:
|
||||
return PagesResourceWithRawResponse(self)
|
||||
|
||||
@cached_property
|
||||
def with_streaming_response(self) -> PagesResourceWithStreamingResponse:
|
||||
return PagesResourceWithStreamingResponse(self)
|
||||
|
||||
# Project management
|
||||
def list_projects(
|
||||
self,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""List all Pages projects."""
|
||||
return self._get(
|
||||
"/pages/projects",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def get_project(
|
||||
self,
|
||||
project_name: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Get a Pages project by name."""
|
||||
return self._get(
|
||||
f"/pages/projects/{project_name}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def create_project(
|
||||
self,
|
||||
*,
|
||||
name: str,
|
||||
production_branch: str | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Create a new Pages project."""
|
||||
return self._post(
|
||||
"/pages/projects",
|
||||
body={"name": name, "production_branch": production_branch},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def delete_project(
|
||||
self,
|
||||
project_name: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Delete a Pages project."""
|
||||
return self._delete(
|
||||
f"/pages/projects/{project_name}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Deployment management
|
||||
def list_deployments(
|
||||
self,
|
||||
project_name: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""List deployments for a Pages project."""
|
||||
return self._get(
|
||||
f"/pages/projects/{project_name}/deployments",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def trigger_deploy(
|
||||
self,
|
||||
project_name: str,
|
||||
*,
|
||||
branch: str | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Trigger a new deployment for a Pages project."""
|
||||
return self._post(
|
||||
f"/pages/projects/{project_name}/deployments",
|
||||
body={"branch": branch},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Domain management
|
||||
def add_domain(
|
||||
self,
|
||||
project_name: str,
|
||||
*,
|
||||
domain: str,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Add a custom domain to a Pages project."""
|
||||
return self._post(
|
||||
f"/pages/projects/{project_name}/domains",
|
||||
body={"domain": domain},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
def remove_domain(
|
||||
self,
|
||||
project_name: str,
|
||||
domain_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Remove a custom domain from a Pages project."""
|
||||
return self._delete(
|
||||
f"/pages/projects/{project_name}/domains/{domain_id}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
|
||||
class AsyncPagesResource(AsyncAPIResource):
|
||||
"""Cloudflare Pages project management service."""
|
||||
|
||||
@cached_property
|
||||
def with_raw_response(self) -> AsyncPagesResourceWithRawResponse:
|
||||
return AsyncPagesResourceWithRawResponse(self)
|
||||
|
||||
@cached_property
|
||||
def with_streaming_response(self) -> AsyncPagesResourceWithStreamingResponse:
|
||||
return AsyncPagesResourceWithStreamingResponse(self)
|
||||
|
||||
# Project management
|
||||
async def list_projects(
|
||||
self,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""List all Pages projects."""
|
||||
return await self._get(
|
||||
"/pages/projects",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def get_project(
|
||||
self,
|
||||
project_name: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Get a Pages project by name."""
|
||||
return await self._get(
|
||||
f"/pages/projects/{project_name}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def create_project(
|
||||
self,
|
||||
*,
|
||||
name: str,
|
||||
production_branch: str | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Create a new Pages project."""
|
||||
return await self._post(
|
||||
"/pages/projects",
|
||||
body={"name": name, "production_branch": production_branch},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def delete_project(
|
||||
self,
|
||||
project_name: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Delete a Pages project."""
|
||||
return await self._delete(
|
||||
f"/pages/projects/{project_name}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Deployment management
|
||||
async def list_deployments(
|
||||
self,
|
||||
project_name: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""List deployments for a Pages project."""
|
||||
return await self._get(
|
||||
f"/pages/projects/{project_name}/deployments",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def trigger_deploy(
|
||||
self,
|
||||
project_name: str,
|
||||
*,
|
||||
branch: str | NotGiven = NOT_GIVEN,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Trigger a new deployment for a Pages project."""
|
||||
return await self._post(
|
||||
f"/pages/projects/{project_name}/deployments",
|
||||
body={"branch": branch},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
# Domain management
|
||||
async def add_domain(
|
||||
self,
|
||||
project_name: str,
|
||||
*,
|
||||
domain: str,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Add a custom domain to a Pages project."""
|
||||
return await self._post(
|
||||
f"/pages/projects/{project_name}/domains",
|
||||
body={"domain": domain},
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
async def remove_domain(
|
||||
self,
|
||||
project_name: str,
|
||||
domain_id: str,
|
||||
*,
|
||||
extra_headers: Headers | None = None,
|
||||
extra_query: Query | None = None,
|
||||
extra_body: Body | None = None,
|
||||
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
||||
) -> object:
|
||||
"""Remove a custom domain from a Pages project."""
|
||||
return await self._delete(
|
||||
f"/pages/projects/{project_name}/domains/{domain_id}",
|
||||
options=make_request_options(
|
||||
extra_headers=extra_headers,
|
||||
extra_query=extra_query,
|
||||
extra_body=extra_body,
|
||||
timeout=timeout,
|
||||
),
|
||||
cast_to=object,
|
||||
)
|
||||
|
||||
|
||||
class PagesResourceWithRawResponse:
|
||||
def __init__(self, pages: PagesResource) -> None:
|
||||
self._pages = pages
|
||||
|
||||
|
||||
class AsyncPagesResourceWithRawResponse:
|
||||
def __init__(self, pages: AsyncPagesResource) -> None:
|
||||
self._pages = pages
|
||||
|
||||
|
||||
class PagesResourceWithStreamingResponse:
|
||||
def __init__(self, pages: PagesResource) -> None:
|
||||
self._pages = pages
|
||||
|
||||
|
||||
class AsyncPagesResourceWithStreamingResponse:
|
||||
def __init__(self, pages: AsyncPagesResource) -> None:
|
||||
self._pages = pages
|
||||
Reference in New Issue
Block a user