Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
configured_endpoints: 14
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/arcade-ai%2Farcade-engine-c089b91b0e1c2bc2e6a5bd42454c82a162957011f1d8469c680a82ff05ee9ec9.yml
configured_endpoints: 17
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/arcade-ai%2Farcade-engine-a71adfaff442ffd07aa4f46ea5d967ca0faf6ea9ddfee5cc2f0bd9615b891684.yml
3 changes: 3 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,4 +109,7 @@ from arcadepy.types import (
Methods:

- <code title="post /v1/admin/workers">client.worker.<a href="./src/arcadepy/resources/worker.py">create</a>(\*\*<a href="src/arcadepy/types/worker_create_params.py">params</a>) -> <a href="./src/arcadepy/types/worker_response.py">WorkerResponse</a></code>
- <code title="patch /v1/admin/workers/{id}">client.worker.<a href="./src/arcadepy/resources/worker.py">update</a>(id, \*\*<a href="src/arcadepy/types/worker_update_params.py">params</a>) -> <a href="./src/arcadepy/types/worker_response.py">WorkerResponse</a></code>
- <code title="get /v1/admin/workers">client.worker.<a href="./src/arcadepy/resources/worker.py">list</a>() -> <a href="./src/arcadepy/types/worker_list_response.py">WorkerListResponse</a></code>
- <code title="delete /v1/admin/workers/{id}">client.worker.<a href="./src/arcadepy/resources/worker.py">delete</a>(id) -> None</code>
- <code title="get /v1/admin/workers/{id}/health">client.worker.<a href="./src/arcadepy/resources/worker.py">health</a>(id) -> <a href="./src/arcadepy/types/worker_health_response.py">WorkerHealthResponse</a></code>
259 changes: 257 additions & 2 deletions src/arcadepy/resources/worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

import httpx

from ..types import worker_create_params
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from ..types import worker_create_params, worker_update_params
from .._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
from .._utils import (
maybe_transform,
async_maybe_transform,
Expand All @@ -21,6 +21,7 @@
from .._base_client import make_request_options
from ..types.worker_response import WorkerResponse
from ..types.worker_list_response import WorkerListResponse
from ..types.worker_health_response import WorkerHealthResponse

__all__ = ["WorkerResource", "AsyncWorkerResource"]

Expand Down Expand Up @@ -86,6 +87,48 @@ def create(
cast_to=WorkerResponse,
)

def update(
self,
id: str,
*,
enabled: bool | NotGiven = NOT_GIVEN,
http: worker_update_params.HTTP | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> WorkerResponse:
"""
Update a worker

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return self._patch(
f"/v1/admin/workers/{id}",
body=maybe_transform(
{
"enabled": enabled,
"http": http,
},
worker_update_params.WorkerUpdateParams,
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=WorkerResponse,
)

def list(
self,
*,
Expand All @@ -105,6 +148,73 @@ def list(
cast_to=WorkerListResponse,
)

def delete(
self,
id: str,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> None:
"""
Delete a worker

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._delete(
f"/v1/admin/workers/{id}",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=NoneType,
)

def health(
self,
id: str,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> WorkerHealthResponse:
"""
Get the health of a worker

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return self._get(
f"/v1/admin/workers/{id}/health",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=WorkerHealthResponse,
)


class AsyncWorkerResource(AsyncAPIResource):
@cached_property
Expand Down Expand Up @@ -167,6 +277,48 @@ async def create(
cast_to=WorkerResponse,
)

async def update(
self,
id: str,
*,
enabled: bool | NotGiven = NOT_GIVEN,
http: worker_update_params.HTTP | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> WorkerResponse:
"""
Update a worker

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return await self._patch(
f"/v1/admin/workers/{id}",
body=await async_maybe_transform(
{
"enabled": enabled,
"http": http,
},
worker_update_params.WorkerUpdateParams,
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=WorkerResponse,
)

async def list(
self,
*,
Expand All @@ -186,6 +338,73 @@ async def list(
cast_to=WorkerListResponse,
)

async def delete(
self,
id: str,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> None:
"""
Delete a worker

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._delete(
f"/v1/admin/workers/{id}",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=NoneType,
)

async def health(
self,
id: str,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> WorkerHealthResponse:
"""
Get the health of a worker

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return await self._get(
f"/v1/admin/workers/{id}/health",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=WorkerHealthResponse,
)


class WorkerResourceWithRawResponse:
def __init__(self, worker: WorkerResource) -> None:
Expand All @@ -194,9 +413,18 @@ def __init__(self, worker: WorkerResource) -> None:
self.create = to_raw_response_wrapper(
worker.create,
)
self.update = to_raw_response_wrapper(
worker.update,
)
self.list = to_raw_response_wrapper(
worker.list,
)
self.delete = to_raw_response_wrapper(
worker.delete,
)
self.health = to_raw_response_wrapper(
worker.health,
)


class AsyncWorkerResourceWithRawResponse:
Expand All @@ -206,9 +434,18 @@ def __init__(self, worker: AsyncWorkerResource) -> None:
self.create = async_to_raw_response_wrapper(
worker.create,
)
self.update = async_to_raw_response_wrapper(
worker.update,
)
self.list = async_to_raw_response_wrapper(
worker.list,
)
self.delete = async_to_raw_response_wrapper(
worker.delete,
)
self.health = async_to_raw_response_wrapper(
worker.health,
)


class WorkerResourceWithStreamingResponse:
Expand All @@ -218,9 +455,18 @@ def __init__(self, worker: WorkerResource) -> None:
self.create = to_streamed_response_wrapper(
worker.create,
)
self.update = to_streamed_response_wrapper(
worker.update,
)
self.list = to_streamed_response_wrapper(
worker.list,
)
self.delete = to_streamed_response_wrapper(
worker.delete,
)
self.health = to_streamed_response_wrapper(
worker.health,
)


class AsyncWorkerResourceWithStreamingResponse:
Expand All @@ -230,6 +476,15 @@ def __init__(self, worker: AsyncWorkerResource) -> None:
self.create = async_to_streamed_response_wrapper(
worker.create,
)
self.update = async_to_streamed_response_wrapper(
worker.update,
)
self.list = async_to_streamed_response_wrapper(
worker.list,
)
self.delete = async_to_streamed_response_wrapper(
worker.delete,
)
self.health = async_to_streamed_response_wrapper(
worker.health,
)
2 changes: 2 additions & 0 deletions src/arcadepy/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@
from .tool_execute_params import ToolExecuteParams as ToolExecuteParams
from .worker_create_params import WorkerCreateParams as WorkerCreateParams
from .worker_list_response import WorkerListResponse as WorkerListResponse
from .worker_update_params import WorkerUpdateParams as WorkerUpdateParams
from .auth_authorize_params import AuthAuthorizeParams as AuthAuthorizeParams
from .execute_tool_response import ExecuteToolResponse as ExecuteToolResponse
from .tool_authorize_params import ToolAuthorizeParams as ToolAuthorizeParams
from .tool_execution_attempt import ToolExecutionAttempt as ToolExecutionAttempt
from .worker_health_response import WorkerHealthResponse as WorkerHealthResponse
17 changes: 17 additions & 0 deletions src/arcadepy/types/worker_health_response.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Optional

from .._models import BaseModel

__all__ = ["WorkerHealthResponse"]


class WorkerHealthResponse(BaseModel):
id: Optional[str] = None

enabled: Optional[bool] = None

healthy: Optional[bool] = None

message: Optional[str] = None
Loading