payi 0.1.0a32__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 (49) hide show
  1. payi/_client.py +63 -68
  2. payi/_models.py +3 -0
  3. payi/_response.py +10 -10
  4. payi/_utils/__init__.py +1 -0
  5. payi/_utils/_typing.py +30 -1
  6. payi/_version.py +1 -1
  7. payi/lib/helpers.py +8 -8
  8. payi/resources/__init__.py +13 -13
  9. payi/resources/billing_models.py +4 -4
  10. payi/resources/experiences/properties.py +3 -3
  11. payi/resources/ingest.py +47 -19
  12. payi/resources/{budgets → limits}/__init__.py +13 -13
  13. payi/resources/{budgets/budgets.py → limits/limits.py} +213 -196
  14. payi/resources/{budgets → limits}/tags.py +68 -68
  15. payi/resources/requests/properties.py +3 -3
  16. payi/types/__init__.py +8 -6
  17. payi/types/billing_model.py +1 -1
  18. payi/types/billing_model_create_params.py +1 -1
  19. payi/types/billing_model_update_params.py +1 -1
  20. payi/types/category_resource_response.py +4 -0
  21. payi/types/experiences/property_create_params.py +2 -2
  22. payi/types/ingest_event_param.py +16 -2
  23. payi/types/ingest_response.py +7 -7
  24. payi/types/ingest_units_params.py +16 -2
  25. payi/types/{budget_create_params.py → limit_create_params.py} +7 -9
  26. payi/types/limit_history_response.py +34 -0
  27. payi/types/{budget_list_params.py → limit_list_params.py} +3 -3
  28. payi/types/limit_reset_params.py +16 -0
  29. payi/types/{budget_response.py → limit_response.py} +11 -13
  30. payi/types/{budget_update_params.py → limit_update_params.py} +3 -3
  31. payi/types/{budgets → limits}/__init__.py +1 -1
  32. payi/types/{budgets/budget_tags.py → limits/limit_tags.py} +2 -2
  33. payi/types/{budgets → limits}/tag_create_params.py +1 -1
  34. payi/types/{budgets → limits}/tag_create_response.py +2 -2
  35. payi/types/{budgets → limits}/tag_delete_response.py +2 -2
  36. payi/types/{budgets → limits}/tag_list_response.py +2 -2
  37. payi/types/{budgets → limits}/tag_remove_params.py +1 -1
  38. payi/types/{budgets → limits}/tag_remove_response.py +2 -2
  39. payi/types/{budgets → limits}/tag_update_params.py +1 -1
  40. payi/types/{budgets → limits}/tag_update_response.py +2 -2
  41. payi/types/{paged_budget_list.py → paged_limit_list.py} +9 -11
  42. payi/types/requests/property_create_params.py +2 -2
  43. payi/types/shared/__init__.py +3 -0
  44. payi/types/shared/evaluation_response.py +11 -0
  45. {payi-0.1.0a32.dist-info → payi-0.1.0a34.dist-info}/METADATA +33 -22
  46. {payi-0.1.0a32.dist-info → payi-0.1.0a34.dist-info}/RECORD +48 -45
  47. {payi-0.1.0a32.dist-info → payi-0.1.0a34.dist-info}/WHEEL +1 -1
  48. {payi-0.1.0a32.dist-info → payi-0.1.0a34.dist-info}/licenses/LICENSE +1 -1
  49. payi/types/budget_history_response.py +0 -38
@@ -4,11 +4,11 @@ from __future__ import annotations
4
4
 
5
5
  from typing_extensions import TypedDict
6
6
 
7
- __all__ = ["BudgetListParams"]
7
+ __all__ = ["LimitListParams"]
8
8
 
9
9
 
10
- class BudgetListParams(TypedDict, total=False):
11
- budget_name: str
10
+ class LimitListParams(TypedDict, total=False):
11
+ limit_name: str
12
12
 
13
13
  page_number: int
14
14
 
@@ -0,0 +1,16 @@
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 Union
6
+ from datetime import datetime
7
+ from typing_extensions import Annotated, TypedDict
8
+
9
+ from .._utils import PropertyInfo
10
+
11
+ __all__ = ["LimitResetParams"]
12
+
13
+
14
+ class LimitResetParams(TypedDict, total=False):
15
+ reset_date: Annotated[Union[str, datetime], PropertyInfo(alias="resetDate", format="iso8601")]
16
+ """Effective reset date"""
@@ -7,35 +7,33 @@ from typing_extensions import Literal
7
7
  from .._models import BaseModel
8
8
  from .total_cost_data import TotalCostData
9
9
 
10
- __all__ = ["BudgetResponse", "Budget"]
10
+ __all__ = ["LimitResponse", "Limit"]
11
11
 
12
12
 
13
- class Budget(BaseModel):
14
- base_cost_estimate: Literal["max"]
15
-
16
- budget_creation_timestamp: datetime
13
+ class Limit(BaseModel):
14
+ currency: Literal["usd"]
17
15
 
18
- budget_id: str
16
+ limit_creation_timestamp: datetime
19
17
 
20
- budget_name: str
18
+ limit_id: str
21
19
 
22
- budget_response_type: Literal["block", "allow"]
20
+ limit_name: str
23
21
 
24
- budget_update_timestamp: datetime
22
+ limit_type: Literal["block", "allow"]
25
23
 
26
- currency: Literal["usd"]
24
+ limit_update_timestamp: datetime
27
25
 
28
26
  max: float
29
27
 
30
28
  totals: TotalCostData
31
29
 
32
- budget_tags: Optional[List[str]] = None
30
+ limit_tags: Optional[List[str]] = None
33
31
 
34
32
  threshold: Optional[float] = None
35
33
 
36
34
 
37
- class BudgetResponse(BaseModel):
38
- budget: Budget
35
+ class LimitResponse(BaseModel):
36
+ limit: Limit
39
37
 
40
38
  request_id: str
41
39
 
@@ -5,10 +5,10 @@ from __future__ import annotations
5
5
  from typing import Optional
6
6
  from typing_extensions import TypedDict
7
7
 
8
- __all__ = ["BudgetUpdateParams"]
8
+ __all__ = ["LimitUpdateParams"]
9
9
 
10
10
 
11
- class BudgetUpdateParams(TypedDict, total=False):
12
- budget_name: Optional[str]
11
+ class LimitUpdateParams(TypedDict, total=False):
12
+ limit_name: Optional[str]
13
13
 
14
14
  max: Optional[float]
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from .budget_tags import BudgetTags as BudgetTags
5
+ from .limit_tags import LimitTags as LimitTags
6
6
  from .tag_create_params import TagCreateParams as TagCreateParams
7
7
  from .tag_list_response import TagListResponse as TagListResponse
8
8
  from .tag_remove_params import TagRemoveParams as TagRemoveParams
@@ -5,10 +5,10 @@ from datetime import datetime
5
5
 
6
6
  from ..._models import BaseModel
7
7
 
8
- __all__ = ["BudgetTags"]
8
+ __all__ = ["LimitTags"]
9
9
 
10
10
 
11
- class BudgetTags(BaseModel):
11
+ class LimitTags(BaseModel):
12
12
  created_on: Optional[datetime] = None
13
13
 
14
14
  tag_id: Optional[int] = None
@@ -9,4 +9,4 @@ __all__ = ["TagCreateParams"]
9
9
 
10
10
 
11
11
  class TagCreateParams(TypedDict, total=False):
12
- budget_tags: Required[List[str]]
12
+ limit_tags: Required[List[str]]
@@ -3,8 +3,8 @@
3
3
  from typing import List
4
4
  from typing_extensions import TypeAlias
5
5
 
6
- from .budget_tags import BudgetTags
6
+ from .limit_tags import LimitTags
7
7
 
8
8
  __all__ = ["TagCreateResponse"]
9
9
 
10
- TagCreateResponse: TypeAlias = List[BudgetTags]
10
+ TagCreateResponse: TypeAlias = List[LimitTags]
@@ -3,8 +3,8 @@
3
3
  from typing import List
4
4
  from typing_extensions import TypeAlias
5
5
 
6
- from .budget_tags import BudgetTags
6
+ from .limit_tags import LimitTags
7
7
 
8
8
  __all__ = ["TagDeleteResponse"]
9
9
 
10
- TagDeleteResponse: TypeAlias = List[BudgetTags]
10
+ TagDeleteResponse: TypeAlias = List[LimitTags]
@@ -3,8 +3,8 @@
3
3
  from typing import List
4
4
  from typing_extensions import TypeAlias
5
5
 
6
- from .budget_tags import BudgetTags
6
+ from .limit_tags import LimitTags
7
7
 
8
8
  __all__ = ["TagListResponse"]
9
9
 
10
- TagListResponse: TypeAlias = List[BudgetTags]
10
+ TagListResponse: TypeAlias = List[LimitTags]
@@ -9,4 +9,4 @@ __all__ = ["TagRemoveParams"]
9
9
 
10
10
 
11
11
  class TagRemoveParams(TypedDict, total=False):
12
- budget_tags: Required[List[str]]
12
+ limit_tags: Required[List[str]]
@@ -3,8 +3,8 @@
3
3
  from typing import List
4
4
  from typing_extensions import TypeAlias
5
5
 
6
- from .budget_tags import BudgetTags
6
+ from .limit_tags import LimitTags
7
7
 
8
8
  __all__ = ["TagRemoveResponse"]
9
9
 
10
- TagRemoveResponse: TypeAlias = List[BudgetTags]
10
+ TagRemoveResponse: TypeAlias = List[LimitTags]
@@ -9,4 +9,4 @@ __all__ = ["TagUpdateParams"]
9
9
 
10
10
 
11
11
  class TagUpdateParams(TypedDict, total=False):
12
- budget_tags: Required[List[str]]
12
+ limit_tags: Required[List[str]]
@@ -3,8 +3,8 @@
3
3
  from typing import List
4
4
  from typing_extensions import TypeAlias
5
5
 
6
- from .budget_tags import BudgetTags
6
+ from .limit_tags import LimitTags
7
7
 
8
8
  __all__ = ["TagUpdateResponse"]
9
9
 
10
- TagUpdateResponse: TypeAlias = List[BudgetTags]
10
+ TagUpdateResponse: TypeAlias = List[LimitTags]
@@ -9,34 +9,32 @@ from pydantic import Field as FieldInfo
9
9
  from .._models import BaseModel
10
10
  from .total_cost_data import TotalCostData
11
11
 
12
- __all__ = ["PagedBudgetList", "Item"]
12
+ __all__ = ["PagedLimitList", "Item"]
13
13
 
14
14
 
15
15
  class Item(BaseModel):
16
- base_cost_estimate: Literal["max"]
17
-
18
- budget_creation_timestamp: datetime
16
+ currency: Literal["usd"]
19
17
 
20
- budget_id: str
18
+ limit_creation_timestamp: datetime
21
19
 
22
- budget_name: str
20
+ limit_id: str
23
21
 
24
- budget_response_type: Literal["block", "allow"]
22
+ limit_name: str
25
23
 
26
- budget_update_timestamp: datetime
24
+ limit_type: Literal["block", "allow"]
27
25
 
28
- currency: Literal["usd"]
26
+ limit_update_timestamp: datetime
29
27
 
30
28
  max: float
31
29
 
32
30
  totals: TotalCostData
33
31
 
34
- budget_tags: Optional[List[str]] = None
32
+ limit_tags: Optional[List[str]] = None
35
33
 
36
34
  threshold: Optional[float] = None
37
35
 
38
36
 
39
- class PagedBudgetList(BaseModel):
37
+ class PagedLimitList(BaseModel):
40
38
  current_page: Optional[int] = FieldInfo(alias="currentPage", default=None)
41
39
 
42
40
  has_next_page: Optional[bool] = FieldInfo(alias="hasNextPage", default=None)
@@ -2,11 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Dict, Optional
5
+ from typing import Dict
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  __all__ = ["PropertyCreateParams"]
9
9
 
10
10
 
11
11
  class PropertyCreateParams(TypedDict, total=False):
12
- properties: Required[Optional[Dict[str, str]]]
12
+ properties: Required[Dict[str, str]]
@@ -0,0 +1,3 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .evaluation_response import EvaluationResponse as EvaluationResponse
@@ -0,0 +1,11 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["EvaluationResponse"]
8
+
9
+
10
+ class EvaluationResponse(BaseModel):
11
+ request_id: str
@@ -1,11 +1,12 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: payi
3
- Version: 0.1.0a32
3
+ Version: 0.1.0a34
4
4
  Summary: The official Python library for the payi API
5
5
  Project-URL: Homepage, https://github.com/Pay-i/pay-i-python
6
6
  Project-URL: Repository, https://github.com/Pay-i/pay-i-python
7
7
  Author-email: Payi <support@payi.com>
8
- License: Apache-2.0
8
+ License-Expression: Apache-2.0
9
+ License-File: LICENSE
9
10
  Classifier: Intended Audience :: Developers
10
11
  Classifier: License :: OSI Approved :: Apache Software License
11
12
  Classifier: Operating System :: MacOS
@@ -26,7 +27,7 @@ Requires-Dist: distro<2,>=1.7.0
26
27
  Requires-Dist: httpx<1,>=0.23.0
27
28
  Requires-Dist: pydantic<3,>=1.9.0
28
29
  Requires-Dist: sniffio
29
- Requires-Dist: typing-extensions<5,>=4.7
30
+ Requires-Dist: typing-extensions<5,>=4.10
30
31
  Description-Content-Type: text/markdown
31
32
 
32
33
  # Payi Python API library
@@ -62,11 +63,11 @@ client = Payi(
62
63
  api_key=os.environ.get("PAYI_API_KEY"), # This is the default and can be omitted
63
64
  )
64
65
 
65
- budget_response = client.budgets.create(
66
- budget_name="x",
66
+ limit_response = client.limits.create(
67
+ limit_name="x",
67
68
  max=0,
68
69
  )
69
- print(budget_response.request_id)
70
+ print(limit_response.request_id)
70
71
  ```
71
72
 
72
73
  While you can provide an `api_key` keyword argument,
@@ -89,11 +90,11 @@ client = AsyncPayi(
89
90
 
90
91
 
91
92
  async def main() -> None:
92
- budget_response = await client.budgets.create(
93
- budget_name="x",
93
+ limit_response = await client.limits.create(
94
+ limit_name="x",
94
95
  max=0,
95
96
  )
96
- print(budget_response.request_id)
97
+ print(limit_response.request_id)
97
98
 
98
99
 
99
100
  asyncio.run(main())
@@ -126,8 +127,8 @@ from payi import Payi
126
127
  client = Payi()
127
128
 
128
129
  try:
129
- client.budgets.create(
130
- budget_name="x",
130
+ client.limits.create(
131
+ limit_name="x",
131
132
  max=0,
132
133
  )
133
134
  except payi.APIConnectionError as e:
@@ -172,8 +173,8 @@ client = Payi(
172
173
  )
173
174
 
174
175
  # Or, configure per-request:
175
- client.with_options(max_retries=5).budgets.create(
176
- budget_name="x",
176
+ client.with_options(max_retries=5).limits.create(
177
+ limit_name="x",
177
178
  max=0,
178
179
  )
179
180
  ```
@@ -198,8 +199,8 @@ client = Payi(
198
199
  )
199
200
 
200
201
  # Override per-request:
201
- client.with_options(timeout=5.0).budgets.create(
202
- budget_name="x",
202
+ client.with_options(timeout=5.0).limits.create(
203
+ limit_name="x",
203
204
  max=0,
204
205
  )
205
206
  ```
@@ -242,14 +243,14 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
242
243
  from payi import Payi
243
244
 
244
245
  client = Payi()
245
- response = client.budgets.with_raw_response.create(
246
- budget_name="x",
246
+ response = client.limits.with_raw_response.create(
247
+ limit_name="x",
247
248
  max=0,
248
249
  )
249
250
  print(response.headers.get('X-My-Header'))
250
251
 
251
- budget = response.parse() # get the object that `budgets.create()` would have returned
252
- print(budget.request_id)
252
+ limit = response.parse() # get the object that `limits.create()` would have returned
253
+ print(limit.request_id)
253
254
  ```
254
255
 
255
256
  These methods return an [`APIResponse`](https://github.com/Pay-i/pay-i-python/tree/main/src/payi/_response.py) object.
@@ -263,8 +264,8 @@ The above interface eagerly reads the full response body when you make the reque
263
264
  To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
264
265
 
265
266
  ```python
266
- with client.budgets.with_streaming_response.create(
267
- budget_name="x",
267
+ with client.limits.with_streaming_response.create(
268
+ limit_name="x",
268
269
  max=0,
269
270
  ) as response:
270
271
  print(response.headers.get("X-My-Header"))
@@ -342,6 +343,16 @@ client.with_options(http_client=DefaultHttpxClient(...))
342
343
 
343
344
  By default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.
344
345
 
346
+ ```py
347
+ from payi import Payi
348
+
349
+ with Payi() as client:
350
+ # make requests here
351
+ ...
352
+
353
+ # HTTP client is now closed
354
+ ```
355
+
345
356
  ## Versioning
346
357
 
347
358
  This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:
@@ -1,89 +1,80 @@
1
1
  payi/__init__.py,sha256=_eeZx9fx2Wp81adXh7qrpkmXCso7TiRSvIlLkQ0sQhY,2399
2
2
  payi/_base_client.py,sha256=s3JMTpYuiwtp-jn6iB79v4iuCc29C1Rr38el1IXMtHs,68034
3
- payi/_client.py,sha256=pulFUK9yWV2ROjJLT1-NjSky6kFEukMilSnv4d1xkrc,18554
3
+ payi/_client.py,sha256=aUtMEmV02nTs3_pYYAR-OchCkofUHeXhhRs43tyDHLE,18760
4
4
  payi/_compat.py,sha256=VWemUKbj6DDkQ-O4baSpHVLJafotzeXmCQGJugfVTIw,6580
5
5
  payi/_constants.py,sha256=JE8kyZa2Q4NK_i4fO--8siEYTzeHnT0fYbOFDgDP4uk,464
6
6
  payi/_exceptions.py,sha256=ItygKNrNXIVY0H6LsGVZvFuAHB3Vtm_VZXmWzCnpHy0,3216
7
7
  payi/_files.py,sha256=mf4dOgL4b0ryyZlbqLhggD3GVgDf6XxdGFAgce01ugE,3549
8
- payi/_models.py,sha256=uhxvXZC0JO7HuGR_GWXH-zYKuptF2rwiGVJfMMfg3fw,28470
8
+ payi/_models.py,sha256=iumFIitiWZTGITgF2nwOmEPIJGIEeJaUXhDlpaSN9Wg,28589
9
9
  payi/_qs.py,sha256=AOkSz4rHtK4YI3ZU_kzea-zpwBUgEY8WniGmTPyEimc,4846
10
10
  payi/_resource.py,sha256=j2jIkTr8OIC8sU6-05nxSaCyj4MaFlbZrwlyg4_xJos,1088
11
- payi/_response.py,sha256=9ZpP3Agz-3ReY0RSJo7O7BAwD0UluwRsTSvljdTh1dg,28597
11
+ payi/_response.py,sha256=FnusjH7NI-PDlV8Tzwho9X71ua7kSfJbtio3WET4hQQ,28653
12
12
  payi/_streaming.py,sha256=Z_wIyo206T6Jqh2rolFg2VXZgX24PahLmpURp0-NssU,10092
13
13
  payi/_types.py,sha256=2mbMK86K3W1aMTW7sOGQ-VND6-A2IuXKm8p4sYFztBU,6141
14
- payi/_version.py,sha256=elxZL5z6mI-Uf813CkCOghXXO87WmDeXgzSD-axaox8,165
14
+ payi/_version.py,sha256=M4dvaz5wNwzNWCou3S_apqSjbmVYxS-72bf6CzU6-84,165
15
15
  payi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- payi/_utils/__init__.py,sha256=k266EatJr88V8Zseb7xUimTlCeno9SynRfLwadHP1b4,2016
16
+ payi/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
17
17
  payi/_utils/_logs.py,sha256=fmnf5D9TOgkgZKfgYmSa3PiUc3SZgkchn6CzJUeo0SQ,768
18
18
  payi/_utils/_proxy.py,sha256=z3zsateHtb0EARTWKk8QZNHfPkqJbqwd1lM993LBwGE,1902
19
19
  payi/_utils/_reflection.py,sha256=ZmGkIgT_PuwedyNBrrKGbxoWtkpytJNU1uU4QHnmEMU,1364
20
20
  payi/_utils/_streams.py,sha256=SMC90diFFecpEg_zgDRVbdR3hSEIgVVij4taD-noMLM,289
21
21
  payi/_utils/_sync.py,sha256=jJl-iCEaZZUAkq4IUtzN1-aMsKTUFaNoNbeYnnpQjIQ,2438
22
22
  payi/_utils/_transform.py,sha256=Dkkyr7OveGmOolepcvXmVJWE3kqim4b0nM0h7yWbgeY,13468
23
- payi/_utils/_typing.py,sha256=tFbktdpdHCQliwzGsWysgn0P5H0JRdagkZdb_LegGkY,3838
23
+ payi/_utils/_typing.py,sha256=nTJz0jcrQbEgxwy4TtAkNxuU0QHHlmc6mQtA6vIR8tg,4501
24
24
  payi/_utils/_utils.py,sha256=8UmbPOy_AAr2uUjjFui-VZSrVBHRj6bfNEKRp5YZP2A,12004
25
25
  payi/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
26
- payi/lib/helpers.py,sha256=JpI9vy--oJP5kUlcWK0yfyRUbIRMXkvLeUQC4g8rLNY,1472
27
- payi/resources/__init__.py,sha256=4Q0RFRJ3z9_Q0G5XSkuYYLp1t_DiDlN-kVpLYdOuNsQ,3605
28
- payi/resources/billing_models.py,sha256=WTehxCPUU2Otb7i8eXOUIQibJ2dMRjzJPbYdZTCq8Z4,20204
29
- payi/resources/ingest.py,sha256=37iLoReikYwGlBtSlNMjH9O4YvPGKuybfotQ_214Qlo,16903
26
+ payi/lib/helpers.py,sha256=mmebWb1pgHhUs61pRX4sc3uZuSjjOJKej5oNBxwptRM,1472
27
+ payi/resources/__init__.py,sha256=isHGXSl9kOrZDduKrX3UenTwrdTpuKJVBjw6NYSBV20,3592
28
+ payi/resources/billing_models.py,sha256=6gNDCHOujPkDdwuvm924IYTDiCMmhsPGQb2XgAg0vak,20160
29
+ payi/resources/ingest.py,sha256=un-8pANh1phPsPOJ9DuYC75v7lK6-dDuzTL8sWgNu5c,18797
30
30
  payi/resources/price_modifiers.py,sha256=m9IX__C7_oPcZzGNpHJ2BsjMkGQ29JZrxLM1nFa8dL4,13483
31
- payi/resources/budgets/__init__.py,sha256=w1UhOdDXtUH4A91ME5Tw2nr9bRvPJyJY1YWiVVy7jj0,989
32
- payi/resources/budgets/budgets.py,sha256=GCTSojdFjDdWuJM2lO_-QKktFhncaA84xPx5C-RI7ks,27456
33
- payi/resources/budgets/tags.py,sha256=akVs7lGBb7O697lv-_nXT_xlh6dgQuaj6pWqTenO86s,18827
34
31
  payi/resources/categories/__init__.py,sha256=w5gMiPdBSzJA_qfoVtFBElaoe8wGf_O63R7R1Spr6Gk,1093
35
32
  payi/resources/categories/categories.py,sha256=dGsAX313gZlLy5pSRo5_TexD1rPeWU666yHNwiUEFBA,16082
36
33
  payi/resources/categories/resources.py,sha256=I38bjAvpsLg4LRwJEvnKX3yyr_ErTxkkv12y19sYd7E,18712
37
34
  payi/resources/experiences/__init__.py,sha256=w7QTV5HMdPeOmmzUXzTefx9cqvzK8Tiqzv1sGUQLNVw,1980
38
35
  payi/resources/experiences/csat.py,sha256=b56MzdJAII-rHjWTIqDUPS2MlgIVuqGXBOWq4SgBSRI,6611
39
36
  payi/resources/experiences/experiences.py,sha256=Cbpp9T82Dqjb3TbF0nw53DtDhdbxwGhEWvT7dwohInM,15613
40
- payi/resources/experiences/properties.py,sha256=wpLSbDfp2SYVuPycP6U-BeXZZC5e9xS-WtdO68SqhfI,6612
37
+ payi/resources/experiences/properties.py,sha256=duso5QRsbakhyCNtjYwaBUaGxSmN0ET4Di27Ojeyqvs,6582
41
38
  payi/resources/experiences/types.py,sha256=hz5dtgmVD2eEOUU7Y29yA_UGefl77-oT4sAHFVkp-qk,19380
39
+ payi/resources/limits/__init__.py,sha256=URXh9vglDH-dqbVGk-XcrDa8H5Bg2pgFuVQQecgEtaA,976
40
+ payi/resources/limits/limits.py,sha256=wuk78wR2Jk4iqd0wKzteV5c4CwGEyMbu8isUU5iFIa8,25832
41
+ payi/resources/limits/tags.py,sha256=z8-ABZWbvL9M_LOPdL-1shhy8QkNFqwY8GKmNETWA7M,18733
42
42
  payi/resources/requests/__init__.py,sha256=sWDD18RLuwPB2yzxA29HiwhFdmjZAxzy1qK_4abAZ9E,1080
43
- payi/resources/requests/properties.py,sha256=zVLz0mOTP2-ZgDDkAxN0TVxai0BcdrM9gJOffC_o6Rw,6516
43
+ payi/resources/requests/properties.py,sha256=zLFdNsP-uu4DxYuJc1fX6uKRDmD2wsUp3bLekXw7xsQ,6486
44
44
  payi/resources/requests/requests.py,sha256=tglPpryoEMbcz7nr1brk72Mi7-julmtmu3PfEhDYwoc,3771
45
- payi/types/__init__.py,sha256=nMDlmK73Ss1cnGqEE6H1O_3XpZhruixzT_NQsAaYJTY,2528
46
- payi/types/billing_model.py,sha256=zFVpBJ5T3v48Zw2wxrAC5s2eDgLO0Zl_uRqJvjioJAI,650
47
- payi/types/billing_model_create_params.py,sha256=ixhGf7xvBY6g0Zr2G7MrkMFV-9gZpdMgxSXISoiQZQg,558
45
+ payi/types/__init__.py,sha256=8qVzwUIYOJjsf9Ugl7no3vWuDYTOZx7qL7XU7TwuSkM,2640
46
+ payi/types/billing_model.py,sha256=zwpKldc0WvS3iGKtDb9KvfxCd3lkv8F4TwFy3ciGMXg,639
47
+ payi/types/billing_model_create_params.py,sha256=iVvmCcw0VxXGI_0YolknD3gmDH2lXVydU1dg2IY4dC4,547
48
48
  payi/types/billing_model_list_response.py,sha256=hOFjJPQAKiWEArZeZwd8e1lDi5e41zbN6NvV_1rzJeM,290
49
- payi/types/billing_model_update_params.py,sha256=npsGWB2A1fKVuGHxRsAZzy4BAQBxuSmrwuWAYPGvamk,558
50
- payi/types/budget_create_params.py,sha256=MDXUCZFK9SZHUTkB9OrQ8SeF1Xu7gmivuYSbcN9X-3w,632
51
- payi/types/budget_history_response.py,sha256=4SnisCLr1HImVecgonZK7HIm9WTmYl0YMaTbMP70qZY,934
52
- payi/types/budget_list_params.py,sha256=KaJ0H4tfp6mpCyanpysVJBTAMa5aA2Kv73uO_EsBsKE,367
53
- payi/types/budget_response.py,sha256=Zh8rC7fNaN7lIfGB-cF911x1lL9wU0L161FjuFve6Qc,813
54
- payi/types/budget_update_params.py,sha256=foD5cPa1p2M2cpVUqlwkXwSEQlQcBLaigUQMUGkvcic,334
49
+ payi/types/billing_model_update_params.py,sha256=NHNxDUZyYeYEroSyUx8eVh-kyY2YUo3jfRI-eMx2QAY,547
55
50
  payi/types/bulk_ingest_response.py,sha256=78J3vlL7muZx9Z20H--UkvM8P19g0cDL9SZoHy7XM68,1330
56
51
  payi/types/category_delete_resource_response.py,sha256=PLz4wZA1XMpS9SUYB_j4hEw5EoZ0VVE9Ll-MQ26SAfc,339
57
52
  payi/types/category_delete_response.py,sha256=exq8rNDGoq2-YN528V8osdcmuptJ-k63rmCvPMm6hLA,323
58
53
  payi/types/category_list_resources_response.py,sha256=n0DxY7N3Iftwfl0lUEx5v55V0kxbOX0EgjXlEfJtYRQ,337
59
54
  payi/types/category_list_response.py,sha256=5i7BhQ7kVlx8_r2MLJqAJwIELGitKE0uR63kIloLATI,294
60
- payi/types/category_resource_response.py,sha256=4PfQZbOIMOlE701uXGU-qegZOH8DN1VYcSClhfe_GOA,601
55
+ payi/types/category_resource_response.py,sha256=dZTQCJVaPdFCObHe2zUg6kKaHDtsgVzrO7FeyozHOs0,679
61
56
  payi/types/category_response.py,sha256=43i8bii20Sb-z9R5M1Ia6RGfRZmdQqsWPlv4Bl1XQf0,293
62
57
  payi/types/cost_data.py,sha256=PDmleZu-HKKOIh_EZ5EgWvpGiTUSJQadsxedWhFVgEI,283
63
58
  payi/types/cost_details.py,sha256=w9p79opEG3kcsjkRRP7niaMcUswdfB4Y7HCkVTcQ1zQ,307
64
59
  payi/types/default_response.py,sha256=o617LpRsCIZHCZxAc5nVI2JQ3HPGZo4gCDvSDkxkIJ8,270
65
60
  payi/types/experience_instance_response.py,sha256=YVWjFpCMAFXsXbU5tgMKrvXHC2F5MsTWdltzRiCUIQA,309
66
61
  payi/types/ingest_bulk_params.py,sha256=aIsugHkiAe_DnGQ8JVpDUDYr1YNzR5cUY9mMPqusIP0,381
67
- payi/types/ingest_event_param.py,sha256=2aes3mqwMQssi71LcWGsr-on6IKaLPsFu-rjaQGP7E4,1020
68
- payi/types/ingest_response.py,sha256=Ug83Sfl-3tELRh5rWFclOZYgsZBkvCjUXJXrp1J5Uac,1197
69
- payi/types/ingest_units_params.py,sha256=YTd47S6qbcbpZVYCJa0w6SieSDZdQtDf_29OA7mrHJM,1265
70
- payi/types/paged_budget_list.py,sha256=WGX0c6QGyTwjhsgkABsvXXRaBFPLVg6gPbph_qtVmJg,1371
62
+ payi/types/ingest_event_param.py,sha256=dn2eImtw07ZuE1nE6zRIwfYIuCWw5BUUPucDMpdsp3w,1352
63
+ payi/types/ingest_response.py,sha256=14VWaX91XuVZth1JBHY1djw8nF-0o6EK4N_WPq_p-Wc,1193
64
+ payi/types/ingest_units_params.py,sha256=EgNGZfQyUKGO-v5S11JjQF_LkibXaAwbCIcSusb6MdA,1602
65
+ payi/types/limit_create_params.py,sha256=SbNoXHwy24kTTOxDhtcewtKxEkmXtTLYh4CTGysojys,578
66
+ payi/types/limit_history_response.py,sha256=VPylW3Y1-7ZQWAgkClLwbxB8C5kywgRm8DzrBKJli9Q,786
67
+ payi/types/limit_list_params.py,sha256=iWM67oL53y2IZ7D3Gyy8mdYv-B7vF-rbmRFn7SBUnJk,364
68
+ payi/types/limit_reset_params.py,sha256=vgqImSM89pRYY0Z2RNrJuQ6WeDX72ZPg3GWpL9EVEKs,476
69
+ payi/types/limit_response.py,sha256=wYNsbsm5oMtF7W1sTbxlZ5VE0XaS_UbP6y7ZXGKfwqk,752
70
+ payi/types/limit_update_params.py,sha256=crY4w75FWcEXbzysq1rPfD37qR5PTy_dwVRY4C_-T1w,331
71
+ payi/types/paged_limit_list.py,sha256=tUMj5FsxXHGfBubxxltwahwiTl4TaCiVHpv4zmrTb4Q,1314
71
72
  payi/types/price_modifier.py,sha256=Sw_5tzCGnpjQzR5aZ70_ATpfBRQA_0ue2NRM3yMcvj0,531
72
73
  payi/types/price_modifier_create_params.py,sha256=RpcYr2JYFu-pxzY4Dx1ESMp9-FBHfKt03Iw-3tlZvXQ,404
73
74
  payi/types/price_modifier_retrieve_response.py,sha256=oFXWr38-O7KHItQlSsr7K8-Arpjq0yKexSUnbWqu62Q,303
74
75
  payi/types/price_modifier_update_params.py,sha256=lqZW1J5akLSNv-6i4dGPCqwe1p3d7rM8JzzQ4Hofsbo,404
75
76
  payi/types/requests_data.py,sha256=sGhAykQ5lh8iEwYfIsDRO5Tso139N8nlmQUL9hg3YSQ,308
76
77
  payi/types/total_cost_data.py,sha256=FGh5XO5DwAIqkdmW9umyrJ7uD7U0w6CLDimzhP34Dmc,302
77
- payi/types/budgets/__init__.py,sha256=5ByVuqOcgSYLHmGzhuj6-HG48mtQhC6oT5U5tNjQtxk,725
78
- payi/types/budgets/budget_tags.py,sha256=nOYMf7YgRdTZgGdedJw0UbQ2uupCq9MHlevLJoXxWB4,348
79
- payi/types/budgets/tag_create_params.py,sha256=_zEYfH2uKF44WenAdedx4TB9Az6RbIoAUMwqW8SAiuc,314
80
- payi/types/budgets/tag_create_response.py,sha256=qg51bbGKGl2RL6BKQSzwBHxIW7H2oxUq45afe35PCdA,270
81
- payi/types/budgets/tag_delete_response.py,sha256=INYlE88mTjtdaa9kfTuqE0cP9__rbW5e4Xq36olYoeY,270
82
- payi/types/budgets/tag_list_response.py,sha256=-4q6_BOr2Nyov-noCI1TInOewADjWc0MUf0P1kRhxWo,266
83
- payi/types/budgets/tag_remove_params.py,sha256=fNiHex1U11o_B0bfJDkpGARkEf99J-bd-wbzKkZ9mVM,314
84
- payi/types/budgets/tag_remove_response.py,sha256=v7ysGVZ-54dKurvMA-3ySKco4LgTz3MqwC2VcJ-veeE,270
85
- payi/types/budgets/tag_update_params.py,sha256=bWWeDqfySt7CZ6HDsZzENREOWGWGWFgnAtyleNMwUsE,314
86
- payi/types/budgets/tag_update_response.py,sha256=0L-0k2pGw9GndpwArjKhHwOOJgOTOTY4mM7ukUM3Pwc,270
87
78
  payi/types/categories/__init__.py,sha256=HQScxfK3F_J9HYbphrhG6bYb7S6vtrwafLViar5pHcM,285
88
79
  payi/types/categories/resource_create_params.py,sha256=jEXNx_FvWA9D5170Gwf_YUcuAOaDq0RIGaGgPSEsheA,725
89
80
  payi/types/categories/resource_list_response.py,sha256=ODMelDlXvYcwxBsJwTX8miofywUY_JB0OvsFVCKJunU,320
@@ -92,14 +83,26 @@ payi/types/experiences/csat_create_params.py,sha256=YK2M8yuqkZ7p-Z5S_6nSOeALX0Ox
92
83
  payi/types/experiences/csat_response.py,sha256=tRJepzTgOPoeOEtm6leCCcbzwl8QJtL57mWlBk9ni3k,202
93
84
  payi/types/experiences/experience_type.py,sha256=1L08GHoLAfdBwE691RidkHIukpyqqO2_toL5CcWxE4k,315
94
85
  payi/types/experiences/properties_response.py,sha256=HpFNtxl_OjoMCs24xPVZLKe3FwCVcNkcRs0LsQKLrHM,259
95
- payi/types/experiences/property_create_params.py,sha256=ef4XiTAa03FO_RuRQ8WbDZhNqzcfhaysnDb1HtObbB4,348
86
+ payi/types/experiences/property_create_params.py,sha256=6v1L_4pj5N5k386cbtjSAWr2QJw---WUJ5lyshRnMwc,328
96
87
  payi/types/experiences/type_create_params.py,sha256=56vS9kTHex1eU9QQ-DWjBMqoHNhOukPZUY4jgGhnJnQ,376
97
88
  payi/types/experiences/type_list_params.py,sha256=VDZjHmK2tNAW_YLewcIzM-OG13iI2v-xCykokxkcgbs,286
98
89
  payi/types/experiences/type_list_response.py,sha256=DgkPLw40oUqBETLePVMVenstMsGG12rZRU9w6kgQN28,280
99
90
  payi/types/experiences/type_update_params.py,sha256=izwlElQB-jeFFX3K6S2TqVUMmhU0KTmwScQ5aoHZH0M,361
91
+ payi/types/limits/__init__.py,sha256=yohSla0l53OaxH9WdwaU1crY1FvzM3H6IRg20LUr-MU,722
92
+ payi/types/limits/limit_tags.py,sha256=O9I9IC7IkFBYRbiUWb4XXmIuXoHUlRLjW_4fbEF50Aw,346
93
+ payi/types/limits/tag_create_params.py,sha256=MPN1rXRJKCV_mZX8ZwrZD4yHpME7jI_SwAusz7ruvaE,313
94
+ payi/types/limits/tag_create_response.py,sha256=ZBU5vjGQQnsz5twkAs102TwXaZgRv9Z1nmvPHVYDTAY,267
95
+ payi/types/limits/tag_delete_response.py,sha256=CzkcQxggdAjakAPC1JqjK2L6h6YGxwnWU3bKRjkAfeM,267
96
+ payi/types/limits/tag_list_response.py,sha256=64Au13HA8Woch4gAgMb-XEd7Q9InJy9xdo9xPZyGxY4,263
97
+ payi/types/limits/tag_remove_params.py,sha256=wqRc8Y9ZYqOcnIuuFVQfbPRtX0ycp-z5fl7o42NhVpA,313
98
+ payi/types/limits/tag_remove_response.py,sha256=R-e-um-W1aqq8sEmTtnPMCDLGVRUmm5pVAvLCkgDVHI,267
99
+ payi/types/limits/tag_update_params.py,sha256=8-gP8OEY7xpBPLfS2uU71ew2WkWZ-WpVOy9fRA07omY,313
100
+ payi/types/limits/tag_update_response.py,sha256=xLa4aU4eVhNmIaQTsCyEDjx1vatBACFiJCwZOWLfrig,267
100
101
  payi/types/requests/__init__.py,sha256=K4qfrWMIIg1-UNB0Vu5UdGEmf6TWoF-i3gPc_LT78D8,204
101
- payi/types/requests/property_create_params.py,sha256=ef4XiTAa03FO_RuRQ8WbDZhNqzcfhaysnDb1HtObbB4,348
102
- payi-0.1.0a32.dist-info/METADATA,sha256=Q90gYPb5TS_Qbq5kvh4jgtZPzpsBiA5hKM5nXPpN5zM,12456
103
- payi-0.1.0a32.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
104
- payi-0.1.0a32.dist-info/licenses/LICENSE,sha256=8vX1pjh3esb6D5DvXAf6NxiBcVyon8aHWNJCxmmHXeY,11334
105
- payi-0.1.0a32.dist-info/RECORD,,
102
+ payi/types/requests/property_create_params.py,sha256=6v1L_4pj5N5k386cbtjSAWr2QJw---WUJ5lyshRnMwc,328
103
+ payi/types/shared/__init__.py,sha256=zgBdtU5-a1ee8l5ABWyzuELwWRTKOCCcOx7gbCgdE4A,161
104
+ payi/types/shared/evaluation_response.py,sha256=V1HnUI1NeXdwZKJmlN_jhOC2nJPFTw1jjISWuqlIi0E,215
105
+ payi-0.1.0a34.dist-info/METADATA,sha256=_wqrA1-CPIE70zN6uu9k0gWzXo9lQhSzuCna6TLznzo,12584
106
+ payi-0.1.0a34.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
107
+ payi-0.1.0a34.dist-info/licenses/LICENSE,sha256=CQt03aM-P4a3Yg5qBg3JSLVoQS3smMyvx7tYg_6V7Gk,11334
108
+ payi-0.1.0a34.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.26.3
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright 2024 Payi
189
+ Copyright 2025 Payi
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
@@ -1,38 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import List, Optional
4
- from datetime import datetime
5
- from typing_extensions import Literal
6
-
7
- from .._models import BaseModel
8
- from .total_cost_data import TotalCostData
9
-
10
- __all__ = ["BudgetHistoryResponse", "BudgetHistory"]
11
-
12
-
13
- class BudgetHistory(BaseModel):
14
- budget_name: Optional[str] = None
15
-
16
- base_cost_estimate: Optional[Literal["max"]] = None
17
-
18
- budget_id: Optional[str] = None
19
-
20
- budget_reset_timestamp: Optional[datetime] = None
21
-
22
- budget_response_type: Optional[Literal["block", "allow"]] = None
23
-
24
- budget_tags: Optional[List[str]] = None
25
-
26
- budget_type: Optional[Literal["conservative", "liberal"]] = None
27
-
28
- max: Optional[float] = None
29
-
30
- totals: Optional[TotalCostData] = None
31
-
32
-
33
- class BudgetHistoryResponse(BaseModel):
34
- budget_history: BudgetHistory
35
-
36
- request_id: str
37
-
38
- message: Optional[str] = None