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
1 change: 1 addition & 0 deletions .redwood-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"cadenya/py.typed",
"cadenya/resources/__init__.py",
"cadenya/resources/accounts.py",
"cadenya/resources/agent_pools.py",
"cadenya/resources/agent_schedules.py",
"cadenya/resources/agent_variations.py",
"cadenya/resources/agents.py",
Expand Down
48 changes: 48 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,54 @@ List workspaces
client.workspaces.list(*, limit=None, cursor=None, sort_order=None, include_info=None, labels=None) -> SyncPage[Workspace]
```

## client.agent_pools

List agent pools

```python
client.agent_pools.list(*, workspace_id=None, limit=None, cursor=None, prefix=None, query=None, state=None, labels=None, sort_order=None, include_info=None) -> SyncPage[AgentPool]
```
Create a new agent pool

```python
client.agent_pools.create(*, workspace_id=None, metadata, spec) -> AgentPool
```
Get an agent pool by ID

```python
client.agent_pools.retrieve(id: str, *, workspace_id=None) -> AgentPool
```
Delete an agent pool

```python
client.agent_pools.delete(id: str, *, workspace_id=None) -> None
```
Update an agent pool

```python
client.agent_pools.update(id: str, *, workspace_id=None, metadata=None, spec=None, update_mask=None) -> AgentPool
```
Activate an agent pool

```python
client.agent_pools.activate(id: str, *, workspace_id=None) -> AgentPool
```
Archive an agent pool

```python
client.agent_pools.archive(id: str, *, workspace_id=None) -> AgentPool
```
Deactivate an agent pool

```python
client.agent_pools.deactivate(id: str, *, workspace_id=None) -> AgentPool
```
Unarchive an agent pool

```python
client.agent_pools.unarchive(id: str, *, workspace_id=None) -> AgentPool
```

## client.agents

List agents
Expand Down
4 changes: 3 additions & 1 deletion cadenya/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
WorkspaceAdmin,
Profiles,
Workspaces,
AgentPools,
Agents,
AiProviderKeys,
Models,
Expand Down Expand Up @@ -69,14 +70,15 @@ def __init__(
http_client=http_client,
max_retries=max_retries,
defaults=defaults,
user_agent="cadenya-python/1.3.0 (api 1.0)",
user_agent="cadenya-python/1.5.0 (api 1.0)",
)
self._core = core
self.accounts = Accounts(core)
self.api_keys = ApiKeys(core)
self.workspace_admin = WorkspaceAdmin(core)
self.profiles = Profiles(core)
self.workspaces = Workspaces(core)
self.agent_pools = AgentPools(core)
self.agents = Agents(core)
self.ai_provider_keys = AiProviderKeys(core)
self.models = Models(core)
Expand Down
1 change: 1 addition & 0 deletions cadenya/resources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from .workspace_admin import WorkspaceAdmin
from .profiles import Profiles
from .workspaces import Workspaces
from .agent_pools import AgentPools
from .agents import Agents
from .agent_schedules import AgentSchedules
from .agent_variations import AgentVariations
Expand Down
170 changes: 170 additions & 0 deletions cadenya/resources/agent_pools.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
# Code generated by redwood. DO NOT EDIT.
from __future__ import annotations

from datetime import datetime
from typing import Any, Dict, List, Literal, Optional, Union

from .. import types
from .._core import Core, RequestOptions, decode_response, parse_datetime, path_param
from .._pagination import SyncPage
from .._sse import Stream


class AgentPools:
def __init__(self, core: Core) -> None:
self._core = core

def list(
self,
*,
workspace_id: Optional[str] = None,
limit: Optional[int] = None,
cursor: Optional[str] = None,
prefix: Optional[str] = None,
query: Optional[str] = None,
state: Optional[types.AgentPoolServiceListAgentPoolsState] = None,
labels: Optional[str] = None,
sort_order: Optional[str] = None,
include_info: Optional[bool] = None,
request_options: Optional[RequestOptions] = None,
) -> SyncPage[types.AgentPool]:
"""List agent pools"""
workspace_id = self._core.resolve_default("workspaceId", "CADENYA_WORKSPACE_ID", workspace_id)
_path = f"/v1/workspaces/{path_param('workspaceId', workspace_id)}/agent_pools"
_query = {
"limit": limit,
"cursor": cursor,
"prefix": prefix,
"query": query,
"state": state,
"labels": labels,
"sortOrder": sort_order,
"includeInfo": include_info,
}
_data = self._core.request("GET", _path, query=_query, request_options=request_options) or {}
_items = decode_response("agent_pools.list", _data, lambda _d: [types.AgentPool._from_json(item) for item in (_d.get("items") or [])])
_next_cursor = (((_data).get("pagination") or {})).get("nextCursor") or ""

def _fetch(_cursor: str) -> SyncPage[types.AgentPool]:
return self.list(workspace_id=workspace_id, limit=limit, cursor=_cursor, prefix=prefix, query=query, state=state, labels=labels, sort_order=sort_order, include_info=include_info, request_options=request_options)

return SyncPage(_items, _next_cursor, _fetch)

def create(
self,
*,
metadata: types.CreateResourceMetadataParam,
spec: types.AgentPoolSpecParam,
workspace_id: Optional[str] = None,
request_options: Optional[RequestOptions] = None,
) -> types.AgentPool:
"""Create a new agent pool"""
workspace_id = self._core.resolve_default("workspaceId", "CADENYA_WORKSPACE_ID", workspace_id)
_path = f"/v1/workspaces/{path_param('workspaceId', workspace_id)}/agent_pools"
_body = {
"metadata": (lambda _v: types._encode_CreateResourceMetadata(_v))(metadata),
"spec": (lambda _v: types._encode_AgentPoolSpec(_v))(spec),
}
_body = {_k: _v for _k, _v in _body.items() if _v is not None}
_data = self._core.request("POST", _path, body=_body, request_options=request_options)
return decode_response("agent_pools.create", _data, lambda _d: types.AgentPool._from_json(_d))

def retrieve(
self,
id: str,
*,
workspace_id: Optional[str] = None,
request_options: Optional[RequestOptions] = None,
) -> types.AgentPool:
"""Get an agent pool by ID"""
workspace_id = self._core.resolve_default("workspaceId", "CADENYA_WORKSPACE_ID", workspace_id)
_path = f"/v1/workspaces/{path_param('workspaceId', workspace_id)}/agent_pools/{path_param('id', id)}"
_data = self._core.request("GET", _path, request_options=request_options)
return decode_response("agent_pools.retrieve", _data, lambda _d: types.AgentPool._from_json(_d))

def delete(
self,
id: str,
*,
workspace_id: Optional[str] = None,
request_options: Optional[RequestOptions] = None,
) -> None:
"""Delete an agent pool"""
workspace_id = self._core.resolve_default("workspaceId", "CADENYA_WORKSPACE_ID", workspace_id)
_path = f"/v1/workspaces/{path_param('workspaceId', workspace_id)}/agent_pools/{path_param('id', id)}"
self._core.request("DELETE", _path, expects_body=False, request_options=request_options)
return None

def update(
self,
id: str,
*,
workspace_id: Optional[str] = None,
metadata: Optional[types.UpdateResourceMetadataParam] = None,
spec: Optional[types.AgentPoolUpdateSpecParam] = None,
update_mask: Optional[str] = None,
request_options: Optional[RequestOptions] = None,
) -> types.AgentPool:
"""Update an agent pool"""
workspace_id = self._core.resolve_default("workspaceId", "CADENYA_WORKSPACE_ID", workspace_id)
_path = f"/v1/workspaces/{path_param('workspaceId', workspace_id)}/agent_pools/{path_param('id', id)}"
_body = {
"metadata": (lambda _v: types._encode_UpdateResourceMetadata(_v))(metadata),
"spec": (lambda _v: types._encode_AgentPoolUpdateSpec(_v))(spec),
"updateMask": update_mask,
}
_body = {_k: _v for _k, _v in _body.items() if _v is not None}
_data = self._core.request("PATCH", _path, body=_body, request_options=request_options)
return decode_response("agent_pools.update", _data, lambda _d: types.AgentPool._from_json(_d))

def activate(
self,
id: str,
*,
workspace_id: Optional[str] = None,
request_options: Optional[RequestOptions] = None,
) -> types.AgentPool:
"""Activate an agent pool"""
workspace_id = self._core.resolve_default("workspaceId", "CADENYA_WORKSPACE_ID", workspace_id)
_path = f"/v1/workspaces/{path_param('workspaceId', workspace_id)}/agent_pools/{path_param('id', id)}:activate"
_data = self._core.request("POST", _path, request_options=request_options)
return decode_response("agent_pools.activate", _data, lambda _d: types.AgentPool._from_json(_d))

def archive(
self,
id: str,
*,
workspace_id: Optional[str] = None,
request_options: Optional[RequestOptions] = None,
) -> types.AgentPool:
"""Archive an agent pool"""
workspace_id = self._core.resolve_default("workspaceId", "CADENYA_WORKSPACE_ID", workspace_id)
_path = f"/v1/workspaces/{path_param('workspaceId', workspace_id)}/agent_pools/{path_param('id', id)}:archive"
_data = self._core.request("POST", _path, request_options=request_options)
return decode_response("agent_pools.archive", _data, lambda _d: types.AgentPool._from_json(_d))

def deactivate(
self,
id: str,
*,
workspace_id: Optional[str] = None,
request_options: Optional[RequestOptions] = None,
) -> types.AgentPool:
"""Deactivate an agent pool"""
workspace_id = self._core.resolve_default("workspaceId", "CADENYA_WORKSPACE_ID", workspace_id)
_path = f"/v1/workspaces/{path_param('workspaceId', workspace_id)}/agent_pools/{path_param('id', id)}:deactivate"
_data = self._core.request("POST", _path, request_options=request_options)
return decode_response("agent_pools.deactivate", _data, lambda _d: types.AgentPool._from_json(_d))

def unarchive(
self,
id: str,
*,
workspace_id: Optional[str] = None,
request_options: Optional[RequestOptions] = None,
) -> types.AgentPool:
"""Unarchive an agent pool"""
workspace_id = self._core.resolve_default("workspaceId", "CADENYA_WORKSPACE_ID", workspace_id)
_path = f"/v1/workspaces/{path_param('workspaceId', workspace_id)}/agent_pools/{path_param('id', id)}:unarchive"
_data = self._core.request("POST", _path, request_options=request_options)
return decode_response("agent_pools.unarchive", _data, lambda _d: types.AgentPool._from_json(_d))
Loading
Loading