Skip to content

Commit 5a94cbd

Browse files
feat(api): add since parameter to deployment logs endpoint
1 parent 3cf7604 commit 5a94cbd

12 files changed

+103
-21
lines changed

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 16
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-b019e469425a59061f37c5fdc7a131a5291c66134ef0627db4f06bb1f4af0b15.yml
3-
openapi_spec_hash: f66a3c2efddb168db9539ba2507b10b8
4-
config_hash: aae6721b2be9ec8565dfc8f7eadfe105
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-2aec229ccf91f7c1ac95aa675ea2a59bd61af9e363a22c3b49677992f1eeb16a.yml
3+
openapi_spec_hash: c80cd5d52a79cd5366a76d4a825bd27a
4+
config_hash: b8e1fff080fbaa22656ab0a57b591777

api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Shared Types
22

33
```python
4-
from kernel.types import ErrorDetail, ErrorEvent, ErrorModel, LogEvent
4+
from kernel.types import ErrorDetail, ErrorEvent, ErrorModel, HeartbeatEvent, LogEvent
55
```
66

77
# Deployments
@@ -21,7 +21,7 @@ Methods:
2121

2222
- <code title="post /deployments">client.deployments.<a href="./src/kernel/resources/deployments.py">create</a>(\*\*<a href="src/kernel/types/deployment_create_params.py">params</a>) -> <a href="./src/kernel/types/deployment_create_response.py">DeploymentCreateResponse</a></code>
2323
- <code title="get /deployments/{id}">client.deployments.<a href="./src/kernel/resources/deployments.py">retrieve</a>(id) -> <a href="./src/kernel/types/deployment_retrieve_response.py">DeploymentRetrieveResponse</a></code>
24-
- <code title="get /deployments/{id}/events">client.deployments.<a href="./src/kernel/resources/deployments.py">follow</a>(id) -> <a href="./src/kernel/types/deployment_follow_response.py">DeploymentFollowResponse</a></code>
24+
- <code title="get /deployments/{id}/events">client.deployments.<a href="./src/kernel/resources/deployments.py">follow</a>(id, \*\*<a href="src/kernel/types/deployment_follow_params.py">params</a>) -> <a href="./src/kernel/types/deployment_follow_response.py">DeploymentFollowResponse</a></code>
2525

2626
# Apps
2727

src/kernel/resources/deployments.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import httpx
99

10-
from ..types import deployment_create_params
10+
from ..types import deployment_create_params, deployment_follow_params
1111
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven, FileTypes
1212
from .._utils import extract_files, maybe_transform, deepcopy_minimal, async_maybe_transform
1313
from .._compat import cached_property
@@ -150,6 +150,7 @@ def follow(
150150
self,
151151
id: str,
152152
*,
153+
since: str | NotGiven = NOT_GIVEN,
153154
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
154155
# The extra values given here take precedence over values defined on the client or passed to this method.
155156
extra_headers: Headers | None = None,
@@ -163,6 +164,8 @@ def follow(
163164
deployment reaches a terminal state.
164165
165166
Args:
167+
since: Show logs since the given time (RFC timestamps or durations like 5m).
168+
166169
extra_headers: Send extra headers
167170
168171
extra_query: Add additional query parameters to the request
@@ -177,7 +180,11 @@ def follow(
177180
return self._get(
178181
f"/deployments/{id}/events",
179182
options=make_request_options(
180-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
183+
extra_headers=extra_headers,
184+
extra_query=extra_query,
185+
extra_body=extra_body,
186+
timeout=timeout,
187+
query=maybe_transform({"since": since}, deployment_follow_params.DeploymentFollowParams),
181188
),
182189
cast_to=cast(
183190
Any, DeploymentFollowResponse
@@ -310,6 +317,7 @@ async def follow(
310317
self,
311318
id: str,
312319
*,
320+
since: str | NotGiven = NOT_GIVEN,
313321
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
314322
# The extra values given here take precedence over values defined on the client or passed to this method.
315323
extra_headers: Headers | None = None,
@@ -323,6 +331,8 @@ async def follow(
323331
deployment reaches a terminal state.
324332
325333
Args:
334+
since: Show logs since the given time (RFC timestamps or durations like 5m).
335+
326336
extra_headers: Send extra headers
327337
328338
extra_query: Add additional query parameters to the request
@@ -337,7 +347,11 @@ async def follow(
337347
return await self._get(
338348
f"/deployments/{id}/events",
339349
options=make_request_options(
340-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
350+
extra_headers=extra_headers,
351+
extra_query=extra_query,
352+
extra_body=extra_body,
353+
timeout=timeout,
354+
query=await async_maybe_transform({"since": since}, deployment_follow_params.DeploymentFollowParams),
341355
),
342356
cast_to=cast(
343357
Any, DeploymentFollowResponse

src/kernel/types/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22

33
from __future__ import annotations
44

5-
from .shared import LogEvent as LogEvent, ErrorEvent as ErrorEvent, ErrorModel as ErrorModel, ErrorDetail as ErrorDetail
5+
from .shared import (
6+
LogEvent as LogEvent,
7+
ErrorEvent as ErrorEvent,
8+
ErrorModel as ErrorModel,
9+
ErrorDetail as ErrorDetail,
10+
HeartbeatEvent as HeartbeatEvent,
11+
)
612
from .app_list_params import AppListParams as AppListParams
713
from .app_list_response import AppListResponse as AppListResponse
814
from .browser_persistence import BrowserPersistence as BrowserPersistence
@@ -13,6 +19,7 @@
1319
from .invocation_state_event import InvocationStateEvent as InvocationStateEvent
1420
from .browser_create_response import BrowserCreateResponse as BrowserCreateResponse
1521
from .deployment_create_params import DeploymentCreateParams as DeploymentCreateParams
22+
from .deployment_follow_params import DeploymentFollowParams as DeploymentFollowParams
1623
from .invocation_create_params import InvocationCreateParams as InvocationCreateParams
1724
from .invocation_update_params import InvocationUpdateParams as InvocationUpdateParams
1825
from .browser_persistence_param import BrowserPersistenceParam as BrowserPersistenceParam

src/kernel/types/app_list_response.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ class AppListResponseItem(BaseModel):
1515
app_name: str
1616
"""Name of the application"""
1717

18+
deployment: str
19+
"""Deployment ID"""
20+
1821
region: Literal["aws.us-east-1a"]
1922
"""Deployment region code"""
2023

src/kernel/types/apps/deployment_follow_response.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from ..._utils import PropertyInfo
88
from ..._models import BaseModel
99
from ..shared.log_event import LogEvent
10+
from ..shared.heartbeat_event import HeartbeatEvent
1011

1112
__all__ = ["DeploymentFollowResponse", "StateEvent", "StateUpdateEvent"]
1213

@@ -36,5 +37,5 @@ class StateUpdateEvent(BaseModel):
3637

3738

3839
DeploymentFollowResponse: TypeAlias = Annotated[
39-
Union[StateEvent, StateUpdateEvent, LogEvent], PropertyInfo(discriminator="event")
40+
Union[StateEvent, StateUpdateEvent, LogEvent, HeartbeatEvent], PropertyInfo(discriminator="event")
4041
]
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__ = ["DeploymentFollowParams"]
8+
9+
10+
class DeploymentFollowParams(TypedDict, total=False):
11+
since: str
12+
"""Show logs since the given time (RFC timestamps or durations like 5m)."""

src/kernel/types/deployment_follow_response.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from .shared.log_event import LogEvent
1010
from .shared.error_event import ErrorEvent
1111
from .deployment_state_event import DeploymentStateEvent
12+
from .shared.heartbeat_event import HeartbeatEvent
1213

1314
__all__ = ["DeploymentFollowResponse", "AppVersionSummaryEvent", "AppVersionSummaryEventAction"]
1415

@@ -45,5 +46,6 @@ class AppVersionSummaryEvent(BaseModel):
4546

4647

4748
DeploymentFollowResponse: TypeAlias = Annotated[
48-
Union[LogEvent, DeploymentStateEvent, AppVersionSummaryEvent, ErrorEvent], PropertyInfo(discriminator="event")
49+
Union[LogEvent, DeploymentStateEvent, AppVersionSummaryEvent, ErrorEvent, HeartbeatEvent],
50+
PropertyInfo(discriminator="event"),
4951
]

src/kernel/types/invocation_follow_response.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
from .shared.log_event import LogEvent
88
from .shared.error_event import ErrorEvent
99
from .invocation_state_event import InvocationStateEvent
10+
from .shared.heartbeat_event import HeartbeatEvent
1011

1112
__all__ = ["InvocationFollowResponse"]
1213

1314
InvocationFollowResponse: TypeAlias = Annotated[
14-
Union[LogEvent, InvocationStateEvent, ErrorEvent], PropertyInfo(discriminator="event")
15+
Union[LogEvent, InvocationStateEvent, ErrorEvent, HeartbeatEvent], PropertyInfo(discriminator="event")
1516
]

src/kernel/types/shared/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
from .error_event import ErrorEvent as ErrorEvent
55
from .error_model import ErrorModel as ErrorModel
66
from .error_detail import ErrorDetail as ErrorDetail
7+
from .heartbeat_event import HeartbeatEvent as HeartbeatEvent

0 commit comments

Comments
 (0)