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