diff --git a/.stats.yml b/.stats.yml
index 571d6bb0..21a848c7 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
configured_endpoints: 15
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/brainbase-egrigokhan%2Fbrainbase-0c00485d66a3b7505f3247467ef293fa5fb43a64e90a8b03a4127a2d9b15e6ab.yml
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/brainbase-egrigokhan%2Fbrainbase-a3da5c68a303110755e163fd8678afb64c66d88a9dcd67a7a5dd0ce79cb2056e.yml
diff --git a/README.md b/README.md
index 1cb07b51..140c6f48 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ client = Brainbase(
api_key=os.environ.get("API_KEY"), # This is the default and can be omitted
)
-client.workers.list()
+workers = client.workers.list()
```
While you can provide an `api_key` keyword argument,
@@ -54,7 +54,7 @@ client = AsyncBrainbase(
async def main() -> None:
- await client.workers.list()
+ workers = await client.workers.list()
asyncio.run(main())
diff --git a/api.md b/api.md
index 4e25a402..2022bf88 100644
--- a/api.md
+++ b/api.md
@@ -1,31 +1,64 @@
# Workers
+Types:
+
+```python
+from brainbase.types import (
+ WorkerCreateResponse,
+ WorkerRetrieveResponse,
+ WorkerUpdateResponse,
+ WorkerListResponse,
+)
+```
+
Methods:
-- client.workers.create(\*\*params) -> None
-- client.workers.retrieve(id) -> None
-- client.workers.update(id, \*\*params) -> None
-- client.workers.list() -> None
+- client.workers.create(\*\*params) -> WorkerCreateResponse
+- client.workers.retrieve(id) -> WorkerRetrieveResponse
+- client.workers.update(id, \*\*params) -> WorkerUpdateResponse
+- client.workers.list() -> WorkerListResponse
- client.workers.delete(id) -> None
## Deployments
### Voice
+Types:
+
+```python
+from brainbase.types.workers.deployments import (
+ VoiceCreateResponse,
+ VoiceRetrieveResponse,
+ VoiceUpdateResponse,
+ VoiceListResponse,
+)
+```
+
Methods:
-- client.workers.deployments.voice.create(worker_id, \*\*params) -> None
-- client.workers.deployments.voice.retrieve(deployment_id, \*, worker_id) -> None
-- client.workers.deployments.voice.update(deployment_id, \*, worker_id, \*\*params) -> None
-- client.workers.deployments.voice.list(worker_id) -> None
+- client.workers.deployments.voice.create(worker_id, \*\*params) -> VoiceCreateResponse
+- client.workers.deployments.voice.retrieve(deployment_id, \*, worker_id) -> VoiceRetrieveResponse
+- client.workers.deployments.voice.update(deployment_id, \*, worker_id, \*\*params) -> VoiceUpdateResponse
+- client.workers.deployments.voice.list(worker_id) -> VoiceListResponse
- client.workers.deployments.voice.delete(deployment_id, \*, worker_id) -> None
## Flows
+Types:
+
+```python
+from brainbase.types.workers import (
+ FlowCreateResponse,
+ FlowRetrieveResponse,
+ FlowUpdateResponse,
+ FlowListResponse,
+)
+```
+
Methods:
-- client.workers.flows.create(worker_id, \*\*params) -> None
-- client.workers.flows.retrieve(flow_id, \*, worker_id) -> None
-- client.workers.flows.update(flow_id, \*, worker_id, \*\*params) -> None
-- client.workers.flows.list(worker_id) -> None
+- client.workers.flows.create(worker_id, \*\*params) -> FlowCreateResponse
+- client.workers.flows.retrieve(flow_id, \*, worker_id) -> FlowRetrieveResponse
+- client.workers.flows.update(flow_id, \*, worker_id, \*\*params) -> FlowUpdateResponse
+- client.workers.flows.list(worker_id) -> FlowListResponse
- client.workers.flows.delete(flow_id, \*, worker_id) -> None
diff --git a/src/brainbase/resources/workers/deployments/voice.py b/src/brainbase/resources/workers/deployments/voice.py
index 57cc1313..3b78d1f2 100644
--- a/src/brainbase/resources/workers/deployments/voice.py
+++ b/src/brainbase/resources/workers/deployments/voice.py
@@ -19,6 +19,10 @@
)
from ...._base_client import make_request_options
from ....types.workers.deployments import voice_create_params, voice_update_params
+from ....types.workers.deployments.voice_list_response import VoiceListResponse
+from ....types.workers.deployments.voice_create_response import VoiceCreateResponse
+from ....types.workers.deployments.voice_update_response import VoiceUpdateResponse
+from ....types.workers.deployments.voice_retrieve_response import VoiceRetrieveResponse
__all__ = ["VoiceResource", "AsyncVoiceResource"]
@@ -47,19 +51,14 @@ def create(
self,
worker_id: str,
*,
- flow_id: str,
- name: str,
- config: object | NotGiven = NOT_GIVEN,
- phone_number: str | NotGiven = NOT_GIVEN,
- voice_id: str | NotGiven = NOT_GIVEN,
- voice_provider: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> VoiceCreateResponse:
"""
Create a new voice deployment
@@ -74,24 +73,13 @@ def create(
"""
if not worker_id:
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._post(
f"/api/workers/{worker_id}/deployments/voice",
- body=maybe_transform(
- {
- "flow_id": flow_id,
- "name": name,
- "config": config,
- "phone_number": phone_number,
- "voice_id": voice_id,
- "voice_provider": voice_provider,
- },
- voice_create_params.VoiceCreateParams,
- ),
+ body=maybe_transform(body, voice_create_params.VoiceCreateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=VoiceCreateResponse,
)
def retrieve(
@@ -105,7 +93,7 @@ def retrieve(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> VoiceRetrieveResponse:
"""
Get a single voice deployment
@@ -122,13 +110,12 @@ def retrieve(
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
if not deployment_id:
raise ValueError(f"Expected a non-empty value for `deployment_id` but received {deployment_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._get(
f"/api/workers/{worker_id}/deployments/voice/{deployment_id}",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=VoiceRetrieveResponse,
)
def update(
@@ -136,19 +123,14 @@ def update(
deployment_id: str,
*,
worker_id: str,
- config: object | NotGiven = NOT_GIVEN,
- flow_id: str | NotGiven = NOT_GIVEN,
- name: str | NotGiven = NOT_GIVEN,
- phone_number: str | NotGiven = NOT_GIVEN,
- voice_id: str | NotGiven = NOT_GIVEN,
- voice_provider: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> VoiceUpdateResponse:
"""
Update a voice deployment
@@ -165,24 +147,13 @@ def update(
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
if not deployment_id:
raise ValueError(f"Expected a non-empty value for `deployment_id` but received {deployment_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._put(
f"/api/workers/{worker_id}/deployments/voice/{deployment_id}",
- body=maybe_transform(
- {
- "config": config,
- "flow_id": flow_id,
- "name": name,
- "phone_number": phone_number,
- "voice_id": voice_id,
- "voice_provider": voice_provider,
- },
- voice_update_params.VoiceUpdateParams,
- ),
+ body=maybe_transform(body, voice_update_params.VoiceUpdateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=VoiceUpdateResponse,
)
def list(
@@ -195,7 +166,7 @@ def list(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> VoiceListResponse:
"""
Get all voice deployments for a worker
@@ -210,13 +181,12 @@ def list(
"""
if not worker_id:
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._get(
f"/api/workers/{worker_id}/deployments/voice",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=VoiceListResponse,
)
def delete(
@@ -281,19 +251,14 @@ async def create(
self,
worker_id: str,
*,
- flow_id: str,
- name: str,
- config: object | NotGiven = NOT_GIVEN,
- phone_number: str | NotGiven = NOT_GIVEN,
- voice_id: str | NotGiven = NOT_GIVEN,
- voice_provider: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> VoiceCreateResponse:
"""
Create a new voice deployment
@@ -308,24 +273,13 @@ async def create(
"""
if not worker_id:
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._post(
f"/api/workers/{worker_id}/deployments/voice",
- body=await async_maybe_transform(
- {
- "flow_id": flow_id,
- "name": name,
- "config": config,
- "phone_number": phone_number,
- "voice_id": voice_id,
- "voice_provider": voice_provider,
- },
- voice_create_params.VoiceCreateParams,
- ),
+ body=await async_maybe_transform(body, voice_create_params.VoiceCreateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=VoiceCreateResponse,
)
async def retrieve(
@@ -339,7 +293,7 @@ async def retrieve(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> VoiceRetrieveResponse:
"""
Get a single voice deployment
@@ -356,13 +310,12 @@ async def retrieve(
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
if not deployment_id:
raise ValueError(f"Expected a non-empty value for `deployment_id` but received {deployment_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._get(
f"/api/workers/{worker_id}/deployments/voice/{deployment_id}",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=VoiceRetrieveResponse,
)
async def update(
@@ -370,19 +323,14 @@ async def update(
deployment_id: str,
*,
worker_id: str,
- config: object | NotGiven = NOT_GIVEN,
- flow_id: str | NotGiven = NOT_GIVEN,
- name: str | NotGiven = NOT_GIVEN,
- phone_number: str | NotGiven = NOT_GIVEN,
- voice_id: str | NotGiven = NOT_GIVEN,
- voice_provider: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> VoiceUpdateResponse:
"""
Update a voice deployment
@@ -399,24 +347,13 @@ async def update(
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
if not deployment_id:
raise ValueError(f"Expected a non-empty value for `deployment_id` but received {deployment_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._put(
f"/api/workers/{worker_id}/deployments/voice/{deployment_id}",
- body=await async_maybe_transform(
- {
- "config": config,
- "flow_id": flow_id,
- "name": name,
- "phone_number": phone_number,
- "voice_id": voice_id,
- "voice_provider": voice_provider,
- },
- voice_update_params.VoiceUpdateParams,
- ),
+ body=await async_maybe_transform(body, voice_update_params.VoiceUpdateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=VoiceUpdateResponse,
)
async def list(
@@ -429,7 +366,7 @@ async def list(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> VoiceListResponse:
"""
Get all voice deployments for a worker
@@ -444,13 +381,12 @@ async def list(
"""
if not worker_id:
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._get(
f"/api/workers/{worker_id}/deployments/voice",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=VoiceListResponse,
)
async def delete(
diff --git a/src/brainbase/resources/workers/flows.py b/src/brainbase/resources/workers/flows.py
index f91b1a3b..d53ea49e 100644
--- a/src/brainbase/resources/workers/flows.py
+++ b/src/brainbase/resources/workers/flows.py
@@ -19,6 +19,10 @@
)
from ..._base_client import make_request_options
from ...types.workers import flow_create_params, flow_update_params
+from ...types.workers.flow_list_response import FlowListResponse
+from ...types.workers.flow_create_response import FlowCreateResponse
+from ...types.workers.flow_update_response import FlowUpdateResponse
+from ...types.workers.flow_retrieve_response import FlowRetrieveResponse
__all__ = ["FlowsResource", "AsyncFlowsResource"]
@@ -47,16 +51,14 @@ def create(
self,
worker_id: str,
*,
- name: str,
- code: str | NotGiven = NOT_GIVEN,
- label: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> FlowCreateResponse:
"""
Create a new flow
@@ -71,21 +73,13 @@ def create(
"""
if not worker_id:
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._post(
f"/api/workers/{worker_id}/flows",
- body=maybe_transform(
- {
- "name": name,
- "code": code,
- "label": label,
- },
- flow_create_params.FlowCreateParams,
- ),
+ body=maybe_transform(body, flow_create_params.FlowCreateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=FlowCreateResponse,
)
def retrieve(
@@ -99,7 +93,7 @@ def retrieve(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> FlowRetrieveResponse:
"""
Get a single flow
@@ -116,13 +110,12 @@ def retrieve(
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
if not flow_id:
raise ValueError(f"Expected a non-empty value for `flow_id` but received {flow_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._get(
f"/api/workers/{worker_id}/flows/{flow_id}",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=FlowRetrieveResponse,
)
def update(
@@ -130,16 +123,14 @@ def update(
flow_id: str,
*,
worker_id: str,
- code: str | NotGiven = NOT_GIVEN,
- label: str | NotGiven = NOT_GIVEN,
- name: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> FlowUpdateResponse:
"""
Update a flow
@@ -156,21 +147,13 @@ def update(
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
if not flow_id:
raise ValueError(f"Expected a non-empty value for `flow_id` but received {flow_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._put(
f"/api/workers/{worker_id}/flows/{flow_id}",
- body=maybe_transform(
- {
- "code": code,
- "label": label,
- "name": name,
- },
- flow_update_params.FlowUpdateParams,
- ),
+ body=maybe_transform(body, flow_update_params.FlowUpdateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=FlowUpdateResponse,
)
def list(
@@ -183,7 +166,7 @@ def list(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> FlowListResponse:
"""
Get all flows for a worker
@@ -198,13 +181,12 @@ def list(
"""
if not worker_id:
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._get(
f"/api/workers/{worker_id}/flows",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=FlowListResponse,
)
def delete(
@@ -269,16 +251,14 @@ async def create(
self,
worker_id: str,
*,
- name: str,
- code: str | NotGiven = NOT_GIVEN,
- label: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> FlowCreateResponse:
"""
Create a new flow
@@ -293,21 +273,13 @@ async def create(
"""
if not worker_id:
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._post(
f"/api/workers/{worker_id}/flows",
- body=await async_maybe_transform(
- {
- "name": name,
- "code": code,
- "label": label,
- },
- flow_create_params.FlowCreateParams,
- ),
+ body=await async_maybe_transform(body, flow_create_params.FlowCreateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=FlowCreateResponse,
)
async def retrieve(
@@ -321,7 +293,7 @@ async def retrieve(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> FlowRetrieveResponse:
"""
Get a single flow
@@ -338,13 +310,12 @@ async def retrieve(
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
if not flow_id:
raise ValueError(f"Expected a non-empty value for `flow_id` but received {flow_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._get(
f"/api/workers/{worker_id}/flows/{flow_id}",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=FlowRetrieveResponse,
)
async def update(
@@ -352,16 +323,14 @@ async def update(
flow_id: str,
*,
worker_id: str,
- code: str | NotGiven = NOT_GIVEN,
- label: str | NotGiven = NOT_GIVEN,
- name: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> FlowUpdateResponse:
"""
Update a flow
@@ -378,21 +347,13 @@ async def update(
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
if not flow_id:
raise ValueError(f"Expected a non-empty value for `flow_id` but received {flow_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._put(
f"/api/workers/{worker_id}/flows/{flow_id}",
- body=await async_maybe_transform(
- {
- "code": code,
- "label": label,
- "name": name,
- },
- flow_update_params.FlowUpdateParams,
- ),
+ body=await async_maybe_transform(body, flow_update_params.FlowUpdateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=FlowUpdateResponse,
)
async def list(
@@ -405,7 +366,7 @@ async def list(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> FlowListResponse:
"""
Get all flows for a worker
@@ -420,13 +381,12 @@ async def list(
"""
if not worker_id:
raise ValueError(f"Expected a non-empty value for `worker_id` but received {worker_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._get(
f"/api/workers/{worker_id}/flows",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=FlowListResponse,
)
async def delete(
diff --git a/src/brainbase/resources/workers/workers.py b/src/brainbase/resources/workers/workers.py
index 323da4da..9d0ca24f 100644
--- a/src/brainbase/resources/workers/workers.py
+++ b/src/brainbase/resources/workers/workers.py
@@ -35,6 +35,10 @@
DeploymentsResourceWithStreamingResponse,
AsyncDeploymentsResourceWithStreamingResponse,
)
+from ...types.worker_list_response import WorkerListResponse
+from ...types.worker_create_response import WorkerCreateResponse
+from ...types.worker_update_response import WorkerUpdateResponse
+from ...types.worker_retrieve_response import WorkerRetrieveResponse
__all__ = ["WorkersResource", "AsyncWorkersResource"]
@@ -70,16 +74,14 @@ def with_streaming_response(self) -> WorkersResourceWithStreamingResponse:
def create(
self,
*,
- name: str,
- description: str | NotGiven = NOT_GIVEN,
- status: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> WorkerCreateResponse:
"""
Create a new worker
@@ -92,21 +94,13 @@ def create(
timeout: Override the client-level default timeout for this request, in seconds
"""
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._post(
"/api/workers",
- body=maybe_transform(
- {
- "name": name,
- "description": description,
- "status": status,
- },
- worker_create_params.WorkerCreateParams,
- ),
+ body=maybe_transform(body, worker_create_params.WorkerCreateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=WorkerCreateResponse,
)
def retrieve(
@@ -119,7 +113,7 @@ def retrieve(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> WorkerRetrieveResponse:
"""
Get a single worker
@@ -134,29 +128,26 @@ def retrieve(
"""
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._get(
f"/api/workers/{id}",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=WorkerRetrieveResponse,
)
def update(
self,
id: str,
*,
- description: str | NotGiven = NOT_GIVEN,
- name: str | NotGiven = NOT_GIVEN,
- status: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> WorkerUpdateResponse:
"""
Update a worker
@@ -171,21 +162,13 @@ def update(
"""
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._post(
f"/api/workers/{id}",
- body=maybe_transform(
- {
- "description": description,
- "name": name,
- "status": status,
- },
- worker_update_params.WorkerUpdateParams,
- ),
+ body=maybe_transform(body, worker_update_params.WorkerUpdateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=WorkerUpdateResponse,
)
def list(
@@ -197,15 +180,14 @@ def list(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> WorkerListResponse:
"""Get all workers for the team"""
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._get(
"/api/workers",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=WorkerListResponse,
)
def delete(
@@ -274,16 +256,14 @@ def with_streaming_response(self) -> AsyncWorkersResourceWithStreamingResponse:
async def create(
self,
*,
- name: str,
- description: str | NotGiven = NOT_GIVEN,
- status: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> WorkerCreateResponse:
"""
Create a new worker
@@ -296,21 +276,13 @@ async def create(
timeout: Override the client-level default timeout for this request, in seconds
"""
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._post(
"/api/workers",
- body=await async_maybe_transform(
- {
- "name": name,
- "description": description,
- "status": status,
- },
- worker_create_params.WorkerCreateParams,
- ),
+ body=await async_maybe_transform(body, worker_create_params.WorkerCreateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=WorkerCreateResponse,
)
async def retrieve(
@@ -323,7 +295,7 @@ async def retrieve(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> WorkerRetrieveResponse:
"""
Get a single worker
@@ -338,29 +310,26 @@ async def retrieve(
"""
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._get(
f"/api/workers/{id}",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=WorkerRetrieveResponse,
)
async def update(
self,
id: str,
*,
- description: str | NotGiven = NOT_GIVEN,
- name: str | NotGiven = NOT_GIVEN,
- status: str | NotGiven = NOT_GIVEN,
+ body: object,
# 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:
+ ) -> WorkerUpdateResponse:
"""
Update a worker
@@ -375,21 +344,13 @@ async def update(
"""
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._post(
f"/api/workers/{id}",
- body=await async_maybe_transform(
- {
- "description": description,
- "name": name,
- "status": status,
- },
- worker_update_params.WorkerUpdateParams,
- ),
+ body=await async_maybe_transform(body, worker_update_params.WorkerUpdateParams),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=WorkerUpdateResponse,
)
async def list(
@@ -401,15 +362,14 @@ async def list(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
+ ) -> WorkerListResponse:
"""Get all workers for the team"""
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._get(
"/api/workers",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=NoneType,
+ cast_to=WorkerListResponse,
)
async def delete(
diff --git a/src/brainbase/types/__init__.py b/src/brainbase/types/__init__.py
index 065250e2..65b30e21 100644
--- a/src/brainbase/types/__init__.py
+++ b/src/brainbase/types/__init__.py
@@ -3,4 +3,8 @@
from __future__ import annotations
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 .worker_create_response import WorkerCreateResponse as WorkerCreateResponse
+from .worker_update_response import WorkerUpdateResponse as WorkerUpdateResponse
+from .worker_retrieve_response import WorkerRetrieveResponse as WorkerRetrieveResponse
diff --git a/src/brainbase/types/worker_create_params.py b/src/brainbase/types/worker_create_params.py
index 757c0420..97d89932 100644
--- a/src/brainbase/types/worker_create_params.py
+++ b/src/brainbase/types/worker_create_params.py
@@ -8,8 +8,4 @@
class WorkerCreateParams(TypedDict, total=False):
- name: Required[str]
-
- description: str
-
- status: str
+ body: Required[object]
diff --git a/src/brainbase/types/worker_create_response.py b/src/brainbase/types/worker_create_response.py
new file mode 100644
index 00000000..4b01e0db
--- /dev/null
+++ b/src/brainbase/types/worker_create_response.py
@@ -0,0 +1,38 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+from datetime import datetime
+
+from pydantic import Field as FieldInfo
+
+from .._models import BaseModel
+
+__all__ = ["WorkerCreateResponse"]
+
+
+class WorkerCreateResponse(BaseModel):
+ id: str
+
+ created_at: datetime = FieldInfo(alias="createdAt")
+
+ deployments: object
+
+ flows: object
+
+ integrations: object
+
+ name: str
+
+ resources: object
+
+ team: object
+
+ team_id: str = FieldInfo(alias="teamId")
+
+ updated_at: datetime = FieldInfo(alias="updatedAt")
+
+ description: Optional[str] = None
+
+ last_refreshed_at: Optional[datetime] = FieldInfo(alias="lastRefreshedAt", default=None)
+
+ status: Optional[str] = None
diff --git a/src/brainbase/types/worker_list_response.py b/src/brainbase/types/worker_list_response.py
new file mode 100644
index 00000000..6b869ff7
--- /dev/null
+++ b/src/brainbase/types/worker_list_response.py
@@ -0,0 +1,42 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import List, Optional
+from datetime import datetime
+from typing_extensions import TypeAlias
+
+from pydantic import Field as FieldInfo
+
+from .._models import BaseModel
+
+__all__ = ["WorkerListResponse", "WorkerListResponseItem"]
+
+
+class WorkerListResponseItem(BaseModel):
+ id: str
+
+ created_at: datetime = FieldInfo(alias="createdAt")
+
+ deployments: object
+
+ flows: object
+
+ integrations: object
+
+ name: str
+
+ resources: object
+
+ team: object
+
+ team_id: str = FieldInfo(alias="teamId")
+
+ updated_at: datetime = FieldInfo(alias="updatedAt")
+
+ description: Optional[str] = None
+
+ last_refreshed_at: Optional[datetime] = FieldInfo(alias="lastRefreshedAt", default=None)
+
+ status: Optional[str] = None
+
+
+WorkerListResponse: TypeAlias = List[WorkerListResponseItem]
diff --git a/src/brainbase/types/worker_retrieve_response.py b/src/brainbase/types/worker_retrieve_response.py
new file mode 100644
index 00000000..f77b5b4e
--- /dev/null
+++ b/src/brainbase/types/worker_retrieve_response.py
@@ -0,0 +1,38 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+from datetime import datetime
+
+from pydantic import Field as FieldInfo
+
+from .._models import BaseModel
+
+__all__ = ["WorkerRetrieveResponse"]
+
+
+class WorkerRetrieveResponse(BaseModel):
+ id: str
+
+ created_at: datetime = FieldInfo(alias="createdAt")
+
+ deployments: object
+
+ flows: object
+
+ integrations: object
+
+ name: str
+
+ resources: object
+
+ team: object
+
+ team_id: str = FieldInfo(alias="teamId")
+
+ updated_at: datetime = FieldInfo(alias="updatedAt")
+
+ description: Optional[str] = None
+
+ last_refreshed_at: Optional[datetime] = FieldInfo(alias="lastRefreshedAt", default=None)
+
+ status: Optional[str] = None
diff --git a/src/brainbase/types/worker_update_params.py b/src/brainbase/types/worker_update_params.py
index bfa7a019..004145ec 100644
--- a/src/brainbase/types/worker_update_params.py
+++ b/src/brainbase/types/worker_update_params.py
@@ -2,14 +2,10 @@
from __future__ import annotations
-from typing_extensions import TypedDict
+from typing_extensions import Required, TypedDict
__all__ = ["WorkerUpdateParams"]
class WorkerUpdateParams(TypedDict, total=False):
- description: str
-
- name: str
-
- status: str
+ body: Required[object]
diff --git a/src/brainbase/types/worker_update_response.py b/src/brainbase/types/worker_update_response.py
new file mode 100644
index 00000000..0f262c84
--- /dev/null
+++ b/src/brainbase/types/worker_update_response.py
@@ -0,0 +1,38 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+from datetime import datetime
+
+from pydantic import Field as FieldInfo
+
+from .._models import BaseModel
+
+__all__ = ["WorkerUpdateResponse"]
+
+
+class WorkerUpdateResponse(BaseModel):
+ id: str
+
+ created_at: datetime = FieldInfo(alias="createdAt")
+
+ deployments: object
+
+ flows: object
+
+ integrations: object
+
+ name: str
+
+ resources: object
+
+ team: object
+
+ team_id: str = FieldInfo(alias="teamId")
+
+ updated_at: datetime = FieldInfo(alias="updatedAt")
+
+ description: Optional[str] = None
+
+ last_refreshed_at: Optional[datetime] = FieldInfo(alias="lastRefreshedAt", default=None)
+
+ status: Optional[str] = None
diff --git a/src/brainbase/types/workers/__init__.py b/src/brainbase/types/workers/__init__.py
index 40ad3726..8d5debbd 100644
--- a/src/brainbase/types/workers/__init__.py
+++ b/src/brainbase/types/workers/__init__.py
@@ -3,4 +3,8 @@
from __future__ import annotations
from .flow_create_params import FlowCreateParams as FlowCreateParams
+from .flow_list_response import FlowListResponse as FlowListResponse
from .flow_update_params import FlowUpdateParams as FlowUpdateParams
+from .flow_create_response import FlowCreateResponse as FlowCreateResponse
+from .flow_update_response import FlowUpdateResponse as FlowUpdateResponse
+from .flow_retrieve_response import FlowRetrieveResponse as FlowRetrieveResponse
diff --git a/src/brainbase/types/workers/deployments/__init__.py b/src/brainbase/types/workers/deployments/__init__.py
index 1fb49e95..dbdb876a 100644
--- a/src/brainbase/types/workers/deployments/__init__.py
+++ b/src/brainbase/types/workers/deployments/__init__.py
@@ -3,4 +3,8 @@
from __future__ import annotations
from .voice_create_params import VoiceCreateParams as VoiceCreateParams
+from .voice_list_response import VoiceListResponse as VoiceListResponse
from .voice_update_params import VoiceUpdateParams as VoiceUpdateParams
+from .voice_create_response import VoiceCreateResponse as VoiceCreateResponse
+from .voice_update_response import VoiceUpdateResponse as VoiceUpdateResponse
+from .voice_retrieve_response import VoiceRetrieveResponse as VoiceRetrieveResponse
diff --git a/src/brainbase/types/workers/deployments/voice_create_params.py b/src/brainbase/types/workers/deployments/voice_create_params.py
index b877d0aa..3263cc6b 100644
--- a/src/brainbase/types/workers/deployments/voice_create_params.py
+++ b/src/brainbase/types/workers/deployments/voice_create_params.py
@@ -2,22 +2,10 @@
from __future__ import annotations
-from typing_extensions import Required, Annotated, TypedDict
-
-from ...._utils import PropertyInfo
+from typing_extensions import Required, TypedDict
__all__ = ["VoiceCreateParams"]
class VoiceCreateParams(TypedDict, total=False):
- flow_id: Required[Annotated[str, PropertyInfo(alias="flowId")]]
-
- name: Required[str]
-
- config: object
-
- phone_number: Annotated[str, PropertyInfo(alias="phoneNumber")]
-
- voice_id: Annotated[str, PropertyInfo(alias="voiceId")]
-
- voice_provider: Annotated[str, PropertyInfo(alias="voiceProvider")]
+ body: Required[object]
diff --git a/src/brainbase/types/workers/deployments/voice_create_response.py b/src/brainbase/types/workers/deployments/voice_create_response.py
new file mode 100644
index 00000000..407e1d5f
--- /dev/null
+++ b/src/brainbase/types/workers/deployments/voice_create_response.py
@@ -0,0 +1,21 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+
+from pydantic import Field as FieldInfo
+
+from ...._models import BaseModel
+
+__all__ = ["VoiceCreateResponse"]
+
+
+class VoiceCreateResponse(BaseModel):
+ id: str
+
+ delegate_aux_deployments: object
+
+ phone_number: Optional[str] = FieldInfo(alias="phoneNumber", default=None)
+
+ voice_id: Optional[str] = FieldInfo(alias="voiceId", default=None)
+
+ voice_provider: Optional[str] = FieldInfo(alias="voiceProvider", default=None)
diff --git a/src/brainbase/types/workers/deployments/voice_list_response.py b/src/brainbase/types/workers/deployments/voice_list_response.py
new file mode 100644
index 00000000..a710e4e5
--- /dev/null
+++ b/src/brainbase/types/workers/deployments/voice_list_response.py
@@ -0,0 +1,25 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import List, Optional
+from typing_extensions import TypeAlias
+
+from pydantic import Field as FieldInfo
+
+from ...._models import BaseModel
+
+__all__ = ["VoiceListResponse", "VoiceListResponseItem"]
+
+
+class VoiceListResponseItem(BaseModel):
+ id: str
+
+ delegate_aux_deployments: object
+
+ phone_number: Optional[str] = FieldInfo(alias="phoneNumber", default=None)
+
+ voice_id: Optional[str] = FieldInfo(alias="voiceId", default=None)
+
+ voice_provider: Optional[str] = FieldInfo(alias="voiceProvider", default=None)
+
+
+VoiceListResponse: TypeAlias = List[VoiceListResponseItem]
diff --git a/src/brainbase/types/workers/deployments/voice_retrieve_response.py b/src/brainbase/types/workers/deployments/voice_retrieve_response.py
new file mode 100644
index 00000000..f976eea3
--- /dev/null
+++ b/src/brainbase/types/workers/deployments/voice_retrieve_response.py
@@ -0,0 +1,21 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+
+from pydantic import Field as FieldInfo
+
+from ...._models import BaseModel
+
+__all__ = ["VoiceRetrieveResponse"]
+
+
+class VoiceRetrieveResponse(BaseModel):
+ id: str
+
+ delegate_aux_deployments: object
+
+ phone_number: Optional[str] = FieldInfo(alias="phoneNumber", default=None)
+
+ voice_id: Optional[str] = FieldInfo(alias="voiceId", default=None)
+
+ voice_provider: Optional[str] = FieldInfo(alias="voiceProvider", default=None)
diff --git a/src/brainbase/types/workers/deployments/voice_update_params.py b/src/brainbase/types/workers/deployments/voice_update_params.py
index b8bc8109..690c3293 100644
--- a/src/brainbase/types/workers/deployments/voice_update_params.py
+++ b/src/brainbase/types/workers/deployments/voice_update_params.py
@@ -12,14 +12,4 @@
class VoiceUpdateParams(TypedDict, total=False):
worker_id: Required[Annotated[str, PropertyInfo(alias="workerId")]]
- config: object
-
- flow_id: Annotated[str, PropertyInfo(alias="flowId")]
-
- name: str
-
- phone_number: Annotated[str, PropertyInfo(alias="phoneNumber")]
-
- voice_id: Annotated[str, PropertyInfo(alias="voiceId")]
-
- voice_provider: Annotated[str, PropertyInfo(alias="voiceProvider")]
+ body: Required[object]
diff --git a/src/brainbase/types/workers/deployments/voice_update_response.py b/src/brainbase/types/workers/deployments/voice_update_response.py
new file mode 100644
index 00000000..289498b1
--- /dev/null
+++ b/src/brainbase/types/workers/deployments/voice_update_response.py
@@ -0,0 +1,21 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+
+from pydantic import Field as FieldInfo
+
+from ...._models import BaseModel
+
+__all__ = ["VoiceUpdateResponse"]
+
+
+class VoiceUpdateResponse(BaseModel):
+ id: str
+
+ delegate_aux_deployments: object
+
+ phone_number: Optional[str] = FieldInfo(alias="phoneNumber", default=None)
+
+ voice_id: Optional[str] = FieldInfo(alias="voiceId", default=None)
+
+ voice_provider: Optional[str] = FieldInfo(alias="voiceProvider", default=None)
diff --git a/src/brainbase/types/workers/flow_create_params.py b/src/brainbase/types/workers/flow_create_params.py
index 8d5a2517..3efffb3d 100644
--- a/src/brainbase/types/workers/flow_create_params.py
+++ b/src/brainbase/types/workers/flow_create_params.py
@@ -8,8 +8,4 @@
class FlowCreateParams(TypedDict, total=False):
- name: Required[str]
-
- code: str
-
- label: str
+ body: Required[object]
diff --git a/src/brainbase/types/workers/flow_create_response.py b/src/brainbase/types/workers/flow_create_response.py
new file mode 100644
index 00000000..ebd7a30b
--- /dev/null
+++ b/src/brainbase/types/workers/flow_create_response.py
@@ -0,0 +1,32 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+from datetime import datetime
+
+from pydantic import Field as FieldInfo
+
+from ..._models import BaseModel
+
+__all__ = ["FlowCreateResponse"]
+
+
+class FlowCreateResponse(BaseModel):
+ id: str
+
+ code: str
+
+ created_at: datetime = FieldInfo(alias="createdAt")
+
+ deployments: object
+
+ name: str
+
+ updated_at: datetime = FieldInfo(alias="updatedAt")
+
+ version: int
+
+ worker: object
+
+ worker_id: str = FieldInfo(alias="workerId")
+
+ label: Optional[str] = None
diff --git a/src/brainbase/types/workers/flow_list_response.py b/src/brainbase/types/workers/flow_list_response.py
new file mode 100644
index 00000000..ef9f7e0d
--- /dev/null
+++ b/src/brainbase/types/workers/flow_list_response.py
@@ -0,0 +1,36 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import List, Optional
+from datetime import datetime
+from typing_extensions import TypeAlias
+
+from pydantic import Field as FieldInfo
+
+from ..._models import BaseModel
+
+__all__ = ["FlowListResponse", "FlowListResponseItem"]
+
+
+class FlowListResponseItem(BaseModel):
+ id: str
+
+ code: str
+
+ created_at: datetime = FieldInfo(alias="createdAt")
+
+ deployments: object
+
+ name: str
+
+ updated_at: datetime = FieldInfo(alias="updatedAt")
+
+ version: int
+
+ worker: object
+
+ worker_id: str = FieldInfo(alias="workerId")
+
+ label: Optional[str] = None
+
+
+FlowListResponse: TypeAlias = List[FlowListResponseItem]
diff --git a/src/brainbase/types/workers/flow_retrieve_response.py b/src/brainbase/types/workers/flow_retrieve_response.py
new file mode 100644
index 00000000..cab3dfa6
--- /dev/null
+++ b/src/brainbase/types/workers/flow_retrieve_response.py
@@ -0,0 +1,32 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+from datetime import datetime
+
+from pydantic import Field as FieldInfo
+
+from ..._models import BaseModel
+
+__all__ = ["FlowRetrieveResponse"]
+
+
+class FlowRetrieveResponse(BaseModel):
+ id: str
+
+ code: str
+
+ created_at: datetime = FieldInfo(alias="createdAt")
+
+ deployments: object
+
+ name: str
+
+ updated_at: datetime = FieldInfo(alias="updatedAt")
+
+ version: int
+
+ worker: object
+
+ worker_id: str = FieldInfo(alias="workerId")
+
+ label: Optional[str] = None
diff --git a/src/brainbase/types/workers/flow_update_params.py b/src/brainbase/types/workers/flow_update_params.py
index e8b884cc..f7bc3154 100644
--- a/src/brainbase/types/workers/flow_update_params.py
+++ b/src/brainbase/types/workers/flow_update_params.py
@@ -12,8 +12,4 @@
class FlowUpdateParams(TypedDict, total=False):
worker_id: Required[Annotated[str, PropertyInfo(alias="workerId")]]
- code: str
-
- label: str
-
- name: str
+ body: Required[object]
diff --git a/src/brainbase/types/workers/flow_update_response.py b/src/brainbase/types/workers/flow_update_response.py
new file mode 100644
index 00000000..4ac96876
--- /dev/null
+++ b/src/brainbase/types/workers/flow_update_response.py
@@ -0,0 +1,32 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+from datetime import datetime
+
+from pydantic import Field as FieldInfo
+
+from ..._models import BaseModel
+
+__all__ = ["FlowUpdateResponse"]
+
+
+class FlowUpdateResponse(BaseModel):
+ id: str
+
+ code: str
+
+ created_at: datetime = FieldInfo(alias="createdAt")
+
+ deployments: object
+
+ name: str
+
+ updated_at: datetime = FieldInfo(alias="updatedAt")
+
+ version: int
+
+ worker: object
+
+ worker_id: str = FieldInfo(alias="workerId")
+
+ label: Optional[str] = None
diff --git a/tests/api_resources/test_workers.py b/tests/api_resources/test_workers.py
index 2a9a36aa..d06a25f2 100644
--- a/tests/api_resources/test_workers.py
+++ b/tests/api_resources/test_workers.py
@@ -8,6 +8,13 @@
import pytest
from brainbase import Brainbase, AsyncBrainbase
+from tests.utils import assert_matches_type
+from brainbase.types import (
+ WorkerListResponse,
+ WorkerCreateResponse,
+ WorkerUpdateResponse,
+ WorkerRetrieveResponse,
+)
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
@@ -19,43 +26,33 @@ class TestWorkers:
@parametrize
def test_method_create(self, client: Brainbase) -> None:
worker = client.workers.create(
- name="name",
+ body={},
)
- assert worker is None
-
- @pytest.mark.skip()
- @parametrize
- def test_method_create_with_all_params(self, client: Brainbase) -> None:
- worker = client.workers.create(
- name="name",
- description="description",
- status="status",
- )
- assert worker is None
+ assert_matches_type(WorkerCreateResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
def test_raw_response_create(self, client: Brainbase) -> None:
response = client.workers.with_raw_response.create(
- name="name",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = response.parse()
- assert worker is None
+ assert_matches_type(WorkerCreateResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
def test_streaming_response_create(self, client: Brainbase) -> None:
with client.workers.with_streaming_response.create(
- name="name",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = response.parse()
- assert worker is None
+ assert_matches_type(WorkerCreateResponse, worker, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -65,7 +62,7 @@ def test_method_retrieve(self, client: Brainbase) -> None:
worker = client.workers.retrieve(
"id",
)
- assert worker is None
+ assert_matches_type(WorkerRetrieveResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -77,7 +74,7 @@ def test_raw_response_retrieve(self, client: Brainbase) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = response.parse()
- assert worker is None
+ assert_matches_type(WorkerRetrieveResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -89,7 +86,7 @@ def test_streaming_response_retrieve(self, client: Brainbase) -> None:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = response.parse()
- assert worker is None
+ assert_matches_type(WorkerRetrieveResponse, worker, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -106,43 +103,35 @@ def test_path_params_retrieve(self, client: Brainbase) -> None:
def test_method_update(self, client: Brainbase) -> None:
worker = client.workers.update(
id="id",
+ body={},
)
- assert worker is None
-
- @pytest.mark.skip()
- @parametrize
- def test_method_update_with_all_params(self, client: Brainbase) -> None:
- worker = client.workers.update(
- id="id",
- description="description",
- name="name",
- status="status",
- )
- assert worker is None
+ assert_matches_type(WorkerUpdateResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
def test_raw_response_update(self, client: Brainbase) -> None:
response = client.workers.with_raw_response.update(
id="id",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = response.parse()
- assert worker is None
+ assert_matches_type(WorkerUpdateResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
def test_streaming_response_update(self, client: Brainbase) -> None:
with client.workers.with_streaming_response.update(
id="id",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = response.parse()
- assert worker is None
+ assert_matches_type(WorkerUpdateResponse, worker, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -152,13 +141,14 @@ def test_path_params_update(self, client: Brainbase) -> None:
with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
client.workers.with_raw_response.update(
id="",
+ body={},
)
@pytest.mark.skip()
@parametrize
def test_method_list(self, client: Brainbase) -> None:
worker = client.workers.list()
- assert worker is None
+ assert_matches_type(WorkerListResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -168,7 +158,7 @@ def test_raw_response_list(self, client: Brainbase) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = response.parse()
- assert worker is None
+ assert_matches_type(WorkerListResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -178,7 +168,7 @@ def test_streaming_response_list(self, client: Brainbase) -> None:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = response.parse()
- assert worker is None
+ assert_matches_type(WorkerListResponse, worker, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -232,43 +222,33 @@ class TestAsyncWorkers:
@parametrize
async def test_method_create(self, async_client: AsyncBrainbase) -> None:
worker = await async_client.workers.create(
- name="name",
+ body={},
)
- assert worker is None
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_create_with_all_params(self, async_client: AsyncBrainbase) -> None:
- worker = await async_client.workers.create(
- name="name",
- description="description",
- status="status",
- )
- assert worker is None
+ assert_matches_type(WorkerCreateResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_raw_response_create(self, async_client: AsyncBrainbase) -> None:
response = await async_client.workers.with_raw_response.create(
- name="name",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = await response.parse()
- assert worker is None
+ assert_matches_type(WorkerCreateResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_streaming_response_create(self, async_client: AsyncBrainbase) -> None:
async with async_client.workers.with_streaming_response.create(
- name="name",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = await response.parse()
- assert worker is None
+ assert_matches_type(WorkerCreateResponse, worker, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -278,7 +258,7 @@ async def test_method_retrieve(self, async_client: AsyncBrainbase) -> None:
worker = await async_client.workers.retrieve(
"id",
)
- assert worker is None
+ assert_matches_type(WorkerRetrieveResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -290,7 +270,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncBrainbase) -> None
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = await response.parse()
- assert worker is None
+ assert_matches_type(WorkerRetrieveResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -302,7 +282,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncBrainbase) -
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = await response.parse()
- assert worker is None
+ assert_matches_type(WorkerRetrieveResponse, worker, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -319,43 +299,35 @@ async def test_path_params_retrieve(self, async_client: AsyncBrainbase) -> None:
async def test_method_update(self, async_client: AsyncBrainbase) -> None:
worker = await async_client.workers.update(
id="id",
+ body={},
)
- assert worker is None
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_update_with_all_params(self, async_client: AsyncBrainbase) -> None:
- worker = await async_client.workers.update(
- id="id",
- description="description",
- name="name",
- status="status",
- )
- assert worker is None
+ assert_matches_type(WorkerUpdateResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_raw_response_update(self, async_client: AsyncBrainbase) -> None:
response = await async_client.workers.with_raw_response.update(
id="id",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = await response.parse()
- assert worker is None
+ assert_matches_type(WorkerUpdateResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_streaming_response_update(self, async_client: AsyncBrainbase) -> None:
async with async_client.workers.with_streaming_response.update(
id="id",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = await response.parse()
- assert worker is None
+ assert_matches_type(WorkerUpdateResponse, worker, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -365,13 +337,14 @@ async def test_path_params_update(self, async_client: AsyncBrainbase) -> None:
with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
await async_client.workers.with_raw_response.update(
id="",
+ body={},
)
@pytest.mark.skip()
@parametrize
async def test_method_list(self, async_client: AsyncBrainbase) -> None:
worker = await async_client.workers.list()
- assert worker is None
+ assert_matches_type(WorkerListResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -381,7 +354,7 @@ async def test_raw_response_list(self, async_client: AsyncBrainbase) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = await response.parse()
- assert worker is None
+ assert_matches_type(WorkerListResponse, worker, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -391,7 +364,7 @@ async def test_streaming_response_list(self, async_client: AsyncBrainbase) -> No
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
worker = await response.parse()
- assert worker is None
+ assert_matches_type(WorkerListResponse, worker, path=["response"])
assert cast(Any, response.is_closed) is True
diff --git a/tests/api_resources/workers/deployments/test_voice.py b/tests/api_resources/workers/deployments/test_voice.py
index 2dcae328..cd5d6a5e 100644
--- a/tests/api_resources/workers/deployments/test_voice.py
+++ b/tests/api_resources/workers/deployments/test_voice.py
@@ -8,6 +8,13 @@
import pytest
from brainbase import Brainbase, AsyncBrainbase
+from tests.utils import assert_matches_type
+from brainbase.types.workers.deployments import (
+ VoiceListResponse,
+ VoiceCreateResponse,
+ VoiceUpdateResponse,
+ VoiceRetrieveResponse,
+)
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
@@ -20,52 +27,35 @@ class TestVoice:
def test_method_create(self, client: Brainbase) -> None:
voice = client.workers.deployments.voice.create(
worker_id="workerId",
- flow_id="flowId",
- name="name",
+ body={},
)
- assert voice is None
-
- @pytest.mark.skip()
- @parametrize
- def test_method_create_with_all_params(self, client: Brainbase) -> None:
- voice = client.workers.deployments.voice.create(
- worker_id="workerId",
- flow_id="flowId",
- name="name",
- config={},
- phone_number="phoneNumber",
- voice_id="voiceId",
- voice_provider="voiceProvider",
- )
- assert voice is None
+ assert_matches_type(VoiceCreateResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
def test_raw_response_create(self, client: Brainbase) -> None:
response = client.workers.deployments.voice.with_raw_response.create(
worker_id="workerId",
- flow_id="flowId",
- name="name",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = response.parse()
- assert voice is None
+ assert_matches_type(VoiceCreateResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
def test_streaming_response_create(self, client: Brainbase) -> None:
with client.workers.deployments.voice.with_streaming_response.create(
worker_id="workerId",
- flow_id="flowId",
- name="name",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = response.parse()
- assert voice is None
+ assert_matches_type(VoiceCreateResponse, voice, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -75,8 +65,7 @@ def test_path_params_create(self, client: Brainbase) -> None:
with pytest.raises(ValueError, match=r"Expected a non-empty value for `worker_id` but received ''"):
client.workers.deployments.voice.with_raw_response.create(
worker_id="",
- flow_id="flowId",
- name="name",
+ body={},
)
@pytest.mark.skip()
@@ -86,7 +75,7 @@ def test_method_retrieve(self, client: Brainbase) -> None:
deployment_id="deploymentId",
worker_id="workerId",
)
- assert voice is None
+ assert_matches_type(VoiceRetrieveResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -99,7 +88,7 @@ def test_raw_response_retrieve(self, client: Brainbase) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = response.parse()
- assert voice is None
+ assert_matches_type(VoiceRetrieveResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -112,7 +101,7 @@ def test_streaming_response_retrieve(self, client: Brainbase) -> None:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = response.parse()
- assert voice is None
+ assert_matches_type(VoiceRetrieveResponse, voice, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -137,23 +126,9 @@ def test_method_update(self, client: Brainbase) -> None:
voice = client.workers.deployments.voice.update(
deployment_id="deploymentId",
worker_id="workerId",
+ body={},
)
- assert voice is None
-
- @pytest.mark.skip()
- @parametrize
- def test_method_update_with_all_params(self, client: Brainbase) -> None:
- voice = client.workers.deployments.voice.update(
- deployment_id="deploymentId",
- worker_id="workerId",
- config={},
- flow_id="flowId",
- name="name",
- phone_number="phoneNumber",
- voice_id="voiceId",
- voice_provider="voiceProvider",
- )
- assert voice is None
+ assert_matches_type(VoiceUpdateResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -161,12 +136,13 @@ def test_raw_response_update(self, client: Brainbase) -> None:
response = client.workers.deployments.voice.with_raw_response.update(
deployment_id="deploymentId",
worker_id="workerId",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = response.parse()
- assert voice is None
+ assert_matches_type(VoiceUpdateResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -174,12 +150,13 @@ def test_streaming_response_update(self, client: Brainbase) -> None:
with client.workers.deployments.voice.with_streaming_response.update(
deployment_id="deploymentId",
worker_id="workerId",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = response.parse()
- assert voice is None
+ assert_matches_type(VoiceUpdateResponse, voice, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -190,12 +167,14 @@ def test_path_params_update(self, client: Brainbase) -> None:
client.workers.deployments.voice.with_raw_response.update(
deployment_id="deploymentId",
worker_id="",
+ body={},
)
with pytest.raises(ValueError, match=r"Expected a non-empty value for `deployment_id` but received ''"):
client.workers.deployments.voice.with_raw_response.update(
deployment_id="",
worker_id="workerId",
+ body={},
)
@pytest.mark.skip()
@@ -204,7 +183,7 @@ def test_method_list(self, client: Brainbase) -> None:
voice = client.workers.deployments.voice.list(
"workerId",
)
- assert voice is None
+ assert_matches_type(VoiceListResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -216,7 +195,7 @@ def test_raw_response_list(self, client: Brainbase) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = response.parse()
- assert voice is None
+ assert_matches_type(VoiceListResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -228,7 +207,7 @@ def test_streaming_response_list(self, client: Brainbase) -> None:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = response.parse()
- assert voice is None
+ assert_matches_type(VoiceListResponse, voice, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -301,52 +280,35 @@ class TestAsyncVoice:
async def test_method_create(self, async_client: AsyncBrainbase) -> None:
voice = await async_client.workers.deployments.voice.create(
worker_id="workerId",
- flow_id="flowId",
- name="name",
+ body={},
)
- assert voice is None
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_create_with_all_params(self, async_client: AsyncBrainbase) -> None:
- voice = await async_client.workers.deployments.voice.create(
- worker_id="workerId",
- flow_id="flowId",
- name="name",
- config={},
- phone_number="phoneNumber",
- voice_id="voiceId",
- voice_provider="voiceProvider",
- )
- assert voice is None
+ assert_matches_type(VoiceCreateResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_raw_response_create(self, async_client: AsyncBrainbase) -> None:
response = await async_client.workers.deployments.voice.with_raw_response.create(
worker_id="workerId",
- flow_id="flowId",
- name="name",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = await response.parse()
- assert voice is None
+ assert_matches_type(VoiceCreateResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_streaming_response_create(self, async_client: AsyncBrainbase) -> None:
async with async_client.workers.deployments.voice.with_streaming_response.create(
worker_id="workerId",
- flow_id="flowId",
- name="name",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = await response.parse()
- assert voice is None
+ assert_matches_type(VoiceCreateResponse, voice, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -356,8 +318,7 @@ async def test_path_params_create(self, async_client: AsyncBrainbase) -> None:
with pytest.raises(ValueError, match=r"Expected a non-empty value for `worker_id` but received ''"):
await async_client.workers.deployments.voice.with_raw_response.create(
worker_id="",
- flow_id="flowId",
- name="name",
+ body={},
)
@pytest.mark.skip()
@@ -367,7 +328,7 @@ async def test_method_retrieve(self, async_client: AsyncBrainbase) -> None:
deployment_id="deploymentId",
worker_id="workerId",
)
- assert voice is None
+ assert_matches_type(VoiceRetrieveResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -380,7 +341,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncBrainbase) -> None
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = await response.parse()
- assert voice is None
+ assert_matches_type(VoiceRetrieveResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -393,7 +354,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncBrainbase) -
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = await response.parse()
- assert voice is None
+ assert_matches_type(VoiceRetrieveResponse, voice, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -418,23 +379,9 @@ async def test_method_update(self, async_client: AsyncBrainbase) -> None:
voice = await async_client.workers.deployments.voice.update(
deployment_id="deploymentId",
worker_id="workerId",
+ body={},
)
- assert voice is None
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_update_with_all_params(self, async_client: AsyncBrainbase) -> None:
- voice = await async_client.workers.deployments.voice.update(
- deployment_id="deploymentId",
- worker_id="workerId",
- config={},
- flow_id="flowId",
- name="name",
- phone_number="phoneNumber",
- voice_id="voiceId",
- voice_provider="voiceProvider",
- )
- assert voice is None
+ assert_matches_type(VoiceUpdateResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -442,12 +389,13 @@ async def test_raw_response_update(self, async_client: AsyncBrainbase) -> None:
response = await async_client.workers.deployments.voice.with_raw_response.update(
deployment_id="deploymentId",
worker_id="workerId",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = await response.parse()
- assert voice is None
+ assert_matches_type(VoiceUpdateResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -455,12 +403,13 @@ async def test_streaming_response_update(self, async_client: AsyncBrainbase) ->
async with async_client.workers.deployments.voice.with_streaming_response.update(
deployment_id="deploymentId",
worker_id="workerId",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = await response.parse()
- assert voice is None
+ assert_matches_type(VoiceUpdateResponse, voice, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -471,12 +420,14 @@ async def test_path_params_update(self, async_client: AsyncBrainbase) -> None:
await async_client.workers.deployments.voice.with_raw_response.update(
deployment_id="deploymentId",
worker_id="",
+ body={},
)
with pytest.raises(ValueError, match=r"Expected a non-empty value for `deployment_id` but received ''"):
await async_client.workers.deployments.voice.with_raw_response.update(
deployment_id="",
worker_id="workerId",
+ body={},
)
@pytest.mark.skip()
@@ -485,7 +436,7 @@ async def test_method_list(self, async_client: AsyncBrainbase) -> None:
voice = await async_client.workers.deployments.voice.list(
"workerId",
)
- assert voice is None
+ assert_matches_type(VoiceListResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -497,7 +448,7 @@ async def test_raw_response_list(self, async_client: AsyncBrainbase) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = await response.parse()
- assert voice is None
+ assert_matches_type(VoiceListResponse, voice, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -509,7 +460,7 @@ async def test_streaming_response_list(self, async_client: AsyncBrainbase) -> No
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
voice = await response.parse()
- assert voice is None
+ assert_matches_type(VoiceListResponse, voice, path=["response"])
assert cast(Any, response.is_closed) is True
diff --git a/tests/api_resources/workers/test_flows.py b/tests/api_resources/workers/test_flows.py
index d529a7aa..064b23e9 100644
--- a/tests/api_resources/workers/test_flows.py
+++ b/tests/api_resources/workers/test_flows.py
@@ -8,6 +8,13 @@
import pytest
from brainbase import Brainbase, AsyncBrainbase
+from tests.utils import assert_matches_type
+from brainbase.types.workers import (
+ FlowListResponse,
+ FlowCreateResponse,
+ FlowUpdateResponse,
+ FlowRetrieveResponse,
+)
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
@@ -20,46 +27,35 @@ class TestFlows:
def test_method_create(self, client: Brainbase) -> None:
flow = client.workers.flows.create(
worker_id="workerId",
- name="name",
+ body={},
)
- assert flow is None
-
- @pytest.mark.skip()
- @parametrize
- def test_method_create_with_all_params(self, client: Brainbase) -> None:
- flow = client.workers.flows.create(
- worker_id="workerId",
- name="name",
- code="code",
- label="label",
- )
- assert flow is None
+ assert_matches_type(FlowCreateResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
def test_raw_response_create(self, client: Brainbase) -> None:
response = client.workers.flows.with_raw_response.create(
worker_id="workerId",
- name="name",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = response.parse()
- assert flow is None
+ assert_matches_type(FlowCreateResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
def test_streaming_response_create(self, client: Brainbase) -> None:
with client.workers.flows.with_streaming_response.create(
worker_id="workerId",
- name="name",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = response.parse()
- assert flow is None
+ assert_matches_type(FlowCreateResponse, flow, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -69,7 +65,7 @@ def test_path_params_create(self, client: Brainbase) -> None:
with pytest.raises(ValueError, match=r"Expected a non-empty value for `worker_id` but received ''"):
client.workers.flows.with_raw_response.create(
worker_id="",
- name="name",
+ body={},
)
@pytest.mark.skip()
@@ -79,7 +75,7 @@ def test_method_retrieve(self, client: Brainbase) -> None:
flow_id="flowId",
worker_id="workerId",
)
- assert flow is None
+ assert_matches_type(FlowRetrieveResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -92,7 +88,7 @@ def test_raw_response_retrieve(self, client: Brainbase) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = response.parse()
- assert flow is None
+ assert_matches_type(FlowRetrieveResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -105,7 +101,7 @@ def test_streaming_response_retrieve(self, client: Brainbase) -> None:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = response.parse()
- assert flow is None
+ assert_matches_type(FlowRetrieveResponse, flow, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -130,20 +126,9 @@ def test_method_update(self, client: Brainbase) -> None:
flow = client.workers.flows.update(
flow_id="flowId",
worker_id="workerId",
+ body={},
)
- assert flow is None
-
- @pytest.mark.skip()
- @parametrize
- def test_method_update_with_all_params(self, client: Brainbase) -> None:
- flow = client.workers.flows.update(
- flow_id="flowId",
- worker_id="workerId",
- code="code",
- label="label",
- name="name",
- )
- assert flow is None
+ assert_matches_type(FlowUpdateResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -151,12 +136,13 @@ def test_raw_response_update(self, client: Brainbase) -> None:
response = client.workers.flows.with_raw_response.update(
flow_id="flowId",
worker_id="workerId",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = response.parse()
- assert flow is None
+ assert_matches_type(FlowUpdateResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -164,12 +150,13 @@ def test_streaming_response_update(self, client: Brainbase) -> None:
with client.workers.flows.with_streaming_response.update(
flow_id="flowId",
worker_id="workerId",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = response.parse()
- assert flow is None
+ assert_matches_type(FlowUpdateResponse, flow, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -180,12 +167,14 @@ def test_path_params_update(self, client: Brainbase) -> None:
client.workers.flows.with_raw_response.update(
flow_id="flowId",
worker_id="",
+ body={},
)
with pytest.raises(ValueError, match=r"Expected a non-empty value for `flow_id` but received ''"):
client.workers.flows.with_raw_response.update(
flow_id="",
worker_id="workerId",
+ body={},
)
@pytest.mark.skip()
@@ -194,7 +183,7 @@ def test_method_list(self, client: Brainbase) -> None:
flow = client.workers.flows.list(
"workerId",
)
- assert flow is None
+ assert_matches_type(FlowListResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -206,7 +195,7 @@ def test_raw_response_list(self, client: Brainbase) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = response.parse()
- assert flow is None
+ assert_matches_type(FlowListResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -218,7 +207,7 @@ def test_streaming_response_list(self, client: Brainbase) -> None:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = response.parse()
- assert flow is None
+ assert_matches_type(FlowListResponse, flow, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -291,46 +280,35 @@ class TestAsyncFlows:
async def test_method_create(self, async_client: AsyncBrainbase) -> None:
flow = await async_client.workers.flows.create(
worker_id="workerId",
- name="name",
+ body={},
)
- assert flow is None
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_create_with_all_params(self, async_client: AsyncBrainbase) -> None:
- flow = await async_client.workers.flows.create(
- worker_id="workerId",
- name="name",
- code="code",
- label="label",
- )
- assert flow is None
+ assert_matches_type(FlowCreateResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_raw_response_create(self, async_client: AsyncBrainbase) -> None:
response = await async_client.workers.flows.with_raw_response.create(
worker_id="workerId",
- name="name",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = await response.parse()
- assert flow is None
+ assert_matches_type(FlowCreateResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_streaming_response_create(self, async_client: AsyncBrainbase) -> None:
async with async_client.workers.flows.with_streaming_response.create(
worker_id="workerId",
- name="name",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = await response.parse()
- assert flow is None
+ assert_matches_type(FlowCreateResponse, flow, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -340,7 +318,7 @@ async def test_path_params_create(self, async_client: AsyncBrainbase) -> None:
with pytest.raises(ValueError, match=r"Expected a non-empty value for `worker_id` but received ''"):
await async_client.workers.flows.with_raw_response.create(
worker_id="",
- name="name",
+ body={},
)
@pytest.mark.skip()
@@ -350,7 +328,7 @@ async def test_method_retrieve(self, async_client: AsyncBrainbase) -> None:
flow_id="flowId",
worker_id="workerId",
)
- assert flow is None
+ assert_matches_type(FlowRetrieveResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -363,7 +341,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncBrainbase) -> None
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = await response.parse()
- assert flow is None
+ assert_matches_type(FlowRetrieveResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -376,7 +354,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncBrainbase) -
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = await response.parse()
- assert flow is None
+ assert_matches_type(FlowRetrieveResponse, flow, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -401,20 +379,9 @@ async def test_method_update(self, async_client: AsyncBrainbase) -> None:
flow = await async_client.workers.flows.update(
flow_id="flowId",
worker_id="workerId",
+ body={},
)
- assert flow is None
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_update_with_all_params(self, async_client: AsyncBrainbase) -> None:
- flow = await async_client.workers.flows.update(
- flow_id="flowId",
- worker_id="workerId",
- code="code",
- label="label",
- name="name",
- )
- assert flow is None
+ assert_matches_type(FlowUpdateResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -422,12 +389,13 @@ async def test_raw_response_update(self, async_client: AsyncBrainbase) -> None:
response = await async_client.workers.flows.with_raw_response.update(
flow_id="flowId",
worker_id="workerId",
+ body={},
)
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = await response.parse()
- assert flow is None
+ assert_matches_type(FlowUpdateResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -435,12 +403,13 @@ async def test_streaming_response_update(self, async_client: AsyncBrainbase) ->
async with async_client.workers.flows.with_streaming_response.update(
flow_id="flowId",
worker_id="workerId",
+ body={},
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = await response.parse()
- assert flow is None
+ assert_matches_type(FlowUpdateResponse, flow, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -451,12 +420,14 @@ async def test_path_params_update(self, async_client: AsyncBrainbase) -> None:
await async_client.workers.flows.with_raw_response.update(
flow_id="flowId",
worker_id="",
+ body={},
)
with pytest.raises(ValueError, match=r"Expected a non-empty value for `flow_id` but received ''"):
await async_client.workers.flows.with_raw_response.update(
flow_id="",
worker_id="workerId",
+ body={},
)
@pytest.mark.skip()
@@ -465,7 +436,7 @@ async def test_method_list(self, async_client: AsyncBrainbase) -> None:
flow = await async_client.workers.flows.list(
"workerId",
)
- assert flow is None
+ assert_matches_type(FlowListResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -477,7 +448,7 @@ async def test_raw_response_list(self, async_client: AsyncBrainbase) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = await response.parse()
- assert flow is None
+ assert_matches_type(FlowListResponse, flow, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -489,7 +460,7 @@ async def test_streaming_response_list(self, async_client: AsyncBrainbase) -> No
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
flow = await response.parse()
- assert flow is None
+ assert_matches_type(FlowListResponse, flow, path=["response"])
assert cast(Any, response.is_closed) is True