payi 0.1.0a83__py3-none-any.whl → 0.1.0a85__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.
Potentially problematic release.
This version of payi might be problematic. Click here for more details.
- payi/_version.py +1 -1
- payi/lib/AnthropicInstrumentor.py +111 -70
- payi/lib/BedrockInstrumentor.py +83 -100
- payi/lib/GoogleGenAiInstrumentor.py +26 -111
- payi/lib/VertexInstrumentor.py +132 -98
- payi/lib/instrument.py +52 -15
- payi/resources/categories/__init__.py +14 -0
- payi/resources/categories/categories.py +32 -0
- payi/resources/categories/fixed_cost_resources.py +196 -0
- payi/resources/ingest.py +14 -0
- payi/resources/limits/limits.py +4 -0
- payi/types/categories/__init__.py +1 -0
- payi/types/categories/fixed_cost_resource_create_params.py +21 -0
- payi/types/ingest_event_param.py +13 -1
- payi/types/ingest_units_params.py +11 -1
- payi/types/limit_create_params.py +2 -0
- payi/types/limit_history_response.py +3 -3
- {payi-0.1.0a83.dist-info → payi-0.1.0a85.dist-info}/METADATA +1 -1
- {payi-0.1.0a83.dist-info → payi-0.1.0a85.dist-info}/RECORD +21 -19
- {payi-0.1.0a83.dist-info → payi-0.1.0a85.dist-info}/WHEEL +0 -0
- {payi-0.1.0a83.dist-info → payi-0.1.0a85.dist-info}/licenses/LICENSE +0 -0
|
@@ -25,6 +25,14 @@ from ..._response import (
|
|
|
25
25
|
)
|
|
26
26
|
from ...pagination import SyncCursorPage, AsyncCursorPage
|
|
27
27
|
from ..._base_client import AsyncPaginator, make_request_options
|
|
28
|
+
from .fixed_cost_resources import (
|
|
29
|
+
FixedCostResourcesResource,
|
|
30
|
+
AsyncFixedCostResourcesResource,
|
|
31
|
+
FixedCostResourcesResourceWithRawResponse,
|
|
32
|
+
AsyncFixedCostResourcesResourceWithRawResponse,
|
|
33
|
+
FixedCostResourcesResourceWithStreamingResponse,
|
|
34
|
+
AsyncFixedCostResourcesResourceWithStreamingResponse,
|
|
35
|
+
)
|
|
28
36
|
from ...types.category_response import CategoryResponse
|
|
29
37
|
from ...types.category_delete_response import CategoryDeleteResponse
|
|
30
38
|
from ...types.category_resource_response import CategoryResourceResponse
|
|
@@ -38,6 +46,10 @@ class CategoriesResource(SyncAPIResource):
|
|
|
38
46
|
def resources(self) -> ResourcesResource:
|
|
39
47
|
return ResourcesResource(self._client)
|
|
40
48
|
|
|
49
|
+
@cached_property
|
|
50
|
+
def fixed_cost_resources(self) -> FixedCostResourcesResource:
|
|
51
|
+
return FixedCostResourcesResource(self._client)
|
|
52
|
+
|
|
41
53
|
@cached_property
|
|
42
54
|
def with_raw_response(self) -> CategoriesResourceWithRawResponse:
|
|
43
55
|
"""
|
|
@@ -225,6 +237,10 @@ class AsyncCategoriesResource(AsyncAPIResource):
|
|
|
225
237
|
def resources(self) -> AsyncResourcesResource:
|
|
226
238
|
return AsyncResourcesResource(self._client)
|
|
227
239
|
|
|
240
|
+
@cached_property
|
|
241
|
+
def fixed_cost_resources(self) -> AsyncFixedCostResourcesResource:
|
|
242
|
+
return AsyncFixedCostResourcesResource(self._client)
|
|
243
|
+
|
|
228
244
|
@cached_property
|
|
229
245
|
def with_raw_response(self) -> AsyncCategoriesResourceWithRawResponse:
|
|
230
246
|
"""
|
|
@@ -428,6 +444,10 @@ class CategoriesResourceWithRawResponse:
|
|
|
428
444
|
def resources(self) -> ResourcesResourceWithRawResponse:
|
|
429
445
|
return ResourcesResourceWithRawResponse(self._categories.resources)
|
|
430
446
|
|
|
447
|
+
@cached_property
|
|
448
|
+
def fixed_cost_resources(self) -> FixedCostResourcesResourceWithRawResponse:
|
|
449
|
+
return FixedCostResourcesResourceWithRawResponse(self._categories.fixed_cost_resources)
|
|
450
|
+
|
|
431
451
|
|
|
432
452
|
class AsyncCategoriesResourceWithRawResponse:
|
|
433
453
|
def __init__(self, categories: AsyncCategoriesResource) -> None:
|
|
@@ -450,6 +470,10 @@ class AsyncCategoriesResourceWithRawResponse:
|
|
|
450
470
|
def resources(self) -> AsyncResourcesResourceWithRawResponse:
|
|
451
471
|
return AsyncResourcesResourceWithRawResponse(self._categories.resources)
|
|
452
472
|
|
|
473
|
+
@cached_property
|
|
474
|
+
def fixed_cost_resources(self) -> AsyncFixedCostResourcesResourceWithRawResponse:
|
|
475
|
+
return AsyncFixedCostResourcesResourceWithRawResponse(self._categories.fixed_cost_resources)
|
|
476
|
+
|
|
453
477
|
|
|
454
478
|
class CategoriesResourceWithStreamingResponse:
|
|
455
479
|
def __init__(self, categories: CategoriesResource) -> None:
|
|
@@ -472,6 +496,10 @@ class CategoriesResourceWithStreamingResponse:
|
|
|
472
496
|
def resources(self) -> ResourcesResourceWithStreamingResponse:
|
|
473
497
|
return ResourcesResourceWithStreamingResponse(self._categories.resources)
|
|
474
498
|
|
|
499
|
+
@cached_property
|
|
500
|
+
def fixed_cost_resources(self) -> FixedCostResourcesResourceWithStreamingResponse:
|
|
501
|
+
return FixedCostResourcesResourceWithStreamingResponse(self._categories.fixed_cost_resources)
|
|
502
|
+
|
|
475
503
|
|
|
476
504
|
class AsyncCategoriesResourceWithStreamingResponse:
|
|
477
505
|
def __init__(self, categories: AsyncCategoriesResource) -> None:
|
|
@@ -493,3 +521,7 @@ class AsyncCategoriesResourceWithStreamingResponse:
|
|
|
493
521
|
@cached_property
|
|
494
522
|
def resources(self) -> AsyncResourcesResourceWithStreamingResponse:
|
|
495
523
|
return AsyncResourcesResourceWithStreamingResponse(self._categories.resources)
|
|
524
|
+
|
|
525
|
+
@cached_property
|
|
526
|
+
def fixed_cost_resources(self) -> AsyncFixedCostResourcesResourceWithStreamingResponse:
|
|
527
|
+
return AsyncFixedCostResourcesResourceWithStreamingResponse(self._categories.fixed_cost_resources)
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import List, Union
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
|
|
8
|
+
import httpx
|
|
9
|
+
|
|
10
|
+
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
|
|
11
|
+
from ..._utils import maybe_transform, async_maybe_transform
|
|
12
|
+
from ..._compat import cached_property
|
|
13
|
+
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
14
|
+
from ..._response import (
|
|
15
|
+
to_raw_response_wrapper,
|
|
16
|
+
to_streamed_response_wrapper,
|
|
17
|
+
async_to_raw_response_wrapper,
|
|
18
|
+
async_to_streamed_response_wrapper,
|
|
19
|
+
)
|
|
20
|
+
from ..._base_client import make_request_options
|
|
21
|
+
from ...types.categories import fixed_cost_resource_create_params
|
|
22
|
+
from ...types.category_resource_response import CategoryResourceResponse
|
|
23
|
+
|
|
24
|
+
__all__ = ["FixedCostResourcesResource", "AsyncFixedCostResourcesResource"]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class FixedCostResourcesResource(SyncAPIResource):
|
|
28
|
+
@cached_property
|
|
29
|
+
def with_raw_response(self) -> FixedCostResourcesResourceWithRawResponse:
|
|
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/Pay-i/pay-i-python#accessing-raw-response-data-eg-headers
|
|
35
|
+
"""
|
|
36
|
+
return FixedCostResourcesResourceWithRawResponse(self)
|
|
37
|
+
|
|
38
|
+
@cached_property
|
|
39
|
+
def with_streaming_response(self) -> FixedCostResourcesResourceWithStreamingResponse:
|
|
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/Pay-i/pay-i-python#with_streaming_response
|
|
44
|
+
"""
|
|
45
|
+
return FixedCostResourcesResourceWithStreamingResponse(self)
|
|
46
|
+
|
|
47
|
+
def create(
|
|
48
|
+
self,
|
|
49
|
+
resource: str,
|
|
50
|
+
*,
|
|
51
|
+
category: str,
|
|
52
|
+
units: List[str],
|
|
53
|
+
cost_per_hour: float | NotGiven = NOT_GIVEN,
|
|
54
|
+
start_timestamp: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
|
|
55
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
56
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
57
|
+
extra_headers: Headers | None = None,
|
|
58
|
+
extra_query: Query | None = None,
|
|
59
|
+
extra_body: Body | None = None,
|
|
60
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
61
|
+
) -> CategoryResourceResponse:
|
|
62
|
+
"""
|
|
63
|
+
Create a fixed cost resource
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
extra_headers: Send extra headers
|
|
67
|
+
|
|
68
|
+
extra_query: Add additional query parameters to the request
|
|
69
|
+
|
|
70
|
+
extra_body: Add additional JSON properties to the request
|
|
71
|
+
|
|
72
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
73
|
+
"""
|
|
74
|
+
if not category:
|
|
75
|
+
raise ValueError(f"Expected a non-empty value for `category` but received {category!r}")
|
|
76
|
+
if not resource:
|
|
77
|
+
raise ValueError(f"Expected a non-empty value for `resource` but received {resource!r}")
|
|
78
|
+
return self._post(
|
|
79
|
+
f"/api/v1/categories/{category}/fixed_cost_resources/{resource}",
|
|
80
|
+
body=maybe_transform(
|
|
81
|
+
{
|
|
82
|
+
"units": units,
|
|
83
|
+
"cost_per_hour": cost_per_hour,
|
|
84
|
+
"start_timestamp": start_timestamp,
|
|
85
|
+
},
|
|
86
|
+
fixed_cost_resource_create_params.FixedCostResourceCreateParams,
|
|
87
|
+
),
|
|
88
|
+
options=make_request_options(
|
|
89
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
90
|
+
),
|
|
91
|
+
cast_to=CategoryResourceResponse,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class AsyncFixedCostResourcesResource(AsyncAPIResource):
|
|
96
|
+
@cached_property
|
|
97
|
+
def with_raw_response(self) -> AsyncFixedCostResourcesResourceWithRawResponse:
|
|
98
|
+
"""
|
|
99
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
100
|
+
the raw response object instead of the parsed content.
|
|
101
|
+
|
|
102
|
+
For more information, see https://www.github.com/Pay-i/pay-i-python#accessing-raw-response-data-eg-headers
|
|
103
|
+
"""
|
|
104
|
+
return AsyncFixedCostResourcesResourceWithRawResponse(self)
|
|
105
|
+
|
|
106
|
+
@cached_property
|
|
107
|
+
def with_streaming_response(self) -> AsyncFixedCostResourcesResourceWithStreamingResponse:
|
|
108
|
+
"""
|
|
109
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
110
|
+
|
|
111
|
+
For more information, see https://www.github.com/Pay-i/pay-i-python#with_streaming_response
|
|
112
|
+
"""
|
|
113
|
+
return AsyncFixedCostResourcesResourceWithStreamingResponse(self)
|
|
114
|
+
|
|
115
|
+
async def create(
|
|
116
|
+
self,
|
|
117
|
+
resource: str,
|
|
118
|
+
*,
|
|
119
|
+
category: str,
|
|
120
|
+
units: List[str],
|
|
121
|
+
cost_per_hour: float | NotGiven = NOT_GIVEN,
|
|
122
|
+
start_timestamp: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
|
|
123
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
124
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
125
|
+
extra_headers: Headers | None = None,
|
|
126
|
+
extra_query: Query | None = None,
|
|
127
|
+
extra_body: Body | None = None,
|
|
128
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
129
|
+
) -> CategoryResourceResponse:
|
|
130
|
+
"""
|
|
131
|
+
Create a fixed cost resource
|
|
132
|
+
|
|
133
|
+
Args:
|
|
134
|
+
extra_headers: Send extra headers
|
|
135
|
+
|
|
136
|
+
extra_query: Add additional query parameters to the request
|
|
137
|
+
|
|
138
|
+
extra_body: Add additional JSON properties to the request
|
|
139
|
+
|
|
140
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
141
|
+
"""
|
|
142
|
+
if not category:
|
|
143
|
+
raise ValueError(f"Expected a non-empty value for `category` but received {category!r}")
|
|
144
|
+
if not resource:
|
|
145
|
+
raise ValueError(f"Expected a non-empty value for `resource` but received {resource!r}")
|
|
146
|
+
return await self._post(
|
|
147
|
+
f"/api/v1/categories/{category}/fixed_cost_resources/{resource}",
|
|
148
|
+
body=await async_maybe_transform(
|
|
149
|
+
{
|
|
150
|
+
"units": units,
|
|
151
|
+
"cost_per_hour": cost_per_hour,
|
|
152
|
+
"start_timestamp": start_timestamp,
|
|
153
|
+
},
|
|
154
|
+
fixed_cost_resource_create_params.FixedCostResourceCreateParams,
|
|
155
|
+
),
|
|
156
|
+
options=make_request_options(
|
|
157
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
158
|
+
),
|
|
159
|
+
cast_to=CategoryResourceResponse,
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
class FixedCostResourcesResourceWithRawResponse:
|
|
164
|
+
def __init__(self, fixed_cost_resources: FixedCostResourcesResource) -> None:
|
|
165
|
+
self._fixed_cost_resources = fixed_cost_resources
|
|
166
|
+
|
|
167
|
+
self.create = to_raw_response_wrapper(
|
|
168
|
+
fixed_cost_resources.create,
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
class AsyncFixedCostResourcesResourceWithRawResponse:
|
|
173
|
+
def __init__(self, fixed_cost_resources: AsyncFixedCostResourcesResource) -> None:
|
|
174
|
+
self._fixed_cost_resources = fixed_cost_resources
|
|
175
|
+
|
|
176
|
+
self.create = async_to_raw_response_wrapper(
|
|
177
|
+
fixed_cost_resources.create,
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
class FixedCostResourcesResourceWithStreamingResponse:
|
|
182
|
+
def __init__(self, fixed_cost_resources: FixedCostResourcesResource) -> None:
|
|
183
|
+
self._fixed_cost_resources = fixed_cost_resources
|
|
184
|
+
|
|
185
|
+
self.create = to_streamed_response_wrapper(
|
|
186
|
+
fixed_cost_resources.create,
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
class AsyncFixedCostResourcesResourceWithStreamingResponse:
|
|
191
|
+
def __init__(self, fixed_cost_resources: AsyncFixedCostResourcesResource) -> None:
|
|
192
|
+
self._fixed_cost_resources = fixed_cost_resources
|
|
193
|
+
|
|
194
|
+
self.create = async_to_streamed_response_wrapper(
|
|
195
|
+
fixed_cost_resources.create,
|
|
196
|
+
)
|
payi/resources/ingest.py
CHANGED
|
@@ -95,10 +95,14 @@ class IngestResource(SyncAPIResource):
|
|
|
95
95
|
properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
96
96
|
provider_request_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]] | NotGiven = NOT_GIVEN,
|
|
97
97
|
provider_request_json: Optional[str] | NotGiven = NOT_GIVEN,
|
|
98
|
+
provider_request_reasoning_json: Optional[str] | NotGiven = NOT_GIVEN,
|
|
99
|
+
provider_response_function_calls: Optional[Iterable[ingest_units_params.ProviderResponseFunctionCall]]
|
|
100
|
+
| NotGiven = NOT_GIVEN,
|
|
98
101
|
provider_response_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]] | NotGiven = NOT_GIVEN,
|
|
99
102
|
provider_response_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
100
103
|
provider_response_json: Union[str, List[str], None] | NotGiven = NOT_GIVEN,
|
|
101
104
|
provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
|
|
105
|
+
time_to_first_completion_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
102
106
|
time_to_first_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
103
107
|
use_case_properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
104
108
|
limit_ids: Optional[list[str]] | NotGiven = NOT_GIVEN,
|
|
@@ -242,10 +246,13 @@ class IngestResource(SyncAPIResource):
|
|
|
242
246
|
"properties": properties,
|
|
243
247
|
"provider_request_headers": provider_request_headers,
|
|
244
248
|
"provider_request_json": provider_request_json,
|
|
249
|
+
"provider_request_reasoning_json": provider_request_reasoning_json,
|
|
250
|
+
"provider_response_function_calls": provider_response_function_calls,
|
|
245
251
|
"provider_response_headers": provider_response_headers,
|
|
246
252
|
"provider_response_id": provider_response_id,
|
|
247
253
|
"provider_response_json": provider_response_json,
|
|
248
254
|
"provider_uri": provider_uri,
|
|
255
|
+
"time_to_first_completion_token_ms": time_to_first_completion_token_ms,
|
|
249
256
|
"time_to_first_token_ms": time_to_first_token_ms,
|
|
250
257
|
"use_case_properties": use_case_properties,
|
|
251
258
|
},
|
|
@@ -323,10 +330,14 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
323
330
|
properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
324
331
|
provider_request_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]] | NotGiven = NOT_GIVEN,
|
|
325
332
|
provider_request_json: Optional[str] | NotGiven = NOT_GIVEN,
|
|
333
|
+
provider_request_reasoning_json: Optional[str] | NotGiven = NOT_GIVEN,
|
|
334
|
+
provider_response_function_calls: Optional[Iterable[ingest_units_params.ProviderResponseFunctionCall]]
|
|
335
|
+
| NotGiven = NOT_GIVEN,
|
|
326
336
|
provider_response_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]] | NotGiven = NOT_GIVEN,
|
|
327
337
|
provider_response_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
328
338
|
provider_response_json: Union[str, List[str], None] | NotGiven = NOT_GIVEN,
|
|
329
339
|
provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
|
|
340
|
+
time_to_first_completion_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
330
341
|
time_to_first_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
331
342
|
use_case_properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
332
343
|
limit_ids: Optional[list[str]] | NotGiven = NOT_GIVEN,
|
|
@@ -468,10 +479,13 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
468
479
|
"properties": properties,
|
|
469
480
|
"provider_request_headers": provider_request_headers,
|
|
470
481
|
"provider_request_json": provider_request_json,
|
|
482
|
+
"provider_request_reasoning_json": provider_request_reasoning_json,
|
|
483
|
+
"provider_response_function_calls": provider_response_function_calls,
|
|
471
484
|
"provider_response_headers": provider_response_headers,
|
|
472
485
|
"provider_response_id": provider_response_id,
|
|
473
486
|
"provider_response_json": provider_response_json,
|
|
474
487
|
"provider_uri": provider_uri,
|
|
488
|
+
"time_to_first_completion_token_ms": time_to_first_completion_token_ms,
|
|
475
489
|
"time_to_first_token_ms": time_to_first_token_ms,
|
|
476
490
|
"use_case_properties": use_case_properties,
|
|
477
491
|
},
|
payi/resources/limits/limits.py
CHANGED
|
@@ -66,6 +66,7 @@ class LimitsResource(SyncAPIResource):
|
|
|
66
66
|
*,
|
|
67
67
|
limit_name: str,
|
|
68
68
|
max: float,
|
|
69
|
+
limit_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
69
70
|
limit_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
70
71
|
limit_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
|
|
71
72
|
threshold: Optional[float] | NotGiven = NOT_GIVEN,
|
|
@@ -94,6 +95,7 @@ class LimitsResource(SyncAPIResource):
|
|
|
94
95
|
{
|
|
95
96
|
"limit_name": limit_name,
|
|
96
97
|
"max": max,
|
|
98
|
+
"limit_id": limit_id,
|
|
97
99
|
"limit_tags": limit_tags,
|
|
98
100
|
"limit_type": limit_type,
|
|
99
101
|
"threshold": threshold,
|
|
@@ -331,6 +333,7 @@ class AsyncLimitsResource(AsyncAPIResource):
|
|
|
331
333
|
*,
|
|
332
334
|
limit_name: str,
|
|
333
335
|
max: float,
|
|
336
|
+
limit_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
334
337
|
limit_tags: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
335
338
|
limit_type: Literal["block", "allow"] | NotGiven = NOT_GIVEN,
|
|
336
339
|
threshold: Optional[float] | NotGiven = NOT_GIVEN,
|
|
@@ -359,6 +362,7 @@ class AsyncLimitsResource(AsyncAPIResource):
|
|
|
359
362
|
{
|
|
360
363
|
"limit_name": limit_name,
|
|
361
364
|
"max": max,
|
|
365
|
+
"limit_id": limit_id,
|
|
362
366
|
"limit_tags": limit_tags,
|
|
363
367
|
"limit_type": limit_type,
|
|
364
368
|
"threshold": threshold,
|
|
@@ -4,3 +4,4 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
from .resource_list_params import ResourceListParams as ResourceListParams
|
|
6
6
|
from .resource_create_params import ResourceCreateParams as ResourceCreateParams
|
|
7
|
+
from .fixed_cost_resource_create_params import FixedCostResourceCreateParams as FixedCostResourceCreateParams
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import List, Union
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from typing_extensions import Required, Annotated, TypedDict
|
|
8
|
+
|
|
9
|
+
from ..._utils import PropertyInfo
|
|
10
|
+
|
|
11
|
+
__all__ = ["FixedCostResourceCreateParams"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class FixedCostResourceCreateParams(TypedDict, total=False):
|
|
15
|
+
category: Required[str]
|
|
16
|
+
|
|
17
|
+
units: Required[List[str]]
|
|
18
|
+
|
|
19
|
+
cost_per_hour: float
|
|
20
|
+
|
|
21
|
+
start_timestamp: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
|
payi/types/ingest_event_param.py
CHANGED
|
@@ -10,7 +10,13 @@ from .._utils import PropertyInfo
|
|
|
10
10
|
from .shared_params.ingest_units import IngestUnits
|
|
11
11
|
from .pay_i_common_models_api_router_header_info_param import PayICommonModelsAPIRouterHeaderInfoParam
|
|
12
12
|
|
|
13
|
-
__all__ = ["IngestEventParam"]
|
|
13
|
+
__all__ = ["IngestEventParam", "ProviderResponseFunctionCall"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ProviderResponseFunctionCall(TypedDict, total=False):
|
|
17
|
+
name: Required[str]
|
|
18
|
+
|
|
19
|
+
arguments: Optional[str]
|
|
14
20
|
|
|
15
21
|
|
|
16
22
|
class IngestEventParam(TypedDict, total=False):
|
|
@@ -42,6 +48,10 @@ class IngestEventParam(TypedDict, total=False):
|
|
|
42
48
|
|
|
43
49
|
provider_request_json: Optional[str]
|
|
44
50
|
|
|
51
|
+
provider_request_reasoning_json: Optional[str]
|
|
52
|
+
|
|
53
|
+
provider_response_function_calls: Optional[Iterable[ProviderResponseFunctionCall]]
|
|
54
|
+
|
|
45
55
|
provider_response_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]]
|
|
46
56
|
|
|
47
57
|
provider_response_id: Optional[str]
|
|
@@ -52,6 +62,8 @@ class IngestEventParam(TypedDict, total=False):
|
|
|
52
62
|
|
|
53
63
|
request_tags: Optional[List[str]]
|
|
54
64
|
|
|
65
|
+
time_to_first_completion_token_ms: Optional[int]
|
|
66
|
+
|
|
55
67
|
time_to_first_token_ms: Optional[int]
|
|
56
68
|
|
|
57
69
|
use_case_id: Optional[str]
|
|
@@ -10,7 +10,7 @@ from .._utils import PropertyInfo
|
|
|
10
10
|
from .shared_params.ingest_units import IngestUnits
|
|
11
11
|
from .pay_i_common_models_api_router_header_info_param import PayICommonModelsAPIRouterHeaderInfoParam
|
|
12
12
|
|
|
13
|
-
__all__ = ["IngestUnitsParams"]
|
|
13
|
+
__all__ = ["IngestUnitsParams", "ProviderResponseFunctionCall"]
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class IngestUnitsParams(TypedDict, total=False):
|
|
@@ -34,6 +34,10 @@ class IngestUnitsParams(TypedDict, total=False):
|
|
|
34
34
|
|
|
35
35
|
provider_request_json: Optional[str]
|
|
36
36
|
|
|
37
|
+
provider_request_reasoning_json: Optional[str]
|
|
38
|
+
|
|
39
|
+
provider_response_function_calls: Optional[Iterable[ProviderResponseFunctionCall]]
|
|
40
|
+
|
|
37
41
|
provider_response_headers: Optional[Iterable[PayICommonModelsAPIRouterHeaderInfoParam]]
|
|
38
42
|
|
|
39
43
|
provider_response_id: Optional[str]
|
|
@@ -42,6 +46,8 @@ class IngestUnitsParams(TypedDict, total=False):
|
|
|
42
46
|
|
|
43
47
|
provider_uri: Optional[str]
|
|
44
48
|
|
|
49
|
+
time_to_first_completion_token_ms: Optional[int]
|
|
50
|
+
|
|
45
51
|
time_to_first_token_ms: Optional[int]
|
|
46
52
|
|
|
47
53
|
use_case_properties: Optional[Dict[str, str]]
|
|
@@ -66,6 +72,10 @@ class IngestUnitsParams(TypedDict, total=False):
|
|
|
66
72
|
|
|
67
73
|
user_id: Annotated[Union[str, None], PropertyInfo(alias="xProxy-User-ID")]
|
|
68
74
|
|
|
75
|
+
class ProviderResponseFunctionCall(TypedDict, total=False):
|
|
76
|
+
name: Required[str]
|
|
77
|
+
|
|
78
|
+
arguments: Optional[str]
|
|
69
79
|
|
|
70
80
|
class Units(TypedDict, total=False):
|
|
71
81
|
input: int
|
|
@@ -11,9 +11,11 @@ __all__ = ["LimitHistoryResponse", "LimitHistory"]
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class LimitHistory(BaseModel):
|
|
14
|
+
limit_id: Optional[str] = None
|
|
15
|
+
|
|
14
16
|
limit_name: Optional[str] = None
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
totals: TotalCostData
|
|
17
19
|
|
|
18
20
|
limit_reset_timestamp: Optional[datetime] = None
|
|
19
21
|
|
|
@@ -23,8 +25,6 @@ class LimitHistory(BaseModel):
|
|
|
23
25
|
|
|
24
26
|
max: Optional[float] = None
|
|
25
27
|
|
|
26
|
-
totals: Optional[TotalCostData] = None
|
|
27
|
-
|
|
28
28
|
|
|
29
29
|
class LimitHistoryResponse(BaseModel):
|
|
30
30
|
limit_history: LimitHistory
|
|
@@ -11,7 +11,7 @@ payi/_resource.py,sha256=j2jIkTr8OIC8sU6-05nxSaCyj4MaFlbZrwlyg4_xJos,1088
|
|
|
11
11
|
payi/_response.py,sha256=rh9oJAvCKcPwQFm4iqH_iVrmK8bNx--YP_A2a4kN1OU,28776
|
|
12
12
|
payi/_streaming.py,sha256=Z_wIyo206T6Jqh2rolFg2VXZgX24PahLmpURp0-NssU,10092
|
|
13
13
|
payi/_types.py,sha256=7jE5MoQQFVoVxw5vVzvZ2Ao0kcjfNOGsBgyJfLBEnMo,6195
|
|
14
|
-
payi/_version.py,sha256=
|
|
14
|
+
payi/_version.py,sha256=DwFyWdlIieEfdByr4AXbSgqg04RNBaMY1dOD_SGHxeU,165
|
|
15
15
|
payi/pagination.py,sha256=k2356QGPOUSjRF2vHpwLBdF6P-2vnQzFfRIJQAHGQ7A,1258
|
|
16
16
|
payi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
payi/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
|
|
@@ -25,18 +25,19 @@ payi/_utils/_transform.py,sha256=n7kskEWz6o__aoNvhFoGVyDoalNe6mJwp-g7BWkdj88,156
|
|
|
25
25
|
payi/_utils/_typing.py,sha256=D0DbbNu8GnYQTSICnTSHDGsYXj8TcAKyhejb0XcnjtY,4602
|
|
26
26
|
payi/_utils/_utils.py,sha256=ts4CiiuNpFiGB6YMdkQRh2SZvYvsl7mAF-JWHCcLDf4,12312
|
|
27
27
|
payi/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
|
|
28
|
-
payi/lib/AnthropicInstrumentor.py,sha256=
|
|
29
|
-
payi/lib/BedrockInstrumentor.py,sha256=
|
|
30
|
-
payi/lib/GoogleGenAiInstrumentor.py,sha256=
|
|
28
|
+
payi/lib/AnthropicInstrumentor.py,sha256=182o_DDVlU_qB_fEKw-UwdAm5ZUT2k86HZt4KMkgbLE,10672
|
|
29
|
+
payi/lib/BedrockInstrumentor.py,sha256=pIC52fcShsPuEpeHTQoaG4-bhNiJHhJJUCUYbgXNTMs,14156
|
|
30
|
+
payi/lib/GoogleGenAiInstrumentor.py,sha256=woXFPo--tS8mALjqmPlC0VHNrH95Ceqe42XBOfAzSdE,10450
|
|
31
31
|
payi/lib/OpenAIInstrumentor.py,sha256=FjIRlQk5t95ySspH0VXsBv7my_f-c6HluvReY2hRvmM,18852
|
|
32
32
|
payi/lib/Stopwatch.py,sha256=7OJlxvr2Jyb6Zr1LYCYKczRB7rDVKkIR7gc4YoleNdE,764
|
|
33
|
-
payi/lib/VertexInstrumentor.py,sha256=
|
|
33
|
+
payi/lib/VertexInstrumentor.py,sha256=8UT6Dk-ZeTSCyJc88TaHZjgVRrfIQJU3xinEKh-Ndb4,14892
|
|
34
34
|
payi/lib/helpers.py,sha256=K1KAfWrpPT1UUGNxspLe1lHzQjP3XV5Pkh9IU4pKMok,4624
|
|
35
|
-
payi/lib/instrument.py,sha256=
|
|
35
|
+
payi/lib/instrument.py,sha256=I_R-lif989hz2DI9ZnlMavDkQ39Mss6LctvKy_sXNns,67915
|
|
36
36
|
payi/resources/__init__.py,sha256=1rtrPLWbNt8oJGOp6nwPumKLJ-ftez0B6qwLFyfcoP4,2972
|
|
37
|
-
payi/resources/ingest.py,sha256=
|
|
38
|
-
payi/resources/categories/__init__.py,sha256=
|
|
39
|
-
payi/resources/categories/categories.py,sha256=
|
|
37
|
+
payi/resources/ingest.py,sha256=Z4WHv-INZoIlBzFw4o1j_PHykDsNACpkkF42Kik0UMg,23758
|
|
38
|
+
payi/resources/categories/__init__.py,sha256=WeotN_d-0Ri8ohsrNPbve7RyViD9_N0NA9DrV3WYg3w,1701
|
|
39
|
+
payi/resources/categories/categories.py,sha256=yYCkCxaYPWees9I9cx9CPy_H9wZK2X7jq8tRh-G__v8,20653
|
|
40
|
+
payi/resources/categories/fixed_cost_resources.py,sha256=tLJlZ06KDIOHpVF4iq8S9IPocGohbOYh9LO0cWGznUA,7824
|
|
40
41
|
payi/resources/categories/resources.py,sha256=nY5mKJPEy7-6J_UsyXZebNmUs6WK5ONx_qON9z6DwUg,19979
|
|
41
42
|
payi/resources/experiences/__init__.py,sha256=Qiyv7Tv6UC-wWpb7XVTyHvBRE0IZTnEpykFpP27xKe0,1556
|
|
42
43
|
payi/resources/experiences/experiences.py,sha256=m_-C_gF-dX8aBL0OYLTsT6-NSyXTaDFWoxv8l6tPOZI,14580
|
|
@@ -45,7 +46,7 @@ payi/resources/experiences/types/__init__.py,sha256=42loJPPtbwZ4qrqa1gKEg2CG5PLx
|
|
|
45
46
|
payi/resources/experiences/types/limit_config.py,sha256=ZIgtlrcfcYIInc1XYeyHOk2ycF2xyLvou_NpGRGpcfU,10604
|
|
46
47
|
payi/resources/experiences/types/types.py,sha256=rOgZjIvk5IOIlBT9fJ7HOlXAUpQnC2nF7OS_888XL7Q,21915
|
|
47
48
|
payi/resources/limits/__init__.py,sha256=URXh9vglDH-dqbVGk-XcrDa8H5Bg2pgFuVQQecgEtaA,976
|
|
48
|
-
payi/resources/limits/limits.py,sha256=
|
|
49
|
+
payi/resources/limits/limits.py,sha256=kyzyLrgjrK3qgMvSjzHAJGyFTNTFWUnAr7uw4bRpBp4,25196
|
|
49
50
|
payi/resources/limits/tags.py,sha256=gPW2ds6Zh7-BV7_SwtbRGcMMgj94NciGzcui6FRRQ-o,18964
|
|
50
51
|
payi/resources/requests/__init__.py,sha256=k7ipgDb5QXAv7WYhgQq0-6Zn9INJikMzRGexufceHeI,1530
|
|
51
52
|
payi/resources/requests/properties.py,sha256=_zAm72vLZq-X8lMO-qSttV9gw_uPfXsoJn2C4GJzpbw,6448
|
|
@@ -73,11 +74,11 @@ payi/types/cost_details.py,sha256=w9p79opEG3kcsjkRRP7niaMcUswdfB4Y7HCkVTcQ1zQ,30
|
|
|
73
74
|
payi/types/default_response.py,sha256=o617LpRsCIZHCZxAc5nVI2JQ3HPGZo4gCDvSDkxkIJ8,270
|
|
74
75
|
payi/types/experience_instance_response.py,sha256=G07YSRjXrUa5IAS4zEJHGiCNMNlVjycYhqS42ZnVs-Q,336
|
|
75
76
|
payi/types/ingest_bulk_params.py,sha256=A-IRb39d2tmVzEQqrvhlF_3si-9ufHBKYLlvdXupAHU,362
|
|
76
|
-
payi/types/ingest_event_param.py,sha256=
|
|
77
|
+
payi/types/ingest_event_param.py,sha256=Nxf-sRKlks8gXaSM_52s_3TkvG0SJICxsvgkRch_Yxk,2054
|
|
77
78
|
payi/types/ingest_response.py,sha256=JwcZ6OL793uXTuDmZAzkzhGcdtDsSXfSy_ERjzc7MZY,378
|
|
78
|
-
payi/types/ingest_units_params.py,sha256=
|
|
79
|
-
payi/types/limit_create_params.py,sha256=
|
|
80
|
-
payi/types/limit_history_response.py,sha256=
|
|
79
|
+
payi/types/ingest_units_params.py,sha256=MjPgtC-AEASeEgyG2Kdvg-D590vyCZtgE1aCipnx5FQ,2690
|
|
80
|
+
payi/types/limit_create_params.py,sha256=_STjwITl7Co62DNcTfeA7tis8h2s25ZnmXKcX-Vvqt4,582
|
|
81
|
+
payi/types/limit_history_response.py,sha256=vJnVVa5BROfYHRPvpfymcOabjDhcJtFowQF-L-apNgw,770
|
|
81
82
|
payi/types/limit_list_params.py,sha256=OYlK0anDA5G71FfwrMDzhEX4S5AlASLRiR0tmyD9tTU,322
|
|
82
83
|
payi/types/limit_list_response.py,sha256=8UMtHrO38HqOkn8qAC9R90N902VVRZrZYp0C7fPEX1g,622
|
|
83
84
|
payi/types/limit_reset_params.py,sha256=vgqImSM89pRYY0Z2RNrJuQ6WeDX72ZPg3GWpL9EVEKs,476
|
|
@@ -87,7 +88,8 @@ payi/types/pay_i_common_models_api_router_header_info_param.py,sha256=91djoPLmoa
|
|
|
87
88
|
payi/types/requests_data.py,sha256=coHpXgOIQv8oKaX354G-uYoJMzbJcjIW1oX1wuQppts,307
|
|
88
89
|
payi/types/total_cost_data.py,sha256=1xoiInVI0UaKup_8poAHNgcpK8gu09RQnMrdorQtFgQ,301
|
|
89
90
|
payi/types/use_case_instance_response.py,sha256=khdcmoU1L8djNVYLu4rSmWkaceZmGwkE9eHLedN1ePU,328
|
|
90
|
-
payi/types/categories/__init__.py,sha256=
|
|
91
|
+
payi/types/categories/__init__.py,sha256=mpdvOCRgkzQgIqgcb30nvunzZFqMrDOAoa_N0MJZouE,389
|
|
92
|
+
payi/types/categories/fixed_cost_resource_create_params.py,sha256=7aCIr-qIGTRkDtYwcnnFgt_iSOIrVbelw23rYYP1IgI,567
|
|
91
93
|
payi/types/categories/resource_create_params.py,sha256=HVzUWhvmUhVu9h70DmUrBPUcO-g2VUIc5cg0sxbG3fs,745
|
|
92
94
|
payi/types/categories/resource_list_params.py,sha256=vHKNPb3RVbg25-0g6yN-LXoNKlkYlnZb47hxlTuizUw,346
|
|
93
95
|
payi/types/experiences/__init__.py,sha256=UCNgXSeJ2fj_Zbs7kU2v1yj54U4688eh_yWGQ-KuJr8,467
|
|
@@ -142,7 +144,7 @@ payi/types/use_cases/definitions/kpi_retrieve_response.py,sha256=uQXliSvS3k-yDYw
|
|
|
142
144
|
payi/types/use_cases/definitions/kpi_update_params.py,sha256=jbawdWAdMnsTWVH0qfQGb8W7_TXe3lq4zjSRu44d8p8,373
|
|
143
145
|
payi/types/use_cases/definitions/kpi_update_response.py,sha256=zLyEoT0S8d7XHsnXZYT8tM7yDw0Aze0Mk-_Z6QeMtc8,459
|
|
144
146
|
payi/types/use_cases/definitions/limit_config_create_params.py,sha256=pzQza_16N3z8cFNEKr6gPbFvuGFrwNuGxAYb--Kbo2M,449
|
|
145
|
-
payi-0.1.
|
|
146
|
-
payi-0.1.
|
|
147
|
-
payi-0.1.
|
|
148
|
-
payi-0.1.
|
|
147
|
+
payi-0.1.0a85.dist-info/METADATA,sha256=T1jCVkNld8_tdPNFtHq4UDX8HRobcM01quMFW1_npWQ,15180
|
|
148
|
+
payi-0.1.0a85.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
149
|
+
payi-0.1.0a85.dist-info/licenses/LICENSE,sha256=CQt03aM-P4a3Yg5qBg3JSLVoQS3smMyvx7tYg_6V7Gk,11334
|
|
150
|
+
payi-0.1.0a85.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|