together 2.0.0a12__py3-none-any.whl → 2.0.0a14__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 (36) hide show
  1. together/_client.py +38 -0
  2. together/_version.py +1 -1
  3. together/lib/cli/api/beta/beta.py +12 -0
  4. together/lib/cli/api/beta/clusters.py +357 -0
  5. together/lib/cli/api/beta/clusters_storage.py +152 -0
  6. together/lib/cli/api/utils.py +37 -1
  7. together/lib/cli/cli.py +2 -0
  8. together/resources/__init__.py +14 -0
  9. together/resources/beta/__init__.py +33 -0
  10. together/resources/beta/beta.py +102 -0
  11. together/resources/beta/clusters/__init__.py +33 -0
  12. together/resources/beta/clusters/clusters.py +628 -0
  13. together/resources/beta/clusters/storage.py +490 -0
  14. together/resources/chat/completions.py +20 -0
  15. together/types/beta/__init__.py +12 -0
  16. together/types/beta/cluster.py +93 -0
  17. together/types/beta/cluster_create_params.py +51 -0
  18. together/types/beta/cluster_create_response.py +9 -0
  19. together/types/beta/cluster_delete_response.py +9 -0
  20. together/types/beta/cluster_list_regions_response.py +21 -0
  21. together/types/beta/cluster_list_response.py +12 -0
  22. together/types/beta/cluster_update_params.py +13 -0
  23. together/types/beta/cluster_update_response.py +9 -0
  24. together/types/beta/clusters/__init__.py +10 -0
  25. together/types/beta/clusters/cluster_storage.py +13 -0
  26. together/types/beta/clusters/storage_create_params.py +17 -0
  27. together/types/beta/clusters/storage_create_response.py +9 -0
  28. together/types/beta/clusters/storage_delete_response.py +9 -0
  29. together/types/beta/clusters/storage_list_response.py +12 -0
  30. together/types/beta/clusters/storage_update_params.py +13 -0
  31. together/types/chat/completion_create_params.py +4 -0
  32. {together-2.0.0a12.dist-info → together-2.0.0a14.dist-info}/METADATA +14 -8
  33. {together-2.0.0a12.dist-info → together-2.0.0a14.dist-info}/RECORD +36 -12
  34. {together-2.0.0a12.dist-info → together-2.0.0a14.dist-info}/WHEEL +0 -0
  35. {together-2.0.0a12.dist-info → together-2.0.0a14.dist-info}/entry_points.txt +0 -0
  36. {together-2.0.0a12.dist-info → together-2.0.0a14.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,490 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ import httpx
6
+
7
+ from ...._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
8
+ from ...._utils import maybe_transform, async_maybe_transform
9
+ from ...._compat import cached_property
10
+ from ...._resource import SyncAPIResource, AsyncAPIResource
11
+ from ...._response import (
12
+ to_raw_response_wrapper,
13
+ to_streamed_response_wrapper,
14
+ async_to_raw_response_wrapper,
15
+ async_to_streamed_response_wrapper,
16
+ )
17
+ from ...._base_client import make_request_options
18
+ from ....types.beta.clusters import storage_create_params, storage_update_params
19
+ from ....types.beta.clusters.cluster_storage import ClusterStorage
20
+ from ....types.beta.clusters.storage_list_response import StorageListResponse
21
+ from ....types.beta.clusters.storage_create_response import StorageCreateResponse
22
+ from ....types.beta.clusters.storage_delete_response import StorageDeleteResponse
23
+
24
+ __all__ = ["StorageResource", "AsyncStorageResource"]
25
+
26
+
27
+ class StorageResource(SyncAPIResource):
28
+ @cached_property
29
+ def with_raw_response(self) -> StorageResourceWithRawResponse:
30
+ """
31
+ This property can be used as a prefix for any HTTP method call to return
32
+ the raw response object instead of the parsed content.
33
+
34
+ For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
35
+ """
36
+ return StorageResourceWithRawResponse(self)
37
+
38
+ @cached_property
39
+ def with_streaming_response(self) -> StorageResourceWithStreamingResponse:
40
+ """
41
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
42
+
43
+ For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
44
+ """
45
+ return StorageResourceWithStreamingResponse(self)
46
+
47
+ def create(
48
+ self,
49
+ *,
50
+ region: str,
51
+ size_tib: int,
52
+ volume_name: str,
53
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
54
+ # The extra values given here take precedence over values defined on the client or passed to this method.
55
+ extra_headers: Headers | None = None,
56
+ extra_query: Query | None = None,
57
+ extra_body: Body | None = None,
58
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
59
+ ) -> StorageCreateResponse:
60
+ """Create a shared volume.
61
+
62
+ Args:
63
+ region: Region name.
64
+
65
+ Usable regions can be found from `client.clusters.list_regions()`
66
+
67
+ size_tib: Volume size in whole tebibytes (TiB).
68
+
69
+ extra_headers: Send extra headers
70
+
71
+ extra_query: Add additional query parameters to the request
72
+
73
+ extra_body: Add additional JSON properties to the request
74
+
75
+ timeout: Override the client-level default timeout for this request, in seconds
76
+ """
77
+ return self._post(
78
+ "/clusters/storages",
79
+ body=maybe_transform(
80
+ {
81
+ "region": region,
82
+ "size_tib": size_tib,
83
+ "volume_name": volume_name,
84
+ },
85
+ storage_create_params.StorageCreateParams,
86
+ ),
87
+ options=make_request_options(
88
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
89
+ ),
90
+ cast_to=StorageCreateResponse,
91
+ )
92
+
93
+ def retrieve(
94
+ self,
95
+ volume_id: str,
96
+ *,
97
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
98
+ # The extra values given here take precedence over values defined on the client or passed to this method.
99
+ extra_headers: Headers | None = None,
100
+ extra_query: Query | None = None,
101
+ extra_body: Body | None = None,
102
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
103
+ ) -> ClusterStorage:
104
+ """
105
+ Get shared volume by volume Id.
106
+
107
+ Args:
108
+ extra_headers: Send extra headers
109
+
110
+ extra_query: Add additional query parameters to the request
111
+
112
+ extra_body: Add additional JSON properties to the request
113
+
114
+ timeout: Override the client-level default timeout for this request, in seconds
115
+ """
116
+ if not volume_id:
117
+ raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}")
118
+ return self._get(
119
+ f"/clusters/storages/{volume_id}",
120
+ options=make_request_options(
121
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
122
+ ),
123
+ cast_to=ClusterStorage,
124
+ )
125
+
126
+ def update(
127
+ self,
128
+ *,
129
+ size_tib: int | Omit = omit,
130
+ volume_id: str | Omit = omit,
131
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
132
+ # The extra values given here take precedence over values defined on the client or passed to this method.
133
+ extra_headers: Headers | None = None,
134
+ extra_query: Query | None = None,
135
+ extra_body: Body | None = None,
136
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
137
+ ) -> ClusterStorage:
138
+ """
139
+ Update a shared volume.
140
+
141
+ Args:
142
+ extra_headers: Send extra headers
143
+
144
+ extra_query: Add additional query parameters to the request
145
+
146
+ extra_body: Add additional JSON properties to the request
147
+
148
+ timeout: Override the client-level default timeout for this request, in seconds
149
+ """
150
+ return self._put(
151
+ "/clusters/storages",
152
+ body=maybe_transform(
153
+ {
154
+ "size_tib": size_tib,
155
+ "volume_id": volume_id,
156
+ },
157
+ storage_update_params.StorageUpdateParams,
158
+ ),
159
+ options=make_request_options(
160
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
161
+ ),
162
+ cast_to=ClusterStorage,
163
+ )
164
+
165
+ def list(
166
+ self,
167
+ *,
168
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
169
+ # The extra values given here take precedence over values defined on the client or passed to this method.
170
+ extra_headers: Headers | None = None,
171
+ extra_query: Query | None = None,
172
+ extra_body: Body | None = None,
173
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
174
+ ) -> StorageListResponse:
175
+ """List all shared volumes."""
176
+ return self._get(
177
+ "/clusters/storages",
178
+ options=make_request_options(
179
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
180
+ ),
181
+ cast_to=StorageListResponse,
182
+ )
183
+
184
+ def delete(
185
+ self,
186
+ volume_id: str,
187
+ *,
188
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
189
+ # The extra values given here take precedence over values defined on the client or passed to this method.
190
+ extra_headers: Headers | None = None,
191
+ extra_query: Query | None = None,
192
+ extra_body: Body | None = None,
193
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
194
+ ) -> StorageDeleteResponse:
195
+ """
196
+ Delete shared volume by volume id.
197
+
198
+ Args:
199
+ extra_headers: Send extra headers
200
+
201
+ extra_query: Add additional query parameters to the request
202
+
203
+ extra_body: Add additional JSON properties to the request
204
+
205
+ timeout: Override the client-level default timeout for this request, in seconds
206
+ """
207
+ if not volume_id:
208
+ raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}")
209
+ return self._delete(
210
+ f"/clusters/storages/{volume_id}",
211
+ options=make_request_options(
212
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
213
+ ),
214
+ cast_to=StorageDeleteResponse,
215
+ )
216
+
217
+
218
+ class AsyncStorageResource(AsyncAPIResource):
219
+ @cached_property
220
+ def with_raw_response(self) -> AsyncStorageResourceWithRawResponse:
221
+ """
222
+ This property can be used as a prefix for any HTTP method call to return
223
+ the raw response object instead of the parsed content.
224
+
225
+ For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
226
+ """
227
+ return AsyncStorageResourceWithRawResponse(self)
228
+
229
+ @cached_property
230
+ def with_streaming_response(self) -> AsyncStorageResourceWithStreamingResponse:
231
+ """
232
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
233
+
234
+ For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
235
+ """
236
+ return AsyncStorageResourceWithStreamingResponse(self)
237
+
238
+ async def create(
239
+ self,
240
+ *,
241
+ region: str,
242
+ size_tib: int,
243
+ volume_name: str,
244
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
245
+ # The extra values given here take precedence over values defined on the client or passed to this method.
246
+ extra_headers: Headers | None = None,
247
+ extra_query: Query | None = None,
248
+ extra_body: Body | None = None,
249
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
250
+ ) -> StorageCreateResponse:
251
+ """Create a shared volume.
252
+
253
+ Args:
254
+ region: Region name.
255
+
256
+ Usable regions can be found from `client.clusters.list_regions()`
257
+
258
+ size_tib: Volume size in whole tebibytes (TiB).
259
+
260
+ extra_headers: Send extra headers
261
+
262
+ extra_query: Add additional query parameters to the request
263
+
264
+ extra_body: Add additional JSON properties to the request
265
+
266
+ timeout: Override the client-level default timeout for this request, in seconds
267
+ """
268
+ return await self._post(
269
+ "/clusters/storages",
270
+ body=await async_maybe_transform(
271
+ {
272
+ "region": region,
273
+ "size_tib": size_tib,
274
+ "volume_name": volume_name,
275
+ },
276
+ storage_create_params.StorageCreateParams,
277
+ ),
278
+ options=make_request_options(
279
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
280
+ ),
281
+ cast_to=StorageCreateResponse,
282
+ )
283
+
284
+ async def retrieve(
285
+ self,
286
+ volume_id: str,
287
+ *,
288
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
289
+ # The extra values given here take precedence over values defined on the client or passed to this method.
290
+ extra_headers: Headers | None = None,
291
+ extra_query: Query | None = None,
292
+ extra_body: Body | None = None,
293
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
294
+ ) -> ClusterStorage:
295
+ """
296
+ Get shared volume by volume Id.
297
+
298
+ Args:
299
+ extra_headers: Send extra headers
300
+
301
+ extra_query: Add additional query parameters to the request
302
+
303
+ extra_body: Add additional JSON properties to the request
304
+
305
+ timeout: Override the client-level default timeout for this request, in seconds
306
+ """
307
+ if not volume_id:
308
+ raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}")
309
+ return await self._get(
310
+ f"/clusters/storages/{volume_id}",
311
+ options=make_request_options(
312
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
313
+ ),
314
+ cast_to=ClusterStorage,
315
+ )
316
+
317
+ async def update(
318
+ self,
319
+ *,
320
+ size_tib: int | Omit = omit,
321
+ volume_id: str | Omit = omit,
322
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
323
+ # The extra values given here take precedence over values defined on the client or passed to this method.
324
+ extra_headers: Headers | None = None,
325
+ extra_query: Query | None = None,
326
+ extra_body: Body | None = None,
327
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
328
+ ) -> ClusterStorage:
329
+ """
330
+ Update a shared volume.
331
+
332
+ Args:
333
+ extra_headers: Send extra headers
334
+
335
+ extra_query: Add additional query parameters to the request
336
+
337
+ extra_body: Add additional JSON properties to the request
338
+
339
+ timeout: Override the client-level default timeout for this request, in seconds
340
+ """
341
+ return await self._put(
342
+ "/clusters/storages",
343
+ body=await async_maybe_transform(
344
+ {
345
+ "size_tib": size_tib,
346
+ "volume_id": volume_id,
347
+ },
348
+ storage_update_params.StorageUpdateParams,
349
+ ),
350
+ options=make_request_options(
351
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
352
+ ),
353
+ cast_to=ClusterStorage,
354
+ )
355
+
356
+ async def list(
357
+ self,
358
+ *,
359
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
360
+ # The extra values given here take precedence over values defined on the client or passed to this method.
361
+ extra_headers: Headers | None = None,
362
+ extra_query: Query | None = None,
363
+ extra_body: Body | None = None,
364
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
365
+ ) -> StorageListResponse:
366
+ """List all shared volumes."""
367
+ return await self._get(
368
+ "/clusters/storages",
369
+ options=make_request_options(
370
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
371
+ ),
372
+ cast_to=StorageListResponse,
373
+ )
374
+
375
+ async def delete(
376
+ self,
377
+ volume_id: str,
378
+ *,
379
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
380
+ # The extra values given here take precedence over values defined on the client or passed to this method.
381
+ extra_headers: Headers | None = None,
382
+ extra_query: Query | None = None,
383
+ extra_body: Body | None = None,
384
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
385
+ ) -> StorageDeleteResponse:
386
+ """
387
+ Delete shared volume by volume id.
388
+
389
+ Args:
390
+ extra_headers: Send extra headers
391
+
392
+ extra_query: Add additional query parameters to the request
393
+
394
+ extra_body: Add additional JSON properties to the request
395
+
396
+ timeout: Override the client-level default timeout for this request, in seconds
397
+ """
398
+ if not volume_id:
399
+ raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}")
400
+ return await self._delete(
401
+ f"/clusters/storages/{volume_id}",
402
+ options=make_request_options(
403
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
404
+ ),
405
+ cast_to=StorageDeleteResponse,
406
+ )
407
+
408
+
409
+ class StorageResourceWithRawResponse:
410
+ def __init__(self, storage: StorageResource) -> None:
411
+ self._storage = storage
412
+
413
+ self.create = to_raw_response_wrapper(
414
+ storage.create,
415
+ )
416
+ self.retrieve = to_raw_response_wrapper(
417
+ storage.retrieve,
418
+ )
419
+ self.update = to_raw_response_wrapper(
420
+ storage.update,
421
+ )
422
+ self.list = to_raw_response_wrapper(
423
+ storage.list,
424
+ )
425
+ self.delete = to_raw_response_wrapper(
426
+ storage.delete,
427
+ )
428
+
429
+
430
+ class AsyncStorageResourceWithRawResponse:
431
+ def __init__(self, storage: AsyncStorageResource) -> None:
432
+ self._storage = storage
433
+
434
+ self.create = async_to_raw_response_wrapper(
435
+ storage.create,
436
+ )
437
+ self.retrieve = async_to_raw_response_wrapper(
438
+ storage.retrieve,
439
+ )
440
+ self.update = async_to_raw_response_wrapper(
441
+ storage.update,
442
+ )
443
+ self.list = async_to_raw_response_wrapper(
444
+ storage.list,
445
+ )
446
+ self.delete = async_to_raw_response_wrapper(
447
+ storage.delete,
448
+ )
449
+
450
+
451
+ class StorageResourceWithStreamingResponse:
452
+ def __init__(self, storage: StorageResource) -> None:
453
+ self._storage = storage
454
+
455
+ self.create = to_streamed_response_wrapper(
456
+ storage.create,
457
+ )
458
+ self.retrieve = to_streamed_response_wrapper(
459
+ storage.retrieve,
460
+ )
461
+ self.update = to_streamed_response_wrapper(
462
+ storage.update,
463
+ )
464
+ self.list = to_streamed_response_wrapper(
465
+ storage.list,
466
+ )
467
+ self.delete = to_streamed_response_wrapper(
468
+ storage.delete,
469
+ )
470
+
471
+
472
+ class AsyncStorageResourceWithStreamingResponse:
473
+ def __init__(self, storage: AsyncStorageResource) -> None:
474
+ self._storage = storage
475
+
476
+ self.create = async_to_streamed_response_wrapper(
477
+ storage.create,
478
+ )
479
+ self.retrieve = async_to_streamed_response_wrapper(
480
+ storage.retrieve,
481
+ )
482
+ self.update = async_to_streamed_response_wrapper(
483
+ storage.update,
484
+ )
485
+ self.list = async_to_streamed_response_wrapper(
486
+ storage.list,
487
+ )
488
+ self.delete = async_to_streamed_response_wrapper(
489
+ storage.delete,
490
+ )
@@ -62,6 +62,8 @@ class CompletionsResource(SyncAPIResource):
62
62
  ],
63
63
  str,
64
64
  ],
65
+ chat_template_kwargs: object | Omit = omit,
66
+ compliance: Literal["hipaa"] | Omit = omit,
65
67
  context_length_exceeded_behavior: Literal["truncate", "error"] | Omit = omit,
66
68
  echo: bool | Omit = omit,
67
69
  frequency_penalty: float | Omit = omit,
@@ -208,6 +210,8 @@ class CompletionsResource(SyncAPIResource):
208
210
  str,
209
211
  ],
210
212
  stream: Literal[True],
213
+ chat_template_kwargs: object | Omit = omit,
214
+ compliance: Literal["hipaa"] | Omit = omit,
211
215
  context_length_exceeded_behavior: Literal["truncate", "error"] | Omit = omit,
212
216
  echo: bool | Omit = omit,
213
217
  frequency_penalty: float | Omit = omit,
@@ -353,6 +357,8 @@ class CompletionsResource(SyncAPIResource):
353
357
  str,
354
358
  ],
355
359
  stream: bool,
360
+ chat_template_kwargs: object | Omit = omit,
361
+ compliance: Literal["hipaa"] | Omit = omit,
356
362
  context_length_exceeded_behavior: Literal["truncate", "error"] | Omit = omit,
357
363
  echo: bool | Omit = omit,
358
364
  frequency_penalty: float | Omit = omit,
@@ -497,6 +503,8 @@ class CompletionsResource(SyncAPIResource):
497
503
  ],
498
504
  str,
499
505
  ],
506
+ chat_template_kwargs: object | Omit = omit,
507
+ compliance: Literal["hipaa"] | Omit = omit,
500
508
  context_length_exceeded_behavior: Literal["truncate", "error"] | Omit = omit,
501
509
  echo: bool | Omit = omit,
502
510
  frequency_penalty: float | Omit = omit,
@@ -532,6 +540,8 @@ class CompletionsResource(SyncAPIResource):
532
540
  {
533
541
  "messages": messages,
534
542
  "model": model,
543
+ "chat_template_kwargs": chat_template_kwargs,
544
+ "compliance": compliance,
535
545
  "context_length_exceeded_behavior": context_length_exceeded_behavior,
536
546
  "echo": echo,
537
547
  "frequency_penalty": frequency_penalty,
@@ -603,6 +613,8 @@ class AsyncCompletionsResource(AsyncAPIResource):
603
613
  ],
604
614
  str,
605
615
  ],
616
+ chat_template_kwargs: object | Omit = omit,
617
+ compliance: Literal["hipaa"] | Omit = omit,
606
618
  context_length_exceeded_behavior: Literal["truncate", "error"] | Omit = omit,
607
619
  echo: bool | Omit = omit,
608
620
  frequency_penalty: float | Omit = omit,
@@ -749,6 +761,8 @@ class AsyncCompletionsResource(AsyncAPIResource):
749
761
  str,
750
762
  ],
751
763
  stream: Literal[True],
764
+ chat_template_kwargs: object | Omit = omit,
765
+ compliance: Literal["hipaa"] | Omit = omit,
752
766
  context_length_exceeded_behavior: Literal["truncate", "error"] | Omit = omit,
753
767
  echo: bool | Omit = omit,
754
768
  frequency_penalty: float | Omit = omit,
@@ -894,6 +908,8 @@ class AsyncCompletionsResource(AsyncAPIResource):
894
908
  str,
895
909
  ],
896
910
  stream: bool,
911
+ chat_template_kwargs: object | Omit = omit,
912
+ compliance: Literal["hipaa"] | Omit = omit,
897
913
  context_length_exceeded_behavior: Literal["truncate", "error"] | Omit = omit,
898
914
  echo: bool | Omit = omit,
899
915
  frequency_penalty: float | Omit = omit,
@@ -1038,6 +1054,8 @@ class AsyncCompletionsResource(AsyncAPIResource):
1038
1054
  ],
1039
1055
  str,
1040
1056
  ],
1057
+ chat_template_kwargs: object | Omit = omit,
1058
+ compliance: Literal["hipaa"] | Omit = omit,
1041
1059
  context_length_exceeded_behavior: Literal["truncate", "error"] | Omit = omit,
1042
1060
  echo: bool | Omit = omit,
1043
1061
  frequency_penalty: float | Omit = omit,
@@ -1073,6 +1091,8 @@ class AsyncCompletionsResource(AsyncAPIResource):
1073
1091
  {
1074
1092
  "messages": messages,
1075
1093
  "model": model,
1094
+ "chat_template_kwargs": chat_template_kwargs,
1095
+ "compliance": compliance,
1076
1096
  "context_length_exceeded_behavior": context_length_exceeded_behavior,
1077
1097
  "echo": echo,
1078
1098
  "frequency_penalty": frequency_penalty,
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .cluster import Cluster as Cluster
6
+ from .cluster_create_params import ClusterCreateParams as ClusterCreateParams
7
+ from .cluster_list_response import ClusterListResponse as ClusterListResponse
8
+ from .cluster_update_params import ClusterUpdateParams as ClusterUpdateParams
9
+ from .cluster_create_response import ClusterCreateResponse as ClusterCreateResponse
10
+ from .cluster_delete_response import ClusterDeleteResponse as ClusterDeleteResponse
11
+ from .cluster_update_response import ClusterUpdateResponse as ClusterUpdateResponse
12
+ from .cluster_list_regions_response import ClusterListRegionsResponse as ClusterListRegionsResponse
@@ -0,0 +1,93 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import Literal
5
+
6
+ from ..._models import BaseModel
7
+
8
+ __all__ = ["Cluster", "ControlPlaneNode", "GPUWorkerNode", "Volume"]
9
+
10
+
11
+ class ControlPlaneNode(BaseModel):
12
+ host_name: str
13
+
14
+ memory_gib: float
15
+
16
+ network: str
17
+
18
+ node_id: str
19
+
20
+ node_name: str
21
+
22
+ num_cpu_cores: int
23
+
24
+ status: str
25
+
26
+
27
+ class GPUWorkerNode(BaseModel):
28
+ host_name: str
29
+
30
+ memory_gib: float
31
+
32
+ networks: List[str]
33
+
34
+ node_id: str
35
+
36
+ node_name: str
37
+
38
+ num_cpu_cores: int
39
+
40
+ num_gpus: int
41
+
42
+ status: str
43
+
44
+
45
+ class Volume(BaseModel):
46
+ size_tib: int
47
+
48
+ status: str
49
+
50
+ volume_id: str
51
+
52
+ volume_name: str
53
+
54
+
55
+ class Cluster(BaseModel):
56
+ cluster_id: str
57
+
58
+ cluster_name: str
59
+
60
+ cluster_type: Literal["KUBERNETES", "SLURM"]
61
+
62
+ control_plane_nodes: List[ControlPlaneNode]
63
+
64
+ driver_version: Literal["CUDA_12_5_555", "CUDA_12_6_560", "CUDA_12_6_565", "CUDA_12_8_570"]
65
+
66
+ duration_hours: int
67
+
68
+ gpu_type: Literal["H100_SXM", "H200_SXM", "RTX_6000_PCI", "L40_PCIE", "B200_SXM", "H100_SXM_INF"]
69
+
70
+ gpu_worker_nodes: List[GPUWorkerNode]
71
+
72
+ kube_config: str
73
+
74
+ num_gpus: int
75
+
76
+ region: str
77
+
78
+ status: Literal[
79
+ "WaitingForControlPlaneNodes",
80
+ "WaitingForDataPlaneNodes",
81
+ "WaitingForSubnet",
82
+ "WaitingForSharedVolume",
83
+ "InstallingDrivers",
84
+ "RunningAcceptanceTests",
85
+ "Paused",
86
+ "OnDemandComputePaused",
87
+ "Ready",
88
+ "Degraded",
89
+ "Deleting",
90
+ ]
91
+ """Current status of the GPU cluster."""
92
+
93
+ volumes: List[Volume]