vellum-ai 0.6.2__py3-none-any.whl → 0.6.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
vellum/__init__.py CHANGED
@@ -577,11 +577,11 @@ from .resources import (
577
577
  document_indexes,
578
578
  documents,
579
579
  folder_entities,
580
- prompt_versions,
581
580
  sandboxes,
582
581
  test_suite_runs,
583
582
  test_suites,
584
583
  workflow_deployments,
584
+ workflow_sandboxes,
585
585
  )
586
586
  from .environment import VellumEnvironment
587
587
  from .version import __version__
@@ -1166,9 +1166,9 @@ __all__ = [
1166
1166
  "document_indexes",
1167
1167
  "documents",
1168
1168
  "folder_entities",
1169
- "prompt_versions",
1170
1169
  "sandboxes",
1171
1170
  "test_suite_runs",
1172
1171
  "test_suites",
1173
1172
  "workflow_deployments",
1173
+ "workflow_sandboxes",
1174
1174
  ]
vellum/client.py CHANGED
@@ -22,11 +22,11 @@ from .resources.deployments.client import AsyncDeploymentsClient, DeploymentsCli
22
22
  from .resources.document_indexes.client import AsyncDocumentIndexesClient, DocumentIndexesClient
23
23
  from .resources.documents.client import AsyncDocumentsClient, DocumentsClient
24
24
  from .resources.folder_entities.client import AsyncFolderEntitiesClient, FolderEntitiesClient
25
- from .resources.prompt_versions.client import AsyncPromptVersionsClient, PromptVersionsClient
26
25
  from .resources.sandboxes.client import AsyncSandboxesClient, SandboxesClient
27
26
  from .resources.test_suite_runs.client import AsyncTestSuiteRunsClient, TestSuiteRunsClient
28
27
  from .resources.test_suites.client import AsyncTestSuitesClient, TestSuitesClient
29
28
  from .resources.workflow_deployments.client import AsyncWorkflowDeploymentsClient, WorkflowDeploymentsClient
29
+ from .resources.workflow_sandboxes.client import AsyncWorkflowSandboxesClient, WorkflowSandboxesClient
30
30
  from .types.execute_prompt_event import ExecutePromptEvent
31
31
  from .types.execute_prompt_response import ExecutePromptResponse
32
32
  from .types.execute_workflow_response import ExecuteWorkflowResponse
@@ -97,11 +97,11 @@ class Vellum:
97
97
  self.document_indexes = DocumentIndexesClient(client_wrapper=self._client_wrapper)
98
98
  self.documents = DocumentsClient(client_wrapper=self._client_wrapper)
99
99
  self.folder_entities = FolderEntitiesClient(client_wrapper=self._client_wrapper)
100
- self.prompt_versions = PromptVersionsClient(client_wrapper=self._client_wrapper)
101
100
  self.sandboxes = SandboxesClient(client_wrapper=self._client_wrapper)
102
101
  self.test_suite_runs = TestSuiteRunsClient(client_wrapper=self._client_wrapper)
103
102
  self.test_suites = TestSuitesClient(client_wrapper=self._client_wrapper)
104
103
  self.workflow_deployments = WorkflowDeploymentsClient(client_wrapper=self._client_wrapper)
104
+ self.workflow_sandboxes = WorkflowSandboxesClient(client_wrapper=self._client_wrapper)
105
105
 
106
106
  def execute_prompt(
107
107
  self,
@@ -1060,11 +1060,11 @@ class AsyncVellum:
1060
1060
  self.document_indexes = AsyncDocumentIndexesClient(client_wrapper=self._client_wrapper)
1061
1061
  self.documents = AsyncDocumentsClient(client_wrapper=self._client_wrapper)
1062
1062
  self.folder_entities = AsyncFolderEntitiesClient(client_wrapper=self._client_wrapper)
1063
- self.prompt_versions = AsyncPromptVersionsClient(client_wrapper=self._client_wrapper)
1064
1063
  self.sandboxes = AsyncSandboxesClient(client_wrapper=self._client_wrapper)
1065
1064
  self.test_suite_runs = AsyncTestSuiteRunsClient(client_wrapper=self._client_wrapper)
1066
1065
  self.test_suites = AsyncTestSuitesClient(client_wrapper=self._client_wrapper)
1067
1066
  self.workflow_deployments = AsyncWorkflowDeploymentsClient(client_wrapper=self._client_wrapper)
1067
+ self.workflow_sandboxes = AsyncWorkflowSandboxesClient(client_wrapper=self._client_wrapper)
1068
1068
 
1069
1069
  async def execute_prompt(
1070
1070
  self,
@@ -18,7 +18,7 @@ class BaseClientWrapper:
18
18
  headers: typing.Dict[str, str] = {
19
19
  "X-Fern-Language": "Python",
20
20
  "X-Fern-SDK-Name": "vellum-ai",
21
- "X-Fern-SDK-Version": "0.6.2",
21
+ "X-Fern-SDK-Version": "0.6.3",
22
22
  }
23
23
  headers["X_API_KEY"] = self.api_key
24
24
  return headers
@@ -5,11 +5,11 @@ from . import (
5
5
  document_indexes,
6
6
  documents,
7
7
  folder_entities,
8
- prompt_versions,
9
8
  sandboxes,
10
9
  test_suite_runs,
11
10
  test_suites,
12
11
  workflow_deployments,
12
+ workflow_sandboxes,
13
13
  )
14
14
  from .deployments import DeploymentsListRequestStatus
15
15
  from .document_indexes import DocumentIndexesListRequestStatus
@@ -23,9 +23,9 @@ __all__ = [
23
23
  "document_indexes",
24
24
  "documents",
25
25
  "folder_entities",
26
- "prompt_versions",
27
26
  "sandboxes",
28
27
  "test_suite_runs",
29
28
  "test_suites",
30
29
  "workflow_deployments",
30
+ "workflow_sandboxes",
31
31
  ]
@@ -19,7 +19,6 @@ from ...types.deployment_read import DeploymentRead
19
19
  from ...types.deployment_release_tag_read import DeploymentReleaseTagRead
20
20
  from ...types.paginated_slim_deployment_read_list import PaginatedSlimDeploymentReadList
21
21
  from ...types.prompt_deployment_input_request import PromptDeploymentInputRequest
22
- from ...types.workflow_deployment_read import WorkflowDeploymentRead
23
22
  from .types.deployments_list_request_status import DeploymentsListRequestStatus
24
23
 
25
24
  # this is used as the default value for optional parameters
@@ -351,89 +350,6 @@ class DeploymentsClient:
351
350
  raise ApiError(status_code=_response.status_code, body=_response.text)
352
351
  raise ApiError(status_code=_response.status_code, body=_response_json)
353
352
 
354
- def deploy_workflow(
355
- self,
356
- id: str,
357
- workflow_id: str,
358
- *,
359
- workflow_deployment_id: typing.Optional[str] = OMIT,
360
- workflow_deployment_name: typing.Optional[str] = OMIT,
361
- label: typing.Optional[str] = OMIT,
362
- release_tags: typing.Optional[typing.Sequence[str]] = OMIT,
363
- request_options: typing.Optional[RequestOptions] = None,
364
- ) -> WorkflowDeploymentRead:
365
- """
366
- Parameters:
367
- - id: str. A UUID string identifying this workflow sandbox.
368
-
369
- - workflow_id: str. An ID identifying the Workflow you'd like to deploy.
370
-
371
- - workflow_deployment_id: typing.Optional[str]. The Vellum-generated ID of the Workflow Deployment you'd like to update. Cannot specify both this and workflow_deployment_name. Leave null to create a new Workflow Deployment.
372
-
373
- - workflow_deployment_name: typing.Optional[str]. The unique name of the Workflow Deployment you'd like to either create or update. Cannot specify both this and workflow_deployment_id. If provided and matches an existing Workflow Deployment, that Workflow Deployment will be updated. Otherwise, a new Prompt Deployment will be created.
374
-
375
- - label: typing.Optional[str]. In the event that a new Workflow Deployment is created, this will be the label it's given.
376
-
377
- - release_tags: typing.Optional[typing.Sequence[str]]. Optionally provide the release tags that you'd like to be associated with the latest release of the created/updated Prompt Deployment.
378
-
379
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
380
- ---
381
- from vellum.client import Vellum
382
-
383
- client = Vellum(
384
- api_key="YOUR_API_KEY",
385
- )
386
- client.deployments.deploy_workflow(
387
- id="id",
388
- workflow_id="workflow_id",
389
- )
390
- """
391
- _request: typing.Dict[str, typing.Any] = {}
392
- if workflow_deployment_id is not OMIT:
393
- _request["workflow_deployment_id"] = workflow_deployment_id
394
- if workflow_deployment_name is not OMIT:
395
- _request["workflow_deployment_name"] = workflow_deployment_name
396
- if label is not OMIT:
397
- _request["label"] = label
398
- if release_tags is not OMIT:
399
- _request["release_tags"] = release_tags
400
- _response = self._client_wrapper.httpx_client.request(
401
- method="POST",
402
- url=urllib.parse.urljoin(
403
- f"{self._client_wrapper.get_environment().default}/",
404
- f"v1/workflow-sandboxes/{jsonable_encoder(id)}/workflows/{jsonable_encoder(workflow_id)}/deploy",
405
- ),
406
- params=jsonable_encoder(
407
- request_options.get("additional_query_parameters") if request_options is not None else None
408
- ),
409
- json=jsonable_encoder(_request)
410
- if request_options is None or request_options.get("additional_body_parameters") is None
411
- else {
412
- **jsonable_encoder(_request),
413
- **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
414
- },
415
- headers=jsonable_encoder(
416
- remove_none_from_dict(
417
- {
418
- **self._client_wrapper.get_headers(),
419
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
420
- }
421
- )
422
- ),
423
- timeout=request_options.get("timeout_in_seconds")
424
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
425
- else self._client_wrapper.get_timeout(),
426
- retries=0,
427
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
428
- )
429
- if 200 <= _response.status_code < 300:
430
- return pydantic_v1.parse_obj_as(WorkflowDeploymentRead, _response.json()) # type: ignore
431
- try:
432
- _response_json = _response.json()
433
- except JSONDecodeError:
434
- raise ApiError(status_code=_response.status_code, body=_response.text)
435
- raise ApiError(status_code=_response.status_code, body=_response_json)
436
-
437
353
 
438
354
  class AsyncDeploymentsClient:
439
355
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -759,86 +675,3 @@ class AsyncDeploymentsClient:
759
675
  except JSONDecodeError:
760
676
  raise ApiError(status_code=_response.status_code, body=_response.text)
761
677
  raise ApiError(status_code=_response.status_code, body=_response_json)
762
-
763
- async def deploy_workflow(
764
- self,
765
- id: str,
766
- workflow_id: str,
767
- *,
768
- workflow_deployment_id: typing.Optional[str] = OMIT,
769
- workflow_deployment_name: typing.Optional[str] = OMIT,
770
- label: typing.Optional[str] = OMIT,
771
- release_tags: typing.Optional[typing.Sequence[str]] = OMIT,
772
- request_options: typing.Optional[RequestOptions] = None,
773
- ) -> WorkflowDeploymentRead:
774
- """
775
- Parameters:
776
- - id: str. A UUID string identifying this workflow sandbox.
777
-
778
- - workflow_id: str. An ID identifying the Workflow you'd like to deploy.
779
-
780
- - workflow_deployment_id: typing.Optional[str]. The Vellum-generated ID of the Workflow Deployment you'd like to update. Cannot specify both this and workflow_deployment_name. Leave null to create a new Workflow Deployment.
781
-
782
- - workflow_deployment_name: typing.Optional[str]. The unique name of the Workflow Deployment you'd like to either create or update. Cannot specify both this and workflow_deployment_id. If provided and matches an existing Workflow Deployment, that Workflow Deployment will be updated. Otherwise, a new Prompt Deployment will be created.
783
-
784
- - label: typing.Optional[str]. In the event that a new Workflow Deployment is created, this will be the label it's given.
785
-
786
- - release_tags: typing.Optional[typing.Sequence[str]]. Optionally provide the release tags that you'd like to be associated with the latest release of the created/updated Prompt Deployment.
787
-
788
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
789
- ---
790
- from vellum.client import AsyncVellum
791
-
792
- client = AsyncVellum(
793
- api_key="YOUR_API_KEY",
794
- )
795
- await client.deployments.deploy_workflow(
796
- id="id",
797
- workflow_id="workflow_id",
798
- )
799
- """
800
- _request: typing.Dict[str, typing.Any] = {}
801
- if workflow_deployment_id is not OMIT:
802
- _request["workflow_deployment_id"] = workflow_deployment_id
803
- if workflow_deployment_name is not OMIT:
804
- _request["workflow_deployment_name"] = workflow_deployment_name
805
- if label is not OMIT:
806
- _request["label"] = label
807
- if release_tags is not OMIT:
808
- _request["release_tags"] = release_tags
809
- _response = await self._client_wrapper.httpx_client.request(
810
- method="POST",
811
- url=urllib.parse.urljoin(
812
- f"{self._client_wrapper.get_environment().default}/",
813
- f"v1/workflow-sandboxes/{jsonable_encoder(id)}/workflows/{jsonable_encoder(workflow_id)}/deploy",
814
- ),
815
- params=jsonable_encoder(
816
- request_options.get("additional_query_parameters") if request_options is not None else None
817
- ),
818
- json=jsonable_encoder(_request)
819
- if request_options is None or request_options.get("additional_body_parameters") is None
820
- else {
821
- **jsonable_encoder(_request),
822
- **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
823
- },
824
- headers=jsonable_encoder(
825
- remove_none_from_dict(
826
- {
827
- **self._client_wrapper.get_headers(),
828
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
829
- }
830
- )
831
- ),
832
- timeout=request_options.get("timeout_in_seconds")
833
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
834
- else self._client_wrapper.get_timeout(),
835
- retries=0,
836
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
837
- )
838
- if 200 <= _response.status_code < 300:
839
- return pydantic_v1.parse_obj_as(WorkflowDeploymentRead, _response.json()) # type: ignore
840
- try:
841
- _response_json = _response.json()
842
- except JSONDecodeError:
843
- raise ApiError(status_code=_response.status_code, body=_response.text)
844
- raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -10,6 +10,7 @@ from ...core.jsonable_encoder import jsonable_encoder
10
10
  from ...core.pydantic_utilities import pydantic_v1
11
11
  from ...core.remove_none_from_dict import remove_none_from_dict
12
12
  from ...core.request_options import RequestOptions
13
+ from ...types.deployment_read import DeploymentRead
13
14
  from ...types.named_scenario_input_request import NamedScenarioInputRequest
14
15
  from ...types.sandbox_scenario import SandboxScenario
15
16
 
@@ -21,6 +22,89 @@ class SandboxesClient:
21
22
  def __init__(self, *, client_wrapper: SyncClientWrapper):
22
23
  self._client_wrapper = client_wrapper
23
24
 
25
+ def deploy_prompt(
26
+ self,
27
+ id: str,
28
+ prompt_id: str,
29
+ *,
30
+ prompt_deployment_id: typing.Optional[str] = OMIT,
31
+ prompt_deployment_name: typing.Optional[str] = OMIT,
32
+ label: typing.Optional[str] = OMIT,
33
+ release_tags: typing.Optional[typing.Sequence[str]] = OMIT,
34
+ request_options: typing.Optional[RequestOptions] = None,
35
+ ) -> DeploymentRead:
36
+ """
37
+ Parameters:
38
+ - id: str. A UUID string identifying this sandbox.
39
+
40
+ - prompt_id: str. An ID identifying the Prompt you'd like to deploy.
41
+
42
+ - prompt_deployment_id: typing.Optional[str]. The Vellum-generated ID of the Prompt Deployment you'd like to update. Cannot specify both this and prompt_deployment_name. Leave null to create a new Prompt Deployment.
43
+
44
+ - prompt_deployment_name: typing.Optional[str]. The unique name of the Prompt Deployment you'd like to either create or update. Cannot specify both this and prompt_deployment_id. If provided and matches an existing Prompt Deployment, that Prompt Deployment will be updated. Otherwise, a new Prompt Deployment will be created.
45
+
46
+ - label: typing.Optional[str]. In the event that a new Prompt Deployment is created, this will be the label it's given.
47
+
48
+ - release_tags: typing.Optional[typing.Sequence[str]]. Optionally provide the release tags that you'd like to be associated with the latest release of the created/updated Prompt Deployment.
49
+
50
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
51
+ ---
52
+ from vellum.client import Vellum
53
+
54
+ client = Vellum(
55
+ api_key="YOUR_API_KEY",
56
+ )
57
+ client.sandboxes.deploy_prompt(
58
+ id="id",
59
+ prompt_id="prompt_id",
60
+ )
61
+ """
62
+ _request: typing.Dict[str, typing.Any] = {}
63
+ if prompt_deployment_id is not OMIT:
64
+ _request["prompt_deployment_id"] = prompt_deployment_id
65
+ if prompt_deployment_name is not OMIT:
66
+ _request["prompt_deployment_name"] = prompt_deployment_name
67
+ if label is not OMIT:
68
+ _request["label"] = label
69
+ if release_tags is not OMIT:
70
+ _request["release_tags"] = release_tags
71
+ _response = self._client_wrapper.httpx_client.request(
72
+ method="POST",
73
+ url=urllib.parse.urljoin(
74
+ f"{self._client_wrapper.get_environment().default}/",
75
+ f"v1/sandboxes/{jsonable_encoder(id)}/prompts/{jsonable_encoder(prompt_id)}/deploy",
76
+ ),
77
+ params=jsonable_encoder(
78
+ request_options.get("additional_query_parameters") if request_options is not None else None
79
+ ),
80
+ json=jsonable_encoder(_request)
81
+ if request_options is None or request_options.get("additional_body_parameters") is None
82
+ else {
83
+ **jsonable_encoder(_request),
84
+ **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
85
+ },
86
+ headers=jsonable_encoder(
87
+ remove_none_from_dict(
88
+ {
89
+ **self._client_wrapper.get_headers(),
90
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
91
+ }
92
+ )
93
+ ),
94
+ timeout=request_options.get("timeout_in_seconds")
95
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
96
+ else self._client_wrapper.get_timeout(),
97
+ retries=0,
98
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
99
+ )
100
+ if 200 <= _response.status_code < 300:
101
+ return pydantic_v1.parse_obj_as(DeploymentRead, _response.json()) # type: ignore
102
+ try:
103
+ _response_json = _response.json()
104
+ except JSONDecodeError:
105
+ raise ApiError(status_code=_response.status_code, body=_response.text)
106
+ raise ApiError(status_code=_response.status_code, body=_response_json)
107
+
24
108
  def upsert_sandbox_scenario(
25
109
  self,
26
110
  id: str,
@@ -161,6 +245,89 @@ class AsyncSandboxesClient:
161
245
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
162
246
  self._client_wrapper = client_wrapper
163
247
 
248
+ async def deploy_prompt(
249
+ self,
250
+ id: str,
251
+ prompt_id: str,
252
+ *,
253
+ prompt_deployment_id: typing.Optional[str] = OMIT,
254
+ prompt_deployment_name: typing.Optional[str] = OMIT,
255
+ label: typing.Optional[str] = OMIT,
256
+ release_tags: typing.Optional[typing.Sequence[str]] = OMIT,
257
+ request_options: typing.Optional[RequestOptions] = None,
258
+ ) -> DeploymentRead:
259
+ """
260
+ Parameters:
261
+ - id: str. A UUID string identifying this sandbox.
262
+
263
+ - prompt_id: str. An ID identifying the Prompt you'd like to deploy.
264
+
265
+ - prompt_deployment_id: typing.Optional[str]. The Vellum-generated ID of the Prompt Deployment you'd like to update. Cannot specify both this and prompt_deployment_name. Leave null to create a new Prompt Deployment.
266
+
267
+ - prompt_deployment_name: typing.Optional[str]. The unique name of the Prompt Deployment you'd like to either create or update. Cannot specify both this and prompt_deployment_id. If provided and matches an existing Prompt Deployment, that Prompt Deployment will be updated. Otherwise, a new Prompt Deployment will be created.
268
+
269
+ - label: typing.Optional[str]. In the event that a new Prompt Deployment is created, this will be the label it's given.
270
+
271
+ - release_tags: typing.Optional[typing.Sequence[str]]. Optionally provide the release tags that you'd like to be associated with the latest release of the created/updated Prompt Deployment.
272
+
273
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
274
+ ---
275
+ from vellum.client import AsyncVellum
276
+
277
+ client = AsyncVellum(
278
+ api_key="YOUR_API_KEY",
279
+ )
280
+ await client.sandboxes.deploy_prompt(
281
+ id="id",
282
+ prompt_id="prompt_id",
283
+ )
284
+ """
285
+ _request: typing.Dict[str, typing.Any] = {}
286
+ if prompt_deployment_id is not OMIT:
287
+ _request["prompt_deployment_id"] = prompt_deployment_id
288
+ if prompt_deployment_name is not OMIT:
289
+ _request["prompt_deployment_name"] = prompt_deployment_name
290
+ if label is not OMIT:
291
+ _request["label"] = label
292
+ if release_tags is not OMIT:
293
+ _request["release_tags"] = release_tags
294
+ _response = await self._client_wrapper.httpx_client.request(
295
+ method="POST",
296
+ url=urllib.parse.urljoin(
297
+ f"{self._client_wrapper.get_environment().default}/",
298
+ f"v1/sandboxes/{jsonable_encoder(id)}/prompts/{jsonable_encoder(prompt_id)}/deploy",
299
+ ),
300
+ params=jsonable_encoder(
301
+ request_options.get("additional_query_parameters") if request_options is not None else None
302
+ ),
303
+ json=jsonable_encoder(_request)
304
+ if request_options is None or request_options.get("additional_body_parameters") is None
305
+ else {
306
+ **jsonable_encoder(_request),
307
+ **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
308
+ },
309
+ headers=jsonable_encoder(
310
+ remove_none_from_dict(
311
+ {
312
+ **self._client_wrapper.get_headers(),
313
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
314
+ }
315
+ )
316
+ ),
317
+ timeout=request_options.get("timeout_in_seconds")
318
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
319
+ else self._client_wrapper.get_timeout(),
320
+ retries=0,
321
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
322
+ )
323
+ if 200 <= _response.status_code < 300:
324
+ return pydantic_v1.parse_obj_as(DeploymentRead, _response.json()) # type: ignore
325
+ try:
326
+ _response_json = _response.json()
327
+ except JSONDecodeError:
328
+ raise ApiError(status_code=_response.status_code, body=_response.text)
329
+ raise ApiError(status_code=_response.status_code, body=_response_json)
330
+
164
331
  async def upsert_sandbox_scenario(
165
332
  self,
166
333
  id: str,
@@ -10,38 +10,38 @@ from ...core.jsonable_encoder import jsonable_encoder
10
10
  from ...core.pydantic_utilities import pydantic_v1
11
11
  from ...core.remove_none_from_dict import remove_none_from_dict
12
12
  from ...core.request_options import RequestOptions
13
- from ...types.deployment_read import DeploymentRead
13
+ from ...types.workflow_deployment_read import WorkflowDeploymentRead
14
14
 
15
15
  # this is used as the default value for optional parameters
16
16
  OMIT = typing.cast(typing.Any, ...)
17
17
 
18
18
 
19
- class PromptVersionsClient:
19
+ class WorkflowSandboxesClient:
20
20
  def __init__(self, *, client_wrapper: SyncClientWrapper):
21
21
  self._client_wrapper = client_wrapper
22
22
 
23
- def deploy_prompt(
23
+ def deploy_workflow(
24
24
  self,
25
25
  id: str,
26
- prompt_id: str,
26
+ workflow_id: str,
27
27
  *,
28
- prompt_deployment_id: typing.Optional[str] = OMIT,
29
- prompt_deployment_name: typing.Optional[str] = OMIT,
28
+ workflow_deployment_id: typing.Optional[str] = OMIT,
29
+ workflow_deployment_name: typing.Optional[str] = OMIT,
30
30
  label: typing.Optional[str] = OMIT,
31
31
  release_tags: typing.Optional[typing.Sequence[str]] = OMIT,
32
32
  request_options: typing.Optional[RequestOptions] = None,
33
- ) -> DeploymentRead:
33
+ ) -> WorkflowDeploymentRead:
34
34
  """
35
35
  Parameters:
36
- - id: str. A UUID string identifying this sandbox.
36
+ - id: str. A UUID string identifying this workflow sandbox.
37
37
 
38
- - prompt_id: str. An ID identifying the Prompt you'd like to deploy.
38
+ - workflow_id: str. An ID identifying the Workflow you'd like to deploy.
39
39
 
40
- - prompt_deployment_id: typing.Optional[str]. The Vellum-generated ID of the Prompt Deployment you'd like to update. Cannot specify both this and prompt_deployment_name. Leave null to create a new Prompt Deployment.
40
+ - workflow_deployment_id: typing.Optional[str]. The Vellum-generated ID of the Workflow Deployment you'd like to update. Cannot specify both this and workflow_deployment_name. Leave null to create a new Workflow Deployment.
41
41
 
42
- - prompt_deployment_name: typing.Optional[str]. The unique name of the Prompt Deployment you'd like to either create or update. Cannot specify both this and prompt_deployment_id. If provided and matches an existing Prompt Deployment, that Prompt Deployment will be updated. Otherwise, a new Prompt Deployment will be created.
42
+ - workflow_deployment_name: typing.Optional[str]. The unique name of the Workflow Deployment you'd like to either create or update. Cannot specify both this and workflow_deployment_id. If provided and matches an existing Workflow Deployment, that Workflow Deployment will be updated. Otherwise, a new Prompt Deployment will be created.
43
43
 
44
- - label: typing.Optional[str]. In the event that a new Prompt Deployment is created, this will be the label it's given.
44
+ - label: typing.Optional[str]. In the event that a new Workflow Deployment is created, this will be the label it's given.
45
45
 
46
46
  - release_tags: typing.Optional[typing.Sequence[str]]. Optionally provide the release tags that you'd like to be associated with the latest release of the created/updated Prompt Deployment.
47
47
 
@@ -52,16 +52,16 @@ class PromptVersionsClient:
52
52
  client = Vellum(
53
53
  api_key="YOUR_API_KEY",
54
54
  )
55
- client.prompt_versions.deploy_prompt(
55
+ client.workflow_sandboxes.deploy_workflow(
56
56
  id="id",
57
- prompt_id="prompt_id",
57
+ workflow_id="workflow_id",
58
58
  )
59
59
  """
60
60
  _request: typing.Dict[str, typing.Any] = {}
61
- if prompt_deployment_id is not OMIT:
62
- _request["prompt_deployment_id"] = prompt_deployment_id
63
- if prompt_deployment_name is not OMIT:
64
- _request["prompt_deployment_name"] = prompt_deployment_name
61
+ if workflow_deployment_id is not OMIT:
62
+ _request["workflow_deployment_id"] = workflow_deployment_id
63
+ if workflow_deployment_name is not OMIT:
64
+ _request["workflow_deployment_name"] = workflow_deployment_name
65
65
  if label is not OMIT:
66
66
  _request["label"] = label
67
67
  if release_tags is not OMIT:
@@ -70,7 +70,7 @@ class PromptVersionsClient:
70
70
  method="POST",
71
71
  url=urllib.parse.urljoin(
72
72
  f"{self._client_wrapper.get_environment().default}/",
73
- f"v1/sandboxes/{jsonable_encoder(id)}/prompts/{jsonable_encoder(prompt_id)}/deploy",
73
+ f"v1/workflow-sandboxes/{jsonable_encoder(id)}/workflows/{jsonable_encoder(workflow_id)}/deploy",
74
74
  ),
75
75
  params=jsonable_encoder(
76
76
  request_options.get("additional_query_parameters") if request_options is not None else None
@@ -96,7 +96,7 @@ class PromptVersionsClient:
96
96
  max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
97
97
  )
98
98
  if 200 <= _response.status_code < 300:
99
- return pydantic_v1.parse_obj_as(DeploymentRead, _response.json()) # type: ignore
99
+ return pydantic_v1.parse_obj_as(WorkflowDeploymentRead, _response.json()) # type: ignore
100
100
  try:
101
101
  _response_json = _response.json()
102
102
  except JSONDecodeError:
@@ -104,32 +104,32 @@ class PromptVersionsClient:
104
104
  raise ApiError(status_code=_response.status_code, body=_response_json)
105
105
 
106
106
 
107
- class AsyncPromptVersionsClient:
107
+ class AsyncWorkflowSandboxesClient:
108
108
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
109
109
  self._client_wrapper = client_wrapper
110
110
 
111
- async def deploy_prompt(
111
+ async def deploy_workflow(
112
112
  self,
113
113
  id: str,
114
- prompt_id: str,
114
+ workflow_id: str,
115
115
  *,
116
- prompt_deployment_id: typing.Optional[str] = OMIT,
117
- prompt_deployment_name: typing.Optional[str] = OMIT,
116
+ workflow_deployment_id: typing.Optional[str] = OMIT,
117
+ workflow_deployment_name: typing.Optional[str] = OMIT,
118
118
  label: typing.Optional[str] = OMIT,
119
119
  release_tags: typing.Optional[typing.Sequence[str]] = OMIT,
120
120
  request_options: typing.Optional[RequestOptions] = None,
121
- ) -> DeploymentRead:
121
+ ) -> WorkflowDeploymentRead:
122
122
  """
123
123
  Parameters:
124
- - id: str. A UUID string identifying this sandbox.
124
+ - id: str. A UUID string identifying this workflow sandbox.
125
125
 
126
- - prompt_id: str. An ID identifying the Prompt you'd like to deploy.
126
+ - workflow_id: str. An ID identifying the Workflow you'd like to deploy.
127
127
 
128
- - prompt_deployment_id: typing.Optional[str]. The Vellum-generated ID of the Prompt Deployment you'd like to update. Cannot specify both this and prompt_deployment_name. Leave null to create a new Prompt Deployment.
128
+ - workflow_deployment_id: typing.Optional[str]. The Vellum-generated ID of the Workflow Deployment you'd like to update. Cannot specify both this and workflow_deployment_name. Leave null to create a new Workflow Deployment.
129
129
 
130
- - prompt_deployment_name: typing.Optional[str]. The unique name of the Prompt Deployment you'd like to either create or update. Cannot specify both this and prompt_deployment_id. If provided and matches an existing Prompt Deployment, that Prompt Deployment will be updated. Otherwise, a new Prompt Deployment will be created.
130
+ - workflow_deployment_name: typing.Optional[str]. The unique name of the Workflow Deployment you'd like to either create or update. Cannot specify both this and workflow_deployment_id. If provided and matches an existing Workflow Deployment, that Workflow Deployment will be updated. Otherwise, a new Prompt Deployment will be created.
131
131
 
132
- - label: typing.Optional[str]. In the event that a new Prompt Deployment is created, this will be the label it's given.
132
+ - label: typing.Optional[str]. In the event that a new Workflow Deployment is created, this will be the label it's given.
133
133
 
134
134
  - release_tags: typing.Optional[typing.Sequence[str]]. Optionally provide the release tags that you'd like to be associated with the latest release of the created/updated Prompt Deployment.
135
135
 
@@ -140,16 +140,16 @@ class AsyncPromptVersionsClient:
140
140
  client = AsyncVellum(
141
141
  api_key="YOUR_API_KEY",
142
142
  )
143
- await client.prompt_versions.deploy_prompt(
143
+ await client.workflow_sandboxes.deploy_workflow(
144
144
  id="id",
145
- prompt_id="prompt_id",
145
+ workflow_id="workflow_id",
146
146
  )
147
147
  """
148
148
  _request: typing.Dict[str, typing.Any] = {}
149
- if prompt_deployment_id is not OMIT:
150
- _request["prompt_deployment_id"] = prompt_deployment_id
151
- if prompt_deployment_name is not OMIT:
152
- _request["prompt_deployment_name"] = prompt_deployment_name
149
+ if workflow_deployment_id is not OMIT:
150
+ _request["workflow_deployment_id"] = workflow_deployment_id
151
+ if workflow_deployment_name is not OMIT:
152
+ _request["workflow_deployment_name"] = workflow_deployment_name
153
153
  if label is not OMIT:
154
154
  _request["label"] = label
155
155
  if release_tags is not OMIT:
@@ -158,7 +158,7 @@ class AsyncPromptVersionsClient:
158
158
  method="POST",
159
159
  url=urllib.parse.urljoin(
160
160
  f"{self._client_wrapper.get_environment().default}/",
161
- f"v1/sandboxes/{jsonable_encoder(id)}/prompts/{jsonable_encoder(prompt_id)}/deploy",
161
+ f"v1/workflow-sandboxes/{jsonable_encoder(id)}/workflows/{jsonable_encoder(workflow_id)}/deploy",
162
162
  ),
163
163
  params=jsonable_encoder(
164
164
  request_options.get("additional_query_parameters") if request_options is not None else None
@@ -184,7 +184,7 @@ class AsyncPromptVersionsClient:
184
184
  max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
185
185
  )
186
186
  if 200 <= _response.status_code < 300:
187
- return pydantic_v1.parse_obj_as(DeploymentRead, _response.json()) # type: ignore
187
+ return pydantic_v1.parse_obj_as(WorkflowDeploymentRead, _response.json()) # type: ignore
188
188
  try:
189
189
  _response_json = _response.json()
190
190
  except JSONDecodeError:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.6.2
3
+ Version: 0.6.3
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,8 +1,8 @@
1
- vellum/__init__.py,sha256=1iMx__bCxAn4JeEifrkOKWvmKA5kbp4o0Fek3q64kbQ,42635
2
- vellum/client.py,sha256=NX3OUi2PDSYdBmgZhMQdJuYOOsSOLmChRHV2qWHmVg8,97366
1
+ vellum/__init__.py,sha256=RxyqAQAQKjaI4Q7hmri_fIUkYNgYu8ySChEuISNPt_E,42641
2
+ vellum/client.py,sha256=tH28pqtzdD8V_dlklDppc-3kUlKZkkDBHHW4E0U-s08,97387
3
3
  vellum/core/__init__.py,sha256=1pNSKkwyQvMl_F0wohBqmoQAITptg3zlvCwsoSSzy7c,853
4
4
  vellum/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
5
- vellum/core/client_wrapper.py,sha256=OcJ2XpRTpb0sNRzCDSMjTi-8focgJwqX_DFcMuPnnWU,1697
5
+ vellum/core/client_wrapper.py,sha256=-Aw-Y44hope113sAqU0k5QV8pZZmaG-Ag-3HRo6dYFQ,1697
6
6
  vellum/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
7
7
  vellum/core/file.py,sha256=sy1RUGZ3aJYuw998bZytxxo6QdgKmlnlgBaMvwEKCGg,1480
8
8
  vellum/core/http_client.py,sha256=5ok6hqgZDJhg57EHvMnr0BBaHdG50QxFPKaCZ9aVWTc,5059
@@ -26,9 +26,9 @@ vellum/lib/utils/env.py,sha256=ySl859lYBfls8hmlaU_RFdquHa_A_7SzaC6KEdFqh1Y,298
26
26
  vellum/lib/utils/exceptions.py,sha256=dXMAkzqbHV_AP5FjjbegPlfUE0zQDlpA3qOsoOJUxfg,49
27
27
  vellum/lib/utils/paginator.py,sha256=yDvgehocYBDclLt5SewZH4hCIyq0yLHdBzkyPCoYPjs,698
28
28
  vellum/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- vellum/resources/__init__.py,sha256=t4B6OAN8Qlxr7pdYxGB-CIiS9JWji00xLQlhmSDfFtA,774
29
+ vellum/resources/__init__.py,sha256=K9Pl_nZ5i7-cdT-rzttq8bZxustkIxPjDhcDEitCLoA,780
30
30
  vellum/resources/deployments/__init__.py,sha256=AE0TcFwLrLBljM0ZDX-pPw4Kqt-1f5JDpIok2HS80QI,157
31
- vellum/resources/deployments/client.py,sha256=p-6_5eUmcIdlZWd6JHdWGqa953f6LBy9KdrHsVDdMlI,39239
31
+ vellum/resources/deployments/client.py,sha256=p-n2k6RQIwNBDm9dU-wE6pI0kRhNjQiARBeQYWX9wuM,30612
32
32
  vellum/resources/deployments/types/__init__.py,sha256=IhwnmoXJ0r_QEhh1b2tBcaAm_x3fWMVuIhYmAapp_ZA,183
33
33
  vellum/resources/deployments/types/deployments_list_request_status.py,sha256=CxlQD16KZXme7x31YYCe_3aAgEueutDTeJo5A4Au-aU,174
34
34
  vellum/resources/document_indexes/__init__.py,sha256=YpOl_9IV7xOlH4OmusQxtAJB11kxQfCSMDyT1_UD0oM,165
@@ -39,10 +39,8 @@ vellum/resources/documents/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roe
39
39
  vellum/resources/documents/client.py,sha256=lzi8zUVIo8eJA_fyqIjzho1FRGZrCTvNaIcFDQfaGEk,34322
40
40
  vellum/resources/folder_entities/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
41
41
  vellum/resources/folder_entities/client.py,sha256=dbq-WQ9Rh7zvB4i_U_FXqF1qvRhSEsJqOq6dKr7_PzY,6435
42
- vellum/resources/prompt_versions/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
43
- vellum/resources/prompt_versions/client.py,sha256=Yccl4TXz9tiNg94CV4OjlfjOOaU_dypb0-HYWSllPzk,9294
44
42
  vellum/resources/sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
45
- vellum/resources/sandboxes/client.py,sha256=Ookq63OqBgYKalTeA9IhJtufmLEv2cyIq2tFqIFfNsM,12738
43
+ vellum/resources/sandboxes/client.py,sha256=Lm45GGIRSODx5WJbyXP3ThR3FB8QSPajMWiqvnpVsIc,21168
46
44
  vellum/resources/test_suite_runs/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
47
45
  vellum/resources/test_suite_runs/client.py,sha256=LOcjVwBAgQF__yEGvsbZpjBhefGtLL1vnSqJ1K3uly0,18728
48
46
  vellum/resources/test_suites/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
@@ -51,6 +49,8 @@ vellum/resources/workflow_deployments/__init__.py,sha256=-5BCA0kSmW6WUh4gqLuQtHv
51
49
  vellum/resources/workflow_deployments/client.py,sha256=Oal32DF472B46CBWkb8GgDonjyAFQ28hHV5lq4DF1AM,22437
52
50
  vellum/resources/workflow_deployments/types/__init__.py,sha256=rmS_4dtbgLHGNQJ_pOloygrjl4sNbKZjTEKBxbMyz6E,208
53
51
  vellum/resources/workflow_deployments/types/workflow_deployments_list_request_status.py,sha256=FXVkVmGM6DZ2RpTGnZXWJYiVlLQ-K5fDtX3WMaBPaWk,182
52
+ vellum/resources/workflow_sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
53
+ vellum/resources/workflow_sandboxes/client.py,sha256=BR9Lw9x2bNBaLZ6dd6uHI7xCv1WwrsuSDwmLi1NbJOk,9499
54
54
  vellum/terraform/__init__.py,sha256=t69swjCfZmrf7tmHcUYVHH5bflrp1Ax2YnbwNMuG2YQ,454
55
55
  vellum/terraform/_jsii/__init__.py,sha256=AV9B1-EC-DQ2MSTWojcpbHjahvoZxNaYeZ6aCi5SXEQ,473
56
56
  vellum/terraform/_jsii/vellum-ai_vellum@0.0.0.jsii.tgz,sha256=e1tV8nF_TEMLqCNrRBkDIlXKfO65c0lGj92G-CzeAVI,15887
@@ -438,7 +438,7 @@ vellum/types/workflow_result_event_output_data_search_results.py,sha256=gazaUrC5
438
438
  vellum/types/workflow_result_event_output_data_string.py,sha256=aVWIIGbLj4TJJhTTj6WzhbYXQkcZatKuhhNy8UYwXbw,1482
439
439
  vellum/types/workflow_stream_event.py,sha256=KA6Bkk_XA6AIPWR-1vKnwF1A8l_Bm5y0arQCWWWRpsk,911
440
440
  vellum/version.py,sha256=neLt8HBHHUtDF9M5fsyUzHT-pKooEPvceaLDqqIGb0s,77
441
- vellum_ai-0.6.2.dist-info/LICENSE,sha256=CcaljEIoOBaU-wItPH4PmM_mDCGpyuUY0Er1BGu5Ti8,1073
442
- vellum_ai-0.6.2.dist-info/METADATA,sha256=cjiInkRZdZraCT4N8HIXRGu4Jemmu3d26RJpAFY9FNo,3591
443
- vellum_ai-0.6.2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
444
- vellum_ai-0.6.2.dist-info/RECORD,,
441
+ vellum_ai-0.6.3.dist-info/LICENSE,sha256=CcaljEIoOBaU-wItPH4PmM_mDCGpyuUY0Er1BGu5Ti8,1073
442
+ vellum_ai-0.6.3.dist-info/METADATA,sha256=0hbs1I28Mjj7hqjMBUUiY86Qt5PCftFdaXFILID0JBM,3591
443
+ vellum_ai-0.6.3.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
444
+ vellum_ai-0.6.3.dist-info/RECORD,,