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.

Files changed (45) hide show
  1. payi/_client.py +9 -9
  2. payi/_version.py +1 -1
  3. payi/lib/helpers.py +8 -8
  4. payi/resources/__init__.py +13 -13
  5. payi/resources/billing_models.py +4 -4
  6. payi/resources/experiences/properties.py +3 -3
  7. payi/resources/ingest.py +47 -19
  8. payi/resources/{budgets → limits}/__init__.py +13 -13
  9. payi/resources/{budgets/budgets.py → limits/limits.py} +213 -196
  10. payi/resources/{budgets → limits}/tags.py +68 -68
  11. payi/resources/requests/properties.py +3 -3
  12. payi/types/__init__.py +8 -6
  13. payi/types/billing_model.py +1 -1
  14. payi/types/billing_model_create_params.py +1 -1
  15. payi/types/billing_model_update_params.py +1 -1
  16. payi/types/category_resource_response.py +4 -0
  17. payi/types/experiences/property_create_params.py +2 -2
  18. payi/types/ingest_event_param.py +16 -2
  19. payi/types/ingest_response.py +7 -7
  20. payi/types/ingest_units_params.py +16 -2
  21. payi/types/{budget_create_params.py → limit_create_params.py} +7 -9
  22. payi/types/limit_history_response.py +34 -0
  23. payi/types/{budget_list_params.py → limit_list_params.py} +3 -3
  24. payi/types/limit_reset_params.py +16 -0
  25. payi/types/{budget_response.py → limit_response.py} +11 -13
  26. payi/types/{budget_update_params.py → limit_update_params.py} +3 -3
  27. payi/types/{budgets → limits}/__init__.py +1 -1
  28. payi/types/{budgets/budget_tags.py → limits/limit_tags.py} +2 -2
  29. payi/types/{budgets → limits}/tag_create_params.py +1 -1
  30. payi/types/{budgets → limits}/tag_create_response.py +2 -2
  31. payi/types/{budgets → limits}/tag_delete_response.py +2 -2
  32. payi/types/{budgets → limits}/tag_list_response.py +2 -2
  33. payi/types/{budgets → limits}/tag_remove_params.py +1 -1
  34. payi/types/{budgets → limits}/tag_remove_response.py +2 -2
  35. payi/types/{budgets → limits}/tag_update_params.py +1 -1
  36. payi/types/{budgets → limits}/tag_update_response.py +2 -2
  37. payi/types/{paged_budget_list.py → paged_limit_list.py} +9 -11
  38. payi/types/requests/property_create_params.py +2 -2
  39. payi/types/shared/__init__.py +3 -0
  40. payi/types/shared/evaluation_response.py +11 -0
  41. {payi-0.1.0a33.dist-info → payi-0.1.0a34.dist-info}/METADATA +19 -19
  42. {payi-0.1.0a33.dist-info → payi-0.1.0a34.dist-info}/RECORD +44 -41
  43. {payi-0.1.0a33.dist-info → payi-0.1.0a34.dist-info}/licenses/LICENSE +1 -1
  44. payi/types/budget_history_response.py +0 -38
  45. {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.budgets import budgets
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
- budgets: budgets.BudgetsResource
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.budgets = budgets.BudgetsResource(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
- budgets: budgets.AsyncBudgetsResource
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.budgets = budgets.AsyncBudgetsResource(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.budgets = budgets.BudgetsResourceWithRawResponse(client.budgets)
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.budgets = budgets.AsyncBudgetsResourceWithRawResponse(client.budgets)
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.budgets = budgets.BudgetsResourceWithStreamingResponse(client.budgets)
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.budgets = budgets.AsyncBudgetsResourceWithStreamingResponse(client.budgets)
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
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "payi"
4
- __version__ = "0.1.0-alpha.33" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.34" # x-release-please-version
payi/lib/helpers.py CHANGED
@@ -2,13 +2,13 @@
2
2
  from typing import Dict, List, Union
3
3
 
4
4
 
5
- def create_budget_header_from_ids(budget_ids: List[str]) -> Dict[str, str]:
6
- if not isinstance(budget_ids, list): # type: ignore
7
- raise TypeError("budget_ids must be a list")
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 budget_ids if isinstance(id, str) and id.strip()] # type: ignore
9
+ valid_ids = [id.strip() for id in limit_ids if isinstance(id, str) and id.strip()] # type: ignore
10
10
 
11
- return {"xProxy-Budget-IDs": ",".join(valid_ids)} if valid_ids else {}
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
- budget_ids: Union[List[str], None] = None,
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 budget_ids:
30
- headers.update(create_budget_header_from_ids(budget_ids))
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:
@@ -8,13 +8,13 @@ from .ingest import (
8
8
  IngestResourceWithStreamingResponse,
9
9
  AsyncIngestResourceWithStreamingResponse,
10
10
  )
11
- from .budgets import (
12
- BudgetsResource,
13
- AsyncBudgetsResource,
14
- BudgetsResourceWithRawResponse,
15
- AsyncBudgetsResourceWithRawResponse,
16
- BudgetsResourceWithStreamingResponse,
17
- AsyncBudgetsResourceWithStreamingResponse,
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
- "BudgetsResource",
62
- "AsyncBudgetsResource",
63
- "BudgetsResourceWithRawResponse",
64
- "AsyncBudgetsResourceWithRawResponse",
65
- "BudgetsResourceWithStreamingResponse",
66
- "AsyncBudgetsResourceWithStreamingResponse",
61
+ "LimitsResource",
62
+ "AsyncLimitsResource",
63
+ "LimitsResourceWithRawResponse",
64
+ "AsyncLimitsResourceWithRawResponse",
65
+ "LimitsResourceWithStreamingResponse",
66
+ "AsyncLimitsResourceWithStreamingResponse",
67
67
  "IngestResource",
68
68
  "AsyncIngestResource",
69
69
  "IngestResourceWithRawResponse",
@@ -52,7 +52,7 @@ class BillingModelsResource(SyncAPIResource):
52
52
  self,
53
53
  *,
54
54
  name: str,
55
- type: Literal["invalid", "costplus", "subscription", "hybrid"],
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["invalid", "costplus", "subscription", "hybrid"],
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["invalid", "costplus", "subscription", "hybrid"],
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["invalid", "costplus", "subscription", "hybrid"],
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, Optional
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: Optional[Dict[str, str]],
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: Optional[Dict[str, str]],
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
- budget_ids: Union[list[str], None] | NotGiven = NOT_GIVEN,
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
- budget_ids (list[str], optional): The budget IDs to associate with the request. Defaults to None.
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 budget_ids is None or isinstance(budget_ids, NotGiven):
153
+ if limit_ids is None or isinstance(limit_ids, NotGiven):
147
154
  valid_ids_str = NOT_GIVEN
148
- elif not isinstance(budget_ids, list): # type: ignore
149
- raise TypeError("budget_ids must be a list")
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 budget_ids is not NotGiven
152
- valid_ids = [id.strip() for id in budget_ids if id.strip()]
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 budget_ids is not NotGiven
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-Budget-IDs": valid_ids_str,
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
- budget_ids: Union[list[str], None] | NotGiven = NOT_GIVEN,
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
- budget_ids (list[str], optional): The budget IDs to associate with the request. Defaults to None.
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 budget_ids is None or isinstance(budget_ids, NotGiven):
339
+ if limit_ids is None or isinstance(limit_ids, NotGiven):
319
340
  valid_ids_str = NOT_GIVEN
320
- elif not isinstance(budget_ids, list): # type: ignore
321
- raise TypeError("budget_ids must be a list")
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 budget_ids is not NotGiven
324
- valid_ids = [id.strip() for id in budget_ids if id.strip()]
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 budget_ids is not NotGiven
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-Budget-IDs": valid_ids_str,
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 .budgets import (
12
- BudgetsResource,
13
- AsyncBudgetsResource,
14
- BudgetsResourceWithRawResponse,
15
- AsyncBudgetsResourceWithRawResponse,
16
- BudgetsResourceWithStreamingResponse,
17
- AsyncBudgetsResourceWithStreamingResponse,
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
- "BudgetsResource",
28
- "AsyncBudgetsResource",
29
- "BudgetsResourceWithRawResponse",
30
- "AsyncBudgetsResourceWithRawResponse",
31
- "BudgetsResourceWithStreamingResponse",
32
- "AsyncBudgetsResourceWithStreamingResponse",
27
+ "LimitsResource",
28
+ "AsyncLimitsResource",
29
+ "LimitsResourceWithRawResponse",
30
+ "AsyncLimitsResourceWithRawResponse",
31
+ "LimitsResourceWithStreamingResponse",
32
+ "AsyncLimitsResourceWithStreamingResponse",
33
33
  ]