vellum-ai 1.5.4__py3-none-any.whl → 1.5.6__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.
Files changed (66) hide show
  1. vellum/__init__.py +36 -0
  2. vellum/client/__init__.py +6 -0
  3. vellum/client/core/client_wrapper.py +2 -2
  4. vellum/client/reference.md +497 -11
  5. vellum/client/resources/__init__.py +4 -0
  6. vellum/client/resources/integration_auth_configs/__init__.py +4 -0
  7. vellum/client/resources/integration_auth_configs/client.py +186 -0
  8. vellum/client/resources/integration_auth_configs/raw_client.py +171 -0
  9. vellum/client/resources/integration_providers/__init__.py +4 -0
  10. vellum/client/resources/integration_providers/client.py +279 -0
  11. vellum/client/resources/integration_providers/raw_client.py +255 -0
  12. vellum/client/resources/integrations/client.py +226 -28
  13. vellum/client/resources/integrations/raw_client.py +257 -20
  14. vellum/client/resources/test_suite_runs/client.py +6 -6
  15. vellum/client/resources/test_suite_runs/raw_client.py +6 -6
  16. vellum/client/types/__init__.py +32 -0
  17. vellum/client/types/components_schemas_composio_integration_exec_config.py +5 -0
  18. vellum/client/types/components_schemas_slim_composio_tool_definition.py +5 -0
  19. vellum/client/types/composio_integration_exec_config.py +20 -0
  20. vellum/client/types/composio_tool_definition.py +4 -1
  21. vellum/client/types/integration_auth_config_integration.py +23 -0
  22. vellum/client/types/integration_auth_config_integration_credential.py +19 -0
  23. vellum/client/types/integration_credential_access_type.py +5 -0
  24. vellum/client/types/integration_name.py +20 -0
  25. vellum/client/types/integration_provider.py +5 -0
  26. vellum/client/types/integration_read.py +30 -0
  27. vellum/client/types/paginated_slim_integration_auth_config_read_list.py +23 -0
  28. vellum/client/types/paginated_slim_integration_read_list.py +23 -0
  29. vellum/client/types/paginated_slim_tool_definition_list.py +23 -0
  30. vellum/client/types/slim_composio_tool_definition.py +23 -0
  31. vellum/client/types/slim_integration_auth_config_read.py +29 -0
  32. vellum/client/types/slim_integration_read.py +25 -0
  33. vellum/client/types/tool_definition_integration.py +23 -0
  34. vellum/resources/integration_auth_configs/__init__.py +3 -0
  35. vellum/resources/integration_auth_configs/client.py +3 -0
  36. vellum/resources/integration_auth_configs/raw_client.py +3 -0
  37. vellum/resources/integration_providers/__init__.py +3 -0
  38. vellum/resources/integration_providers/client.py +3 -0
  39. vellum/resources/integration_providers/raw_client.py +3 -0
  40. vellum/types/components_schemas_composio_integration_exec_config.py +3 -0
  41. vellum/types/components_schemas_slim_composio_tool_definition.py +3 -0
  42. vellum/types/composio_integration_exec_config.py +3 -0
  43. vellum/types/integration_auth_config_integration.py +3 -0
  44. vellum/types/integration_auth_config_integration_credential.py +3 -0
  45. vellum/types/integration_credential_access_type.py +3 -0
  46. vellum/types/integration_name.py +3 -0
  47. vellum/types/integration_provider.py +3 -0
  48. vellum/types/integration_read.py +3 -0
  49. vellum/types/paginated_slim_integration_auth_config_read_list.py +3 -0
  50. vellum/types/paginated_slim_integration_read_list.py +3 -0
  51. vellum/types/paginated_slim_tool_definition_list.py +3 -0
  52. vellum/types/slim_composio_tool_definition.py +3 -0
  53. vellum/types/slim_integration_auth_config_read.py +3 -0
  54. vellum/types/slim_integration_read.py +3 -0
  55. vellum/types/tool_definition_integration.py +3 -0
  56. vellum/workflows/integrations/tests/test_vellum_integration_service.py +26 -19
  57. vellum/workflows/integrations/vellum_integration_service.py +5 -5
  58. vellum/workflows/nodes/displayable/tool_calling_node/node.py +2 -4
  59. vellum/workflows/types/definition.py +1 -1
  60. vellum/workflows/types/tests/test_definition.py +40 -2
  61. {vellum_ai-1.5.4.dist-info → vellum_ai-1.5.6.dist-info}/METADATA +1 -1
  62. {vellum_ai-1.5.4.dist-info → vellum_ai-1.5.6.dist-info}/RECORD +66 -21
  63. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_vellum_integration_serialization.py +68 -0
  64. {vellum_ai-1.5.4.dist-info → vellum_ai-1.5.6.dist-info}/LICENSE +0 -0
  65. {vellum_ai-1.5.4.dist-info → vellum_ai-1.5.6.dist-info}/WHEEL +0 -0
  66. {vellum_ai-1.5.4.dist-info → vellum_ai-1.5.6.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,255 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from json.decoder import JSONDecodeError
5
+
6
+ from ...core.api_error import ApiError
7
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
+ from ...core.http_response import AsyncHttpResponse, HttpResponse
9
+ from ...core.jsonable_encoder import jsonable_encoder
10
+ from ...core.pydantic_utilities import parse_obj_as
11
+ from ...core.request_options import RequestOptions
12
+ from ...types.components_schemas_composio_tool_definition import ComponentsSchemasComposioToolDefinition
13
+ from ...types.paginated_slim_tool_definition_list import PaginatedSlimToolDefinitionList
14
+
15
+
16
+ class RawIntegrationProvidersClient:
17
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
18
+ self._client_wrapper = client_wrapper
19
+
20
+ def retrieve_integration_provider_tool_definition(
21
+ self,
22
+ integration_name: str,
23
+ integration_provider: str,
24
+ tool_name: str,
25
+ *,
26
+ request_options: typing.Optional[RequestOptions] = None,
27
+ ) -> HttpResponse[ComponentsSchemasComposioToolDefinition]:
28
+ """
29
+ Retrieve a specific integration tool definition.
30
+
31
+ Parameters
32
+ ----------
33
+ integration_name : str
34
+ The integration name
35
+
36
+ integration_provider : str
37
+ The integration provider name
38
+
39
+ tool_name : str
40
+ The tool's unique name, as specified by the integration provider
41
+
42
+ request_options : typing.Optional[RequestOptions]
43
+ Request-specific configuration.
44
+
45
+ Returns
46
+ -------
47
+ HttpResponse[ComponentsSchemasComposioToolDefinition]
48
+
49
+ """
50
+ _response = self._client_wrapper.httpx_client.request(
51
+ f"v1/integration-providers/{jsonable_encoder(integration_provider)}/integrations/{jsonable_encoder(integration_name)}/tools/{jsonable_encoder(tool_name)}",
52
+ base_url=self._client_wrapper.get_environment().default,
53
+ method="GET",
54
+ request_options=request_options,
55
+ )
56
+ try:
57
+ if 200 <= _response.status_code < 300:
58
+ _data = typing.cast(
59
+ ComponentsSchemasComposioToolDefinition,
60
+ parse_obj_as(
61
+ type_=ComponentsSchemasComposioToolDefinition, # type: ignore
62
+ object_=_response.json(),
63
+ ),
64
+ )
65
+ return HttpResponse(response=_response, data=_data)
66
+ _response_json = _response.json()
67
+ except JSONDecodeError:
68
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
69
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
70
+
71
+ def list_integration_tools(
72
+ self,
73
+ integration_provider: str,
74
+ *,
75
+ integration_name: typing.Optional[str] = None,
76
+ limit: typing.Optional[int] = None,
77
+ offset: typing.Optional[int] = None,
78
+ search: typing.Optional[str] = None,
79
+ request_options: typing.Optional[RequestOptions] = None,
80
+ ) -> HttpResponse[PaginatedSlimToolDefinitionList]:
81
+ """
82
+ List all integration tools for a given provider and integration.
83
+
84
+ Parameters
85
+ ----------
86
+ integration_provider : str
87
+ The integration provider name
88
+
89
+ integration_name : typing.Optional[str]
90
+ The Vellum Integration name
91
+
92
+ limit : typing.Optional[int]
93
+ Number of results to return per page.
94
+
95
+ offset : typing.Optional[int]
96
+ The initial index from which to return the results.
97
+
98
+ search : typing.Optional[str]
99
+ The search term to filter the tools by
100
+
101
+ request_options : typing.Optional[RequestOptions]
102
+ Request-specific configuration.
103
+
104
+ Returns
105
+ -------
106
+ HttpResponse[PaginatedSlimToolDefinitionList]
107
+
108
+ """
109
+ _response = self._client_wrapper.httpx_client.request(
110
+ f"v1/integration-providers/{jsonable_encoder(integration_provider)}/tools",
111
+ base_url=self._client_wrapper.get_environment().default,
112
+ method="GET",
113
+ params={
114
+ "integration_name": integration_name,
115
+ "limit": limit,
116
+ "offset": offset,
117
+ "search": search,
118
+ },
119
+ request_options=request_options,
120
+ )
121
+ try:
122
+ if 200 <= _response.status_code < 300:
123
+ _data = typing.cast(
124
+ PaginatedSlimToolDefinitionList,
125
+ parse_obj_as(
126
+ type_=PaginatedSlimToolDefinitionList, # type: ignore
127
+ object_=_response.json(),
128
+ ),
129
+ )
130
+ return HttpResponse(response=_response, data=_data)
131
+ _response_json = _response.json()
132
+ except JSONDecodeError:
133
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
134
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
135
+
136
+
137
+ class AsyncRawIntegrationProvidersClient:
138
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
139
+ self._client_wrapper = client_wrapper
140
+
141
+ async def retrieve_integration_provider_tool_definition(
142
+ self,
143
+ integration_name: str,
144
+ integration_provider: str,
145
+ tool_name: str,
146
+ *,
147
+ request_options: typing.Optional[RequestOptions] = None,
148
+ ) -> AsyncHttpResponse[ComponentsSchemasComposioToolDefinition]:
149
+ """
150
+ Retrieve a specific integration tool definition.
151
+
152
+ Parameters
153
+ ----------
154
+ integration_name : str
155
+ The integration name
156
+
157
+ integration_provider : str
158
+ The integration provider name
159
+
160
+ tool_name : str
161
+ The tool's unique name, as specified by the integration provider
162
+
163
+ request_options : typing.Optional[RequestOptions]
164
+ Request-specific configuration.
165
+
166
+ Returns
167
+ -------
168
+ AsyncHttpResponse[ComponentsSchemasComposioToolDefinition]
169
+
170
+ """
171
+ _response = await self._client_wrapper.httpx_client.request(
172
+ f"v1/integration-providers/{jsonable_encoder(integration_provider)}/integrations/{jsonable_encoder(integration_name)}/tools/{jsonable_encoder(tool_name)}",
173
+ base_url=self._client_wrapper.get_environment().default,
174
+ method="GET",
175
+ request_options=request_options,
176
+ )
177
+ try:
178
+ if 200 <= _response.status_code < 300:
179
+ _data = typing.cast(
180
+ ComponentsSchemasComposioToolDefinition,
181
+ parse_obj_as(
182
+ type_=ComponentsSchemasComposioToolDefinition, # type: ignore
183
+ object_=_response.json(),
184
+ ),
185
+ )
186
+ return AsyncHttpResponse(response=_response, data=_data)
187
+ _response_json = _response.json()
188
+ except JSONDecodeError:
189
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
190
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
191
+
192
+ async def list_integration_tools(
193
+ self,
194
+ integration_provider: str,
195
+ *,
196
+ integration_name: typing.Optional[str] = None,
197
+ limit: typing.Optional[int] = None,
198
+ offset: typing.Optional[int] = None,
199
+ search: typing.Optional[str] = None,
200
+ request_options: typing.Optional[RequestOptions] = None,
201
+ ) -> AsyncHttpResponse[PaginatedSlimToolDefinitionList]:
202
+ """
203
+ List all integration tools for a given provider and integration.
204
+
205
+ Parameters
206
+ ----------
207
+ integration_provider : str
208
+ The integration provider name
209
+
210
+ integration_name : typing.Optional[str]
211
+ The Vellum Integration name
212
+
213
+ limit : typing.Optional[int]
214
+ Number of results to return per page.
215
+
216
+ offset : typing.Optional[int]
217
+ The initial index from which to return the results.
218
+
219
+ search : typing.Optional[str]
220
+ The search term to filter the tools by
221
+
222
+ request_options : typing.Optional[RequestOptions]
223
+ Request-specific configuration.
224
+
225
+ Returns
226
+ -------
227
+ AsyncHttpResponse[PaginatedSlimToolDefinitionList]
228
+
229
+ """
230
+ _response = await self._client_wrapper.httpx_client.request(
231
+ f"v1/integration-providers/{jsonable_encoder(integration_provider)}/tools",
232
+ base_url=self._client_wrapper.get_environment().default,
233
+ method="GET",
234
+ params={
235
+ "integration_name": integration_name,
236
+ "limit": limit,
237
+ "offset": offset,
238
+ "search": search,
239
+ },
240
+ request_options=request_options,
241
+ )
242
+ try:
243
+ if 200 <= _response.status_code < 300:
244
+ _data = typing.cast(
245
+ PaginatedSlimToolDefinitionList,
246
+ parse_obj_as(
247
+ type_=PaginatedSlimToolDefinitionList, # type: ignore
248
+ object_=_response.json(),
249
+ ),
250
+ )
251
+ return AsyncHttpResponse(response=_response, data=_data)
252
+ _response_json = _response.json()
253
+ except JSONDecodeError:
254
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
255
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -6,6 +6,8 @@ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
6
  from ...core.request_options import RequestOptions
7
7
  from ...types.components_schemas_composio_execute_tool_response import ComponentsSchemasComposioExecuteToolResponse
8
8
  from ...types.components_schemas_composio_tool_definition import ComponentsSchemasComposioToolDefinition
9
+ from ...types.integration_read import IntegrationRead
10
+ from ...types.paginated_slim_integration_read_list import PaginatedSlimIntegrationReadList
9
11
  from .raw_client import AsyncRawIntegrationsClient, RawIntegrationsClient
10
12
 
11
13
  # this is used as the default value for optional parameters
@@ -33,8 +35,8 @@ class IntegrationsClient:
33
35
 
34
36
  def retrieve_integration_tool_definition(
35
37
  self,
36
- integration: str,
37
- provider: str,
38
+ integration_name: str,
39
+ integration_provider: str,
38
40
  tool_name: str,
39
41
  *,
40
42
  request_options: typing.Optional[RequestOptions] = None,
@@ -42,10 +44,10 @@ class IntegrationsClient:
42
44
  """
43
45
  Parameters
44
46
  ----------
45
- integration : str
47
+ integration_name : str
46
48
  The integration name
47
49
 
48
- provider : str
50
+ integration_provider : str
49
51
  The integration provider name
50
52
 
51
53
  tool_name : str
@@ -68,20 +70,20 @@ class IntegrationsClient:
68
70
  api_key="YOUR_API_KEY",
69
71
  )
70
72
  client.integrations.retrieve_integration_tool_definition(
71
- integration="integration",
72
- provider="provider",
73
+ integration_name="integration_name",
74
+ integration_provider="integration_provider",
73
75
  tool_name="tool_name",
74
76
  )
75
77
  """
76
78
  _response = self._raw_client.retrieve_integration_tool_definition(
77
- integration, provider, tool_name, request_options=request_options
79
+ integration_name, integration_provider, tool_name, request_options=request_options
78
80
  )
79
81
  return _response.data
80
82
 
81
83
  def execute_integration_tool(
82
84
  self,
83
- integration: str,
84
- provider: str,
85
+ integration_name: str,
86
+ integration_provider: str,
85
87
  tool_name: str,
86
88
  *,
87
89
  arguments: typing.Dict[str, typing.Optional[typing.Any]],
@@ -90,10 +92,10 @@ class IntegrationsClient:
90
92
  """
91
93
  Parameters
92
94
  ----------
93
- integration : str
95
+ integration_name : str
94
96
  The integration name
95
97
 
96
- provider : str
98
+ integration_provider : str
97
99
  The integration provider name
98
100
 
99
101
  tool_name : str
@@ -118,17 +120,107 @@ class IntegrationsClient:
118
120
  api_key="YOUR_API_KEY",
119
121
  )
120
122
  client.integrations.execute_integration_tool(
121
- integration="integration",
122
- provider="provider",
123
+ integration_name="integration_name",
124
+ integration_provider="integration_provider",
123
125
  tool_name="tool_name",
124
126
  arguments={"arguments": {"key": "value"}},
125
127
  )
126
128
  """
127
129
  _response = self._raw_client.execute_integration_tool(
128
- integration, provider, tool_name, arguments=arguments, request_options=request_options
130
+ integration_name, integration_provider, tool_name, arguments=arguments, request_options=request_options
129
131
  )
130
132
  return _response.data
131
133
 
134
+ def list(
135
+ self,
136
+ *,
137
+ integration_provider: typing.Optional[typing.Literal["COMPOSIO"]] = None,
138
+ limit: typing.Optional[int] = None,
139
+ offset: typing.Optional[int] = None,
140
+ ordering: typing.Optional[str] = None,
141
+ search: typing.Optional[str] = None,
142
+ request_options: typing.Optional[RequestOptions] = None,
143
+ ) -> PaginatedSlimIntegrationReadList:
144
+ """
145
+ List all integrations
146
+
147
+ Parameters
148
+ ----------
149
+ integration_provider : typing.Optional[typing.Literal["COMPOSIO"]]
150
+ * `COMPOSIO` - Composio
151
+
152
+ limit : typing.Optional[int]
153
+ Number of results to return per page.
154
+
155
+ offset : typing.Optional[int]
156
+ The initial index from which to return the results.
157
+
158
+ ordering : typing.Optional[str]
159
+ Which field to use when ordering the results.
160
+
161
+ search : typing.Optional[str]
162
+ A search term.
163
+
164
+ request_options : typing.Optional[RequestOptions]
165
+ Request-specific configuration.
166
+
167
+ Returns
168
+ -------
169
+ PaginatedSlimIntegrationReadList
170
+
171
+
172
+ Examples
173
+ --------
174
+ from vellum import Vellum
175
+
176
+ client = Vellum(
177
+ api_version="YOUR_API_VERSION",
178
+ api_key="YOUR_API_KEY",
179
+ )
180
+ client.integrations.list()
181
+ """
182
+ _response = self._raw_client.list(
183
+ integration_provider=integration_provider,
184
+ limit=limit,
185
+ offset=offset,
186
+ ordering=ordering,
187
+ search=search,
188
+ request_options=request_options,
189
+ )
190
+ return _response.data
191
+
192
+ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> IntegrationRead:
193
+ """
194
+ Retrieve an integration
195
+
196
+ Parameters
197
+ ----------
198
+ id : str
199
+ A UUID string identifying this integration.
200
+
201
+ request_options : typing.Optional[RequestOptions]
202
+ Request-specific configuration.
203
+
204
+ Returns
205
+ -------
206
+ IntegrationRead
207
+
208
+
209
+ Examples
210
+ --------
211
+ from vellum import Vellum
212
+
213
+ client = Vellum(
214
+ api_version="YOUR_API_VERSION",
215
+ api_key="YOUR_API_KEY",
216
+ )
217
+ client.integrations.retrieve(
218
+ id="id",
219
+ )
220
+ """
221
+ _response = self._raw_client.retrieve(id, request_options=request_options)
222
+ return _response.data
223
+
132
224
 
133
225
  class AsyncIntegrationsClient:
134
226
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -147,8 +239,8 @@ class AsyncIntegrationsClient:
147
239
 
148
240
  async def retrieve_integration_tool_definition(
149
241
  self,
150
- integration: str,
151
- provider: str,
242
+ integration_name: str,
243
+ integration_provider: str,
152
244
  tool_name: str,
153
245
  *,
154
246
  request_options: typing.Optional[RequestOptions] = None,
@@ -156,10 +248,10 @@ class AsyncIntegrationsClient:
156
248
  """
157
249
  Parameters
158
250
  ----------
159
- integration : str
251
+ integration_name : str
160
252
  The integration name
161
253
 
162
- provider : str
254
+ integration_provider : str
163
255
  The integration provider name
164
256
 
165
257
  tool_name : str
@@ -187,8 +279,8 @@ class AsyncIntegrationsClient:
187
279
 
188
280
  async def main() -> None:
189
281
  await client.integrations.retrieve_integration_tool_definition(
190
- integration="integration",
191
- provider="provider",
282
+ integration_name="integration_name",
283
+ integration_provider="integration_provider",
192
284
  tool_name="tool_name",
193
285
  )
194
286
 
@@ -196,14 +288,14 @@ class AsyncIntegrationsClient:
196
288
  asyncio.run(main())
197
289
  """
198
290
  _response = await self._raw_client.retrieve_integration_tool_definition(
199
- integration, provider, tool_name, request_options=request_options
291
+ integration_name, integration_provider, tool_name, request_options=request_options
200
292
  )
201
293
  return _response.data
202
294
 
203
295
  async def execute_integration_tool(
204
296
  self,
205
- integration: str,
206
- provider: str,
297
+ integration_name: str,
298
+ integration_provider: str,
207
299
  tool_name: str,
208
300
  *,
209
301
  arguments: typing.Dict[str, typing.Optional[typing.Any]],
@@ -212,10 +304,10 @@ class AsyncIntegrationsClient:
212
304
  """
213
305
  Parameters
214
306
  ----------
215
- integration : str
307
+ integration_name : str
216
308
  The integration name
217
309
 
218
- provider : str
310
+ integration_provider : str
219
311
  The integration provider name
220
312
 
221
313
  tool_name : str
@@ -245,8 +337,8 @@ class AsyncIntegrationsClient:
245
337
 
246
338
  async def main() -> None:
247
339
  await client.integrations.execute_integration_tool(
248
- integration="integration",
249
- provider="provider",
340
+ integration_name="integration_name",
341
+ integration_provider="integration_provider",
250
342
  tool_name="tool_name",
251
343
  arguments={"arguments": {"key": "value"}},
252
344
  )
@@ -255,6 +347,112 @@ class AsyncIntegrationsClient:
255
347
  asyncio.run(main())
256
348
  """
257
349
  _response = await self._raw_client.execute_integration_tool(
258
- integration, provider, tool_name, arguments=arguments, request_options=request_options
350
+ integration_name, integration_provider, tool_name, arguments=arguments, request_options=request_options
351
+ )
352
+ return _response.data
353
+
354
+ async def list(
355
+ self,
356
+ *,
357
+ integration_provider: typing.Optional[typing.Literal["COMPOSIO"]] = None,
358
+ limit: typing.Optional[int] = None,
359
+ offset: typing.Optional[int] = None,
360
+ ordering: typing.Optional[str] = None,
361
+ search: typing.Optional[str] = None,
362
+ request_options: typing.Optional[RequestOptions] = None,
363
+ ) -> PaginatedSlimIntegrationReadList:
364
+ """
365
+ List all integrations
366
+
367
+ Parameters
368
+ ----------
369
+ integration_provider : typing.Optional[typing.Literal["COMPOSIO"]]
370
+ * `COMPOSIO` - Composio
371
+
372
+ limit : typing.Optional[int]
373
+ Number of results to return per page.
374
+
375
+ offset : typing.Optional[int]
376
+ The initial index from which to return the results.
377
+
378
+ ordering : typing.Optional[str]
379
+ Which field to use when ordering the results.
380
+
381
+ search : typing.Optional[str]
382
+ A search term.
383
+
384
+ request_options : typing.Optional[RequestOptions]
385
+ Request-specific configuration.
386
+
387
+ Returns
388
+ -------
389
+ PaginatedSlimIntegrationReadList
390
+
391
+
392
+ Examples
393
+ --------
394
+ import asyncio
395
+
396
+ from vellum import AsyncVellum
397
+
398
+ client = AsyncVellum(
399
+ api_version="YOUR_API_VERSION",
400
+ api_key="YOUR_API_KEY",
401
+ )
402
+
403
+
404
+ async def main() -> None:
405
+ await client.integrations.list()
406
+
407
+
408
+ asyncio.run(main())
409
+ """
410
+ _response = await self._raw_client.list(
411
+ integration_provider=integration_provider,
412
+ limit=limit,
413
+ offset=offset,
414
+ ordering=ordering,
415
+ search=search,
416
+ request_options=request_options,
259
417
  )
260
418
  return _response.data
419
+
420
+ async def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> IntegrationRead:
421
+ """
422
+ Retrieve an integration
423
+
424
+ Parameters
425
+ ----------
426
+ id : str
427
+ A UUID string identifying this integration.
428
+
429
+ request_options : typing.Optional[RequestOptions]
430
+ Request-specific configuration.
431
+
432
+ Returns
433
+ -------
434
+ IntegrationRead
435
+
436
+
437
+ Examples
438
+ --------
439
+ import asyncio
440
+
441
+ from vellum import AsyncVellum
442
+
443
+ client = AsyncVellum(
444
+ api_version="YOUR_API_VERSION",
445
+ api_key="YOUR_API_KEY",
446
+ )
447
+
448
+
449
+ async def main() -> None:
450
+ await client.integrations.retrieve(
451
+ id="id",
452
+ )
453
+
454
+
455
+ asyncio.run(main())
456
+ """
457
+ _response = await self._raw_client.retrieve(id, request_options=request_options)
458
+ return _response.data