payi 0.1.0a33__py3-none-any.whl → 0.1.0a34__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/_client.py +9 -9
- payi/_version.py +1 -1
- payi/lib/helpers.py +8 -8
- payi/resources/__init__.py +13 -13
- payi/resources/billing_models.py +4 -4
- payi/resources/experiences/properties.py +3 -3
- payi/resources/ingest.py +47 -19
- payi/resources/{budgets → limits}/__init__.py +13 -13
- payi/resources/{budgets/budgets.py → limits/limits.py} +213 -196
- payi/resources/{budgets → limits}/tags.py +68 -68
- payi/resources/requests/properties.py +3 -3
- payi/types/__init__.py +8 -6
- payi/types/billing_model.py +1 -1
- payi/types/billing_model_create_params.py +1 -1
- payi/types/billing_model_update_params.py +1 -1
- payi/types/category_resource_response.py +4 -0
- payi/types/experiences/property_create_params.py +2 -2
- payi/types/ingest_event_param.py +16 -2
- payi/types/ingest_response.py +7 -7
- payi/types/ingest_units_params.py +16 -2
- payi/types/{budget_create_params.py → limit_create_params.py} +7 -9
- payi/types/limit_history_response.py +34 -0
- payi/types/{budget_list_params.py → limit_list_params.py} +3 -3
- payi/types/limit_reset_params.py +16 -0
- payi/types/{budget_response.py → limit_response.py} +11 -13
- payi/types/{budget_update_params.py → limit_update_params.py} +3 -3
- payi/types/{budgets → limits}/__init__.py +1 -1
- payi/types/{budgets/budget_tags.py → limits/limit_tags.py} +2 -2
- payi/types/{budgets → limits}/tag_create_params.py +1 -1
- payi/types/{budgets → limits}/tag_create_response.py +2 -2
- payi/types/{budgets → limits}/tag_delete_response.py +2 -2
- payi/types/{budgets → limits}/tag_list_response.py +2 -2
- payi/types/{budgets → limits}/tag_remove_params.py +1 -1
- payi/types/{budgets → limits}/tag_remove_response.py +2 -2
- payi/types/{budgets → limits}/tag_update_params.py +1 -1
- payi/types/{budgets → limits}/tag_update_response.py +2 -2
- payi/types/{paged_budget_list.py → paged_limit_list.py} +9 -11
- payi/types/requests/property_create_params.py +2 -2
- payi/types/shared/__init__.py +3 -0
- payi/types/shared/evaluation_response.py +11 -0
- {payi-0.1.0a33.dist-info → payi-0.1.0a34.dist-info}/METADATA +19 -19
- {payi-0.1.0a33.dist-info → payi-0.1.0a34.dist-info}/RECORD +44 -41
- {payi-0.1.0a33.dist-info → payi-0.1.0a34.dist-info}/licenses/LICENSE +1 -1
- payi/types/budget_history_response.py +0 -38
- {payi-0.1.0a33.dist-info → payi-0.1.0a34.dist-info}/WHEEL +0 -0
payi/_client.py
CHANGED
|
@@ -32,7 +32,7 @@ from ._base_client import (
|
|
|
32
32
|
SyncAPIClient,
|
|
33
33
|
AsyncAPIClient,
|
|
34
34
|
)
|
|
35
|
-
from .resources.
|
|
35
|
+
from .resources.limits import limits
|
|
36
36
|
from .resources.requests import requests
|
|
37
37
|
from .resources.categories import categories
|
|
38
38
|
from .resources.experiences import experiences
|
|
@@ -41,7 +41,7 @@ __all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Payi", "As
|
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
class Payi(SyncAPIClient):
|
|
44
|
-
|
|
44
|
+
limits: limits.LimitsResource
|
|
45
45
|
ingest: ingest.IngestResource
|
|
46
46
|
categories: categories.CategoriesResource
|
|
47
47
|
experiences: experiences.ExperiencesResource
|
|
@@ -105,7 +105,7 @@ class Payi(SyncAPIClient):
|
|
|
105
105
|
_strict_response_validation=_strict_response_validation,
|
|
106
106
|
)
|
|
107
107
|
|
|
108
|
-
self.
|
|
108
|
+
self.limits = limits.LimitsResource(self)
|
|
109
109
|
self.ingest = ingest.IngestResource(self)
|
|
110
110
|
self.categories = categories.CategoriesResource(self)
|
|
111
111
|
self.experiences = experiences.ExperiencesResource(self)
|
|
@@ -221,7 +221,7 @@ class Payi(SyncAPIClient):
|
|
|
221
221
|
|
|
222
222
|
|
|
223
223
|
class AsyncPayi(AsyncAPIClient):
|
|
224
|
-
|
|
224
|
+
limits: limits.AsyncLimitsResource
|
|
225
225
|
ingest: ingest.AsyncIngestResource
|
|
226
226
|
categories: categories.AsyncCategoriesResource
|
|
227
227
|
experiences: experiences.AsyncExperiencesResource
|
|
@@ -285,7 +285,7 @@ class AsyncPayi(AsyncAPIClient):
|
|
|
285
285
|
_strict_response_validation=_strict_response_validation,
|
|
286
286
|
)
|
|
287
287
|
|
|
288
|
-
self.
|
|
288
|
+
self.limits = limits.AsyncLimitsResource(self)
|
|
289
289
|
self.ingest = ingest.AsyncIngestResource(self)
|
|
290
290
|
self.categories = categories.AsyncCategoriesResource(self)
|
|
291
291
|
self.experiences = experiences.AsyncExperiencesResource(self)
|
|
@@ -402,7 +402,7 @@ class AsyncPayi(AsyncAPIClient):
|
|
|
402
402
|
|
|
403
403
|
class PayiWithRawResponse:
|
|
404
404
|
def __init__(self, client: Payi) -> None:
|
|
405
|
-
self.
|
|
405
|
+
self.limits = limits.LimitsResourceWithRawResponse(client.limits)
|
|
406
406
|
self.ingest = ingest.IngestResourceWithRawResponse(client.ingest)
|
|
407
407
|
self.categories = categories.CategoriesResourceWithRawResponse(client.categories)
|
|
408
408
|
self.experiences = experiences.ExperiencesResourceWithRawResponse(client.experiences)
|
|
@@ -413,7 +413,7 @@ class PayiWithRawResponse:
|
|
|
413
413
|
|
|
414
414
|
class AsyncPayiWithRawResponse:
|
|
415
415
|
def __init__(self, client: AsyncPayi) -> None:
|
|
416
|
-
self.
|
|
416
|
+
self.limits = limits.AsyncLimitsResourceWithRawResponse(client.limits)
|
|
417
417
|
self.ingest = ingest.AsyncIngestResourceWithRawResponse(client.ingest)
|
|
418
418
|
self.categories = categories.AsyncCategoriesResourceWithRawResponse(client.categories)
|
|
419
419
|
self.experiences = experiences.AsyncExperiencesResourceWithRawResponse(client.experiences)
|
|
@@ -424,7 +424,7 @@ class AsyncPayiWithRawResponse:
|
|
|
424
424
|
|
|
425
425
|
class PayiWithStreamedResponse:
|
|
426
426
|
def __init__(self, client: Payi) -> None:
|
|
427
|
-
self.
|
|
427
|
+
self.limits = limits.LimitsResourceWithStreamingResponse(client.limits)
|
|
428
428
|
self.ingest = ingest.IngestResourceWithStreamingResponse(client.ingest)
|
|
429
429
|
self.categories = categories.CategoriesResourceWithStreamingResponse(client.categories)
|
|
430
430
|
self.experiences = experiences.ExperiencesResourceWithStreamingResponse(client.experiences)
|
|
@@ -435,7 +435,7 @@ class PayiWithStreamedResponse:
|
|
|
435
435
|
|
|
436
436
|
class AsyncPayiWithStreamedResponse:
|
|
437
437
|
def __init__(self, client: AsyncPayi) -> None:
|
|
438
|
-
self.
|
|
438
|
+
self.limits = limits.AsyncLimitsResourceWithStreamingResponse(client.limits)
|
|
439
439
|
self.ingest = ingest.AsyncIngestResourceWithStreamingResponse(client.ingest)
|
|
440
440
|
self.categories = categories.AsyncCategoriesResourceWithStreamingResponse(client.categories)
|
|
441
441
|
self.experiences = experiences.AsyncExperiencesResourceWithStreamingResponse(client.experiences)
|
payi/_version.py
CHANGED
payi/lib/helpers.py
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
from typing import Dict, List, Union
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
def
|
|
6
|
-
if not isinstance(
|
|
7
|
-
raise TypeError("
|
|
5
|
+
def create_limit_header_from_ids(limit_ids: List[str]) -> Dict[str, str]:
|
|
6
|
+
if not isinstance(budglimit_idset_ids, list): # type: ignore
|
|
7
|
+
raise TypeError("limit_ids must be a list")
|
|
8
8
|
|
|
9
|
-
valid_ids = [id.strip() for id in
|
|
9
|
+
valid_ids = [id.strip() for id in limit_ids if isinstance(id, str) and id.strip()] # type: ignore
|
|
10
10
|
|
|
11
|
-
return {"xProxy-
|
|
11
|
+
return {"xProxy-Limit-IDs": ",".join(valid_ids)} if valid_ids else {}
|
|
12
12
|
|
|
13
13
|
def create_request_header_from_tags(request_tags: List[str]) -> Dict[str, str]:
|
|
14
14
|
if not isinstance(request_tags, list): # type: ignore
|
|
@@ -19,15 +19,15 @@ def create_request_header_from_tags(request_tags: List[str]) -> Dict[str, str]:
|
|
|
19
19
|
return {"xProxy-Request-Tags": ",".join(valid_tags)} if valid_tags else {}
|
|
20
20
|
|
|
21
21
|
def create_headers(
|
|
22
|
-
|
|
22
|
+
limit_ids: Union[List[str], None] = None,
|
|
23
23
|
request_tags: Union[List[str], None] = None,
|
|
24
24
|
user_id: Union[str, None] = None,
|
|
25
25
|
experience_id: Union[str, None] = None,
|
|
26
26
|
) -> Dict[str, str]:
|
|
27
27
|
headers: Dict[str, str] = {}
|
|
28
28
|
|
|
29
|
-
if
|
|
30
|
-
headers.update(
|
|
29
|
+
if limit_ids:
|
|
30
|
+
headers.update(create_limit_header_from_ids(limit_ids))
|
|
31
31
|
if request_tags:
|
|
32
32
|
headers.update(create_request_header_from_tags(request_tags))
|
|
33
33
|
if user_id:
|
payi/resources/__init__.py
CHANGED
|
@@ -8,13 +8,13 @@ from .ingest import (
|
|
|
8
8
|
IngestResourceWithStreamingResponse,
|
|
9
9
|
AsyncIngestResourceWithStreamingResponse,
|
|
10
10
|
)
|
|
11
|
-
from .
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
from .limits import (
|
|
12
|
+
LimitsResource,
|
|
13
|
+
AsyncLimitsResource,
|
|
14
|
+
LimitsResourceWithRawResponse,
|
|
15
|
+
AsyncLimitsResourceWithRawResponse,
|
|
16
|
+
LimitsResourceWithStreamingResponse,
|
|
17
|
+
AsyncLimitsResourceWithStreamingResponse,
|
|
18
18
|
)
|
|
19
19
|
from .requests import (
|
|
20
20
|
RequestsResource,
|
|
@@ -58,12 +58,12 @@ from .price_modifiers import (
|
|
|
58
58
|
)
|
|
59
59
|
|
|
60
60
|
__all__ = [
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
61
|
+
"LimitsResource",
|
|
62
|
+
"AsyncLimitsResource",
|
|
63
|
+
"LimitsResourceWithRawResponse",
|
|
64
|
+
"AsyncLimitsResourceWithRawResponse",
|
|
65
|
+
"LimitsResourceWithStreamingResponse",
|
|
66
|
+
"AsyncLimitsResourceWithStreamingResponse",
|
|
67
67
|
"IngestResource",
|
|
68
68
|
"AsyncIngestResource",
|
|
69
69
|
"IngestResourceWithRawResponse",
|
payi/resources/billing_models.py
CHANGED
|
@@ -52,7 +52,7 @@ class BillingModelsResource(SyncAPIResource):
|
|
|
52
52
|
self,
|
|
53
53
|
*,
|
|
54
54
|
name: str,
|
|
55
|
-
type: Literal["
|
|
55
|
+
type: Literal["costplus", "subscription", "hybrid"],
|
|
56
56
|
default_price_modifier: Optional[float] | NotGiven = NOT_GIVEN,
|
|
57
57
|
prepaid_amount: Optional[float] | NotGiven = NOT_GIVEN,
|
|
58
58
|
prepaid_max: Optional[float] | NotGiven = NOT_GIVEN,
|
|
@@ -128,7 +128,7 @@ class BillingModelsResource(SyncAPIResource):
|
|
|
128
128
|
self,
|
|
129
129
|
billing_model_id: str,
|
|
130
130
|
*,
|
|
131
|
-
type: Literal["
|
|
131
|
+
type: Literal["costplus", "subscription", "hybrid"],
|
|
132
132
|
default_price_modifier: Optional[float] | NotGiven = NOT_GIVEN,
|
|
133
133
|
name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
134
134
|
prepaid_amount: Optional[float] | NotGiven = NOT_GIVEN,
|
|
@@ -246,7 +246,7 @@ class AsyncBillingModelsResource(AsyncAPIResource):
|
|
|
246
246
|
self,
|
|
247
247
|
*,
|
|
248
248
|
name: str,
|
|
249
|
-
type: Literal["
|
|
249
|
+
type: Literal["costplus", "subscription", "hybrid"],
|
|
250
250
|
default_price_modifier: Optional[float] | NotGiven = NOT_GIVEN,
|
|
251
251
|
prepaid_amount: Optional[float] | NotGiven = NOT_GIVEN,
|
|
252
252
|
prepaid_max: Optional[float] | NotGiven = NOT_GIVEN,
|
|
@@ -322,7 +322,7 @@ class AsyncBillingModelsResource(AsyncAPIResource):
|
|
|
322
322
|
self,
|
|
323
323
|
billing_model_id: str,
|
|
324
324
|
*,
|
|
325
|
-
type: Literal["
|
|
325
|
+
type: Literal["costplus", "subscription", "hybrid"],
|
|
326
326
|
default_price_modifier: Optional[float] | NotGiven = NOT_GIVEN,
|
|
327
327
|
name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
328
328
|
prepaid_amount: Optional[float] | NotGiven = NOT_GIVEN,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import Dict
|
|
5
|
+
from typing import Dict
|
|
6
6
|
|
|
7
7
|
import httpx
|
|
8
8
|
|
|
@@ -50,7 +50,7 @@ class PropertiesResource(SyncAPIResource):
|
|
|
50
50
|
self,
|
|
51
51
|
experience_id: str,
|
|
52
52
|
*,
|
|
53
|
-
properties:
|
|
53
|
+
properties: Dict[str, str],
|
|
54
54
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
55
55
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
56
56
|
extra_headers: Headers | None = None,
|
|
@@ -106,7 +106,7 @@ class AsyncPropertiesResource(AsyncAPIResource):
|
|
|
106
106
|
self,
|
|
107
107
|
experience_id: str,
|
|
108
108
|
*,
|
|
109
|
-
properties:
|
|
109
|
+
properties: Dict[str, str],
|
|
110
110
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
111
111
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
112
112
|
extra_headers: Headers | None = None,
|
payi/resources/ingest.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import Dict, Union, Iterable, Optional
|
|
5
|
+
from typing import Dict, List, Union, Iterable, Optional
|
|
6
6
|
from datetime import datetime
|
|
7
7
|
|
|
8
8
|
import httpx
|
|
@@ -93,10 +93,17 @@ class IngestResource(SyncAPIResource):
|
|
|
93
93
|
units: Dict[str, ingest_units_params.Units],
|
|
94
94
|
end_to_end_latency_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
95
95
|
event_timestamp: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
|
|
96
|
+
experience_properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
96
97
|
http_status_code: Optional[int] | NotGiven = NOT_GIVEN,
|
|
98
|
+
properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
99
|
+
provider_prompt: Optional[str] | NotGiven = NOT_GIVEN,
|
|
100
|
+
provider_request_headers: Optional[Dict[str, List[str]]] | NotGiven = NOT_GIVEN,
|
|
101
|
+
provider_response: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
102
|
+
provider_response_headers: Optional[Dict[str, List[str]]] | NotGiven = NOT_GIVEN,
|
|
103
|
+
provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
|
|
97
104
|
provisioned_resource_name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
98
105
|
time_to_first_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
99
|
-
|
|
106
|
+
limit_ids: Union[list[str], None] | NotGiven = NOT_GIVEN,
|
|
100
107
|
request_tags: Union[list[str], None] | NotGiven = NOT_GIVEN,
|
|
101
108
|
experience_id: Union[str, None] | NotGiven = NOT_GIVEN,
|
|
102
109
|
experience_name: Union[str, None] | NotGiven = NOT_GIVEN,
|
|
@@ -122,7 +129,7 @@ class IngestResource(SyncAPIResource):
|
|
|
122
129
|
|
|
123
130
|
event_timestamp: (str, datetime, None): The timestamp of the event. Defaults to None.
|
|
124
131
|
|
|
125
|
-
|
|
132
|
+
limit_ids (list[str], optional): The limit IDs to associate with the request. Defaults to None.
|
|
126
133
|
|
|
127
134
|
request_tags (list[str], optional): The request tags to associate with the request. Defaults to None.
|
|
128
135
|
|
|
@@ -143,13 +150,13 @@ class IngestResource(SyncAPIResource):
|
|
|
143
150
|
valid_ids_str: str | NotGiven = NOT_GIVEN
|
|
144
151
|
valid_tags_str: str | NotGiven = NOT_GIVEN
|
|
145
152
|
|
|
146
|
-
if
|
|
153
|
+
if limit_ids is None or isinstance(limit_ids, NotGiven):
|
|
147
154
|
valid_ids_str = NOT_GIVEN
|
|
148
|
-
elif not isinstance(
|
|
149
|
-
raise TypeError("
|
|
155
|
+
elif not isinstance(limit_ids, list): # type: ignore
|
|
156
|
+
raise TypeError("limit_ids must be a list")
|
|
150
157
|
else:
|
|
151
|
-
# Proceed with the list comprehension if
|
|
152
|
-
valid_ids = [id.strip() for id in
|
|
158
|
+
# Proceed with the list comprehension if limit_ids is not NotGiven
|
|
159
|
+
valid_ids = [id.strip() for id in limit_ids if id.strip()]
|
|
153
160
|
valid_ids_str = ",".join(valid_ids) if valid_ids else NOT_GIVEN
|
|
154
161
|
|
|
155
162
|
if request_tags is None or isinstance(request_tags, NotGiven):
|
|
@@ -157,7 +164,7 @@ class IngestResource(SyncAPIResource):
|
|
|
157
164
|
elif not isinstance(request_tags, list): # type: ignore
|
|
158
165
|
raise TypeError("request_tags must be a list")
|
|
159
166
|
else:
|
|
160
|
-
# Proceed with the list comprehension if
|
|
167
|
+
# Proceed with the list comprehension if request_tags is not NotGiven
|
|
161
168
|
valid_tags = [tag.strip() for tag in request_tags if tag.strip()]
|
|
162
169
|
valid_tags_str = ",".join(valid_tags) if valid_tags else NOT_GIVEN
|
|
163
170
|
|
|
@@ -173,7 +180,7 @@ class IngestResource(SyncAPIResource):
|
|
|
173
180
|
extra_headers = {
|
|
174
181
|
**strip_not_given(
|
|
175
182
|
{
|
|
176
|
-
"xProxy-
|
|
183
|
+
"xProxy-Limit-IDs": valid_ids_str,
|
|
177
184
|
"xProxy-Request-Tags": valid_tags_str,
|
|
178
185
|
"xProxy-Experience-Id": experience_id,
|
|
179
186
|
"xProxy-Experience-Name": experience_name,
|
|
@@ -191,7 +198,14 @@ class IngestResource(SyncAPIResource):
|
|
|
191
198
|
"units": units,
|
|
192
199
|
"end_to_end_latency_ms": end_to_end_latency_ms,
|
|
193
200
|
"event_timestamp": event_timestamp,
|
|
201
|
+
"experience_properties": experience_properties,
|
|
194
202
|
"http_status_code": http_status_code,
|
|
203
|
+
"properties": properties,
|
|
204
|
+
"provider_prompt": provider_prompt,
|
|
205
|
+
"provider_request_headers": provider_request_headers,
|
|
206
|
+
"provider_response": provider_response,
|
|
207
|
+
"provider_response_headers": provider_response_headers,
|
|
208
|
+
"provider_uri": provider_uri,
|
|
195
209
|
"provisioned_resource_name": provisioned_resource_name,
|
|
196
210
|
"time_to_first_token_ms": time_to_first_token_ms,
|
|
197
211
|
},
|
|
@@ -266,10 +280,17 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
266
280
|
units: Dict[str, ingest_units_params.Units],
|
|
267
281
|
end_to_end_latency_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
268
282
|
event_timestamp: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
|
|
283
|
+
experience_properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
269
284
|
http_status_code: Optional[int] | NotGiven = NOT_GIVEN,
|
|
285
|
+
properties: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
286
|
+
provider_prompt: Optional[str] | NotGiven = NOT_GIVEN,
|
|
287
|
+
provider_request_headers: Optional[Dict[str, List[str]]] | NotGiven = NOT_GIVEN,
|
|
288
|
+
provider_response: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
289
|
+
provider_response_headers: Optional[Dict[str, List[str]]] | NotGiven = NOT_GIVEN,
|
|
290
|
+
provider_uri: Optional[str] | NotGiven = NOT_GIVEN,
|
|
270
291
|
provisioned_resource_name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
271
292
|
time_to_first_token_ms: Optional[int] | NotGiven = NOT_GIVEN,
|
|
272
|
-
|
|
293
|
+
limit_ids: Union[list[str], None] | NotGiven = NOT_GIVEN,
|
|
273
294
|
request_tags: Union[list[str], None] | NotGiven = NOT_GIVEN,
|
|
274
295
|
experience_name: Union[str, None] | NotGiven = NOT_GIVEN,
|
|
275
296
|
experience_id: Union[str, None] | NotGiven = NOT_GIVEN,
|
|
@@ -294,7 +315,7 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
294
315
|
|
|
295
316
|
event_timestamp: (datetime, None): The timestamp of the event. Defaults to None.
|
|
296
317
|
|
|
297
|
-
|
|
318
|
+
limit_ids (list[str], optional): The limit IDs to associate with the request. Defaults to None.
|
|
298
319
|
|
|
299
320
|
request_tags (list[str], optional): The request tags to associate with the request. Defaults to None.
|
|
300
321
|
|
|
@@ -315,13 +336,13 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
315
336
|
valid_ids_str: str | NotGiven = NOT_GIVEN
|
|
316
337
|
valid_tags_str: str | NotGiven = NOT_GIVEN
|
|
317
338
|
|
|
318
|
-
if
|
|
339
|
+
if limit_ids is None or isinstance(limit_ids, NotGiven):
|
|
319
340
|
valid_ids_str = NOT_GIVEN
|
|
320
|
-
elif not isinstance(
|
|
321
|
-
raise TypeError("
|
|
341
|
+
elif not isinstance(limit_ids, list): # type: ignore
|
|
342
|
+
raise TypeError("limit_ids must be a list")
|
|
322
343
|
else:
|
|
323
|
-
# Proceed with the list comprehension if
|
|
324
|
-
valid_ids = [id.strip() for id in
|
|
344
|
+
# Proceed with the list comprehension if limit_ids is not NotGiven
|
|
345
|
+
valid_ids = [id.strip() for id in limit_ids if id.strip()]
|
|
325
346
|
valid_ids_str = ",".join(valid_ids) if valid_ids else NOT_GIVEN
|
|
326
347
|
|
|
327
348
|
if request_tags is None or isinstance(request_tags, NotGiven):
|
|
@@ -329,7 +350,7 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
329
350
|
elif not isinstance(request_tags, list): # type: ignore
|
|
330
351
|
raise TypeError("request_tags must be a list")
|
|
331
352
|
else:
|
|
332
|
-
# Proceed with the list comprehension if
|
|
353
|
+
# Proceed with the list comprehension if request_tags is not NotGiven
|
|
333
354
|
valid_tags = [tag.strip() for tag in request_tags if tag.strip()]
|
|
334
355
|
valid_tags_str = ",".join(valid_tags) if valid_tags else NOT_GIVEN
|
|
335
356
|
|
|
@@ -345,7 +366,7 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
345
366
|
extra_headers = {
|
|
346
367
|
**strip_not_given(
|
|
347
368
|
{
|
|
348
|
-
"xProxy-
|
|
369
|
+
"xProxy-Limit-IDs": valid_ids_str,
|
|
349
370
|
"xProxy-Request-Tags": valid_tags_str,
|
|
350
371
|
"xProxy-Experience-Name": experience_name,
|
|
351
372
|
"xProxy-Experience-Id": experience_id,
|
|
@@ -363,7 +384,14 @@ class AsyncIngestResource(AsyncAPIResource):
|
|
|
363
384
|
"units": units,
|
|
364
385
|
"end_to_end_latency_ms": end_to_end_latency_ms,
|
|
365
386
|
"event_timestamp": event_timestamp,
|
|
387
|
+
"experience_properties": experience_properties,
|
|
366
388
|
"http_status_code": http_status_code,
|
|
389
|
+
"properties": properties,
|
|
390
|
+
"provider_prompt": provider_prompt,
|
|
391
|
+
"provider_request_headers": provider_request_headers,
|
|
392
|
+
"provider_response": provider_response,
|
|
393
|
+
"provider_response_headers": provider_response_headers,
|
|
394
|
+
"provider_uri": provider_uri,
|
|
367
395
|
"provisioned_resource_name": provisioned_resource_name,
|
|
368
396
|
"time_to_first_token_ms": time_to_first_token_ms,
|
|
369
397
|
},
|
|
@@ -8,13 +8,13 @@ from .tags import (
|
|
|
8
8
|
TagsResourceWithStreamingResponse,
|
|
9
9
|
AsyncTagsResourceWithStreamingResponse,
|
|
10
10
|
)
|
|
11
|
-
from .
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
from .limits import (
|
|
12
|
+
LimitsResource,
|
|
13
|
+
AsyncLimitsResource,
|
|
14
|
+
LimitsResourceWithRawResponse,
|
|
15
|
+
AsyncLimitsResourceWithRawResponse,
|
|
16
|
+
LimitsResourceWithStreamingResponse,
|
|
17
|
+
AsyncLimitsResourceWithStreamingResponse,
|
|
18
18
|
)
|
|
19
19
|
|
|
20
20
|
__all__ = [
|
|
@@ -24,10 +24,10 @@ __all__ = [
|
|
|
24
24
|
"AsyncTagsResourceWithRawResponse",
|
|
25
25
|
"TagsResourceWithStreamingResponse",
|
|
26
26
|
"AsyncTagsResourceWithStreamingResponse",
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
27
|
+
"LimitsResource",
|
|
28
|
+
"AsyncLimitsResource",
|
|
29
|
+
"LimitsResourceWithRawResponse",
|
|
30
|
+
"AsyncLimitsResourceWithRawResponse",
|
|
31
|
+
"LimitsResourceWithStreamingResponse",
|
|
32
|
+
"AsyncLimitsResourceWithStreamingResponse",
|
|
33
33
|
]
|