ynab-api-cli 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. ynab_api_cli/__init__.py +3 -0
  2. ynab_api_cli/__main__.py +266 -0
  3. ynab_api_cli/cli.py +171 -0
  4. ynab_api_cli/compat.py +120 -0
  5. ynab_api_cli/config.py +110 -0
  6. ynab_api_cli/contract.py +197 -0
  7. ynab_api_cli/contract_testing.py +141 -0
  8. ynab_api_cli/development.py +269 -0
  9. ynab_api_cli/distribution.py +123 -0
  10. ynab_api_cli/exceptions.py +7 -0
  11. ynab_api_cli/generated/__init__.py +3 -0
  12. ynab_api_cli/generated/api/__init__.py +3 -0
  13. ynab_api_cli/generated/api/accounts/__init__.py +3 -0
  14. ynab_api_cli/generated/api/accounts/create_account.py +54 -0
  15. ynab_api_cli/generated/api/accounts/get_account_by_id.py +53 -0
  16. ynab_api_cli/generated/api/accounts/get_accounts.py +57 -0
  17. ynab_api_cli/generated/api/categories/__init__.py +3 -0
  18. ynab_api_cli/generated/api/categories/create_category.py +54 -0
  19. ynab_api_cli/generated/api/categories/create_category_group.py +58 -0
  20. ynab_api_cli/generated/api/categories/get_categories.py +57 -0
  21. ynab_api_cli/generated/api/categories/get_category_by_id.py +52 -0
  22. ynab_api_cli/generated/api/categories/get_month_category_by_id.py +58 -0
  23. ynab_api_cli/generated/api/categories/update_category.py +57 -0
  24. ynab_api_cli/generated/api/categories/update_category_group.py +63 -0
  25. ynab_api_cli/generated/api/categories/update_month_category.py +65 -0
  26. ynab_api_cli/generated/api/money_movements/__init__.py +3 -0
  27. ynab_api_cli/generated/api/money_movements/get_money_movement_groups.py +51 -0
  28. ynab_api_cli/generated/api/money_movements/get_money_movement_groups_by_month.py +57 -0
  29. ynab_api_cli/generated/api/money_movements/get_money_movements.py +51 -0
  30. ynab_api_cli/generated/api/money_movements/get_money_movements_by_month.py +57 -0
  31. ynab_api_cli/generated/api/months/__init__.py +3 -0
  32. ynab_api_cli/generated/api/months/get_plan_month.py +55 -0
  33. ynab_api_cli/generated/api/months/get_plan_months.py +59 -0
  34. ynab_api_cli/generated/api/payee_locations/__init__.py +3 -0
  35. ynab_api_cli/generated/api/payee_locations/get_payee_location_by_id.py +54 -0
  36. ynab_api_cli/generated/api/payee_locations/get_payee_locations.py +51 -0
  37. ynab_api_cli/generated/api/payee_locations/get_payee_locations_by_payee.py +54 -0
  38. ynab_api_cli/generated/api/payees/__init__.py +3 -0
  39. ynab_api_cli/generated/api/payees/create_payee.py +54 -0
  40. ynab_api_cli/generated/api/payees/get_payee_by_id.py +52 -0
  41. ynab_api_cli/generated/api/payees/get_payees.py +57 -0
  42. ynab_api_cli/generated/api/payees/update_payee.py +57 -0
  43. ynab_api_cli/generated/api/plans/__init__.py +3 -0
  44. ynab_api_cli/generated/api/plans/get_plan_by_id.py +57 -0
  45. ynab_api_cli/generated/api/plans/get_plan_settings_by_id.py +49 -0
  46. ynab_api_cli/generated/api/plans/get_plans.py +51 -0
  47. ynab_api_cli/generated/api/scheduled_transactions/__init__.py +3 -0
  48. ynab_api_cli/generated/api/scheduled_transactions/create_scheduled_transaction.py +58 -0
  49. ynab_api_cli/generated/api/scheduled_transactions/delete_scheduled_transaction.py +56 -0
  50. ynab_api_cli/generated/api/scheduled_transactions/get_scheduled_transaction_by_id.py +56 -0
  51. ynab_api_cli/generated/api/scheduled_transactions/get_scheduled_transactions.py +59 -0
  52. ynab_api_cli/generated/api/scheduled_transactions/update_scheduled_transaction.py +63 -0
  53. ynab_api_cli/generated/api/transactions/__init__.py +3 -0
  54. ynab_api_cli/generated/api/transactions/create_transaction.py +58 -0
  55. ynab_api_cli/generated/api/transactions/delete_transaction.py +54 -0
  56. ynab_api_cli/generated/api/transactions/get_transaction_by_id.py +54 -0
  57. ynab_api_cli/generated/api/transactions/get_transactions.py +80 -0
  58. ynab_api_cli/generated/api/transactions/get_transactions_by_account.py +87 -0
  59. ynab_api_cli/generated/api/transactions/get_transactions_by_category.py +89 -0
  60. ynab_api_cli/generated/api/transactions/get_transactions_by_month.py +87 -0
  61. ynab_api_cli/generated/api/transactions/get_transactions_by_payee.py +89 -0
  62. ynab_api_cli/generated/api/transactions/import_transactions.py +54 -0
  63. ynab_api_cli/generated/api/transactions/update_transaction.py +59 -0
  64. ynab_api_cli/generated/api/transactions/update_transactions.py +58 -0
  65. ynab_api_cli/generated/api/user/__init__.py +3 -0
  66. ynab_api_cli/generated/api/user/get_user.py +42 -0
  67. ynab_api_cli/generated/bindings.py +141 -0
  68. ynab_api_cli/generated/models/__init__.py +416 -0
  69. ynab_api_cli/generated/models/account.py +71 -0
  70. ynab_api_cli/generated/models/account_base.py +57 -0
  71. ynab_api_cli/generated/models/account_response.py +19 -0
  72. ynab_api_cli/generated/models/account_response_data.py +19 -0
  73. ynab_api_cli/generated/models/account_type.py +23 -0
  74. ynab_api_cli/generated/models/accounts_response.py +21 -0
  75. ynab_api_cli/generated/models/accounts_response_data.py +20 -0
  76. ynab_api_cli/generated/models/bulk_response.py +19 -0
  77. ynab_api_cli/generated/models/bulk_response_data.py +21 -0
  78. ynab_api_cli/generated/models/bulk_response_data_bulk.py +15 -0
  79. ynab_api_cli/generated/models/bulk_transactions.py +21 -0
  80. ynab_api_cli/generated/models/categories_response.py +21 -0
  81. ynab_api_cli/generated/models/categories_response_data.py +22 -0
  82. ynab_api_cli/generated/models/category.py +104 -0
  83. ynab_api_cli/generated/models/category_base.py +74 -0
  84. ynab_api_cli/generated/models/category_group.py +20 -0
  85. ynab_api_cli/generated/models/category_group_with_categories.py +25 -0
  86. ynab_api_cli/generated/models/category_response.py +21 -0
  87. ynab_api_cli/generated/models/category_response_data.py +19 -0
  88. ynab_api_cli/generated/models/currency_format_type_0.py +21 -0
  89. ynab_api_cli/generated/models/date_format_type_0.py +14 -0
  90. ynab_api_cli/generated/models/debt_1.py +18 -0
  91. ynab_api_cli/generated/models/debt_2.py +18 -0
  92. ynab_api_cli/generated/models/debt_3.py +18 -0
  93. ynab_api_cli/generated/models/error_detail.py +16 -0
  94. ynab_api_cli/generated/models/error_response.py +19 -0
  95. ynab_api_cli/generated/models/existing_category.py +34 -0
  96. ynab_api_cli/generated/models/existing_transaction.py +43 -0
  97. ynab_api_cli/generated/models/flag_1.py +17 -0
  98. ynab_api_cli/generated/models/flag_2.py +17 -0
  99. ynab_api_cli/generated/models/flag_3.py +17 -0
  100. ynab_api_cli/generated/models/get_transactions_by_account_type.py +12 -0
  101. ynab_api_cli/generated/models/get_transactions_by_category_type.py +12 -0
  102. ynab_api_cli/generated/models/get_transactions_by_month_type.py +12 -0
  103. ynab_api_cli/generated/models/get_transactions_by_payee_type.py +12 -0
  104. ynab_api_cli/generated/models/get_transactions_type.py +12 -0
  105. ynab_api_cli/generated/models/goal_1.py +15 -0
  106. ynab_api_cli/generated/models/goal_2.py +15 -0
  107. ynab_api_cli/generated/models/goal_3.py +15 -0
  108. ynab_api_cli/generated/models/hybrid_transaction.py +70 -0
  109. ynab_api_cli/generated/models/hybrid_transaction_type.py +12 -0
  110. ynab_api_cli/generated/models/hybrid_transactions_response.py +21 -0
  111. ynab_api_cli/generated/models/hybrid_transactions_response_data.py +22 -0
  112. ynab_api_cli/generated/models/loan_account_periodic_value_type_0.py +33 -0
  113. ynab_api_cli/generated/models/money_movement.py +35 -0
  114. ynab_api_cli/generated/models/money_movement_base.py +33 -0
  115. ynab_api_cli/generated/models/money_movement_group.py +25 -0
  116. ynab_api_cli/generated/models/money_movement_groups_response.py +21 -0
  117. ynab_api_cli/generated/models/money_movement_groups_response_data.py +22 -0
  118. ynab_api_cli/generated/models/money_movements_response.py +21 -0
  119. ynab_api_cli/generated/models/money_movements_response_data.py +20 -0
  120. ynab_api_cli/generated/models/month_detail.py +42 -0
  121. ynab_api_cli/generated/models/month_detail_base.py +30 -0
  122. ynab_api_cli/generated/models/month_detail_response.py +21 -0
  123. ynab_api_cli/generated/models/month_detail_response_data.py +19 -0
  124. ynab_api_cli/generated/models/month_summaries_response.py +21 -0
  125. ynab_api_cli/generated/models/month_summaries_response_data.py +20 -0
  126. ynab_api_cli/generated/models/month_summary.py +37 -0
  127. ynab_api_cli/generated/models/month_summary_base.py +25 -0
  128. ynab_api_cli/generated/models/new_category.py +34 -0
  129. ynab_api_cli/generated/models/new_transaction.py +44 -0
  130. ynab_api_cli/generated/models/patch_category_group_wrapper.py +19 -0
  131. ynab_api_cli/generated/models/patch_category_wrapper.py +19 -0
  132. ynab_api_cli/generated/models/patch_month_category_wrapper.py +19 -0
  133. ynab_api_cli/generated/models/patch_payee_wrapper.py +19 -0
  134. ynab_api_cli/generated/models/patch_transactions_wrapper.py +21 -0
  135. ynab_api_cli/generated/models/payee.py +23 -0
  136. ynab_api_cli/generated/models/payee_location.py +20 -0
  137. ynab_api_cli/generated/models/payee_location_response.py +21 -0
  138. ynab_api_cli/generated/models/payee_location_response_data.py +19 -0
  139. ynab_api_cli/generated/models/payee_locations_response.py +21 -0
  140. ynab_api_cli/generated/models/payee_locations_response_data.py +19 -0
  141. ynab_api_cli/generated/models/payee_response.py +19 -0
  142. ynab_api_cli/generated/models/payee_response_data.py +19 -0
  143. ynab_api_cli/generated/models/payees_response.py +19 -0
  144. ynab_api_cli/generated/models/payees_response_data.py +20 -0
  145. ynab_api_cli/generated/models/plan_detail.py +74 -0
  146. ynab_api_cli/generated/models/plan_detail_response.py +21 -0
  147. ynab_api_cli/generated/models/plan_detail_response_data.py +20 -0
  148. ynab_api_cli/generated/models/plan_settings.py +21 -0
  149. ynab_api_cli/generated/models/plan_settings_response.py +21 -0
  150. ynab_api_cli/generated/models/plan_settings_response_data.py +19 -0
  151. ynab_api_cli/generated/models/plan_summary.py +38 -0
  152. ynab_api_cli/generated/models/plan_summary_response.py +21 -0
  153. ynab_api_cli/generated/models/plan_summary_response_data.py +24 -0
  154. ynab_api_cli/generated/models/post_account_wrapper.py +19 -0
  155. ynab_api_cli/generated/models/post_category_group_wrapper.py +19 -0
  156. ynab_api_cli/generated/models/post_category_wrapper.py +19 -0
  157. ynab_api_cli/generated/models/post_payee.py +14 -0
  158. ynab_api_cli/generated/models/post_payee_wrapper.py +19 -0
  159. ynab_api_cli/generated/models/post_scheduled_transaction_wrapper.py +23 -0
  160. ynab_api_cli/generated/models/post_transactions_wrapper.py +24 -0
  161. ynab_api_cli/generated/models/put_scheduled_transaction_wrapper.py +23 -0
  162. ynab_api_cli/generated/models/put_transaction_wrapper.py +19 -0
  163. ynab_api_cli/generated/models/save_account.py +18 -0
  164. ynab_api_cli/generated/models/save_account_type.py +16 -0
  165. ynab_api_cli/generated/models/save_category.py +34 -0
  166. ynab_api_cli/generated/models/save_category_goal_frequency.py +13 -0
  167. ynab_api_cli/generated/models/save_category_group.py +14 -0
  168. ynab_api_cli/generated/models/save_category_group_response.py +21 -0
  169. ynab_api_cli/generated/models/save_category_group_response_data.py +20 -0
  170. ynab_api_cli/generated/models/save_category_response.py +21 -0
  171. ynab_api_cli/generated/models/save_category_response_data.py +20 -0
  172. ynab_api_cli/generated/models/save_month_category.py +14 -0
  173. ynab_api_cli/generated/models/save_payee.py +16 -0
  174. ynab_api_cli/generated/models/save_payee_response.py +21 -0
  175. ynab_api_cli/generated/models/save_payee_response_data.py +20 -0
  176. ynab_api_cli/generated/models/save_scheduled_transaction.py +37 -0
  177. ynab_api_cli/generated/models/save_sub_transaction.py +22 -0
  178. ynab_api_cli/generated/models/save_transaction_with_id_or_import_id.py +45 -0
  179. ynab_api_cli/generated/models/save_transaction_with_optional_fields.py +43 -0
  180. ynab_api_cli/generated/models/save_transactions_response.py +21 -0
  181. ynab_api_cli/generated/models/save_transactions_response_data.py +29 -0
  182. ynab_api_cli/generated/models/scheduled_sub_transaction.py +31 -0
  183. ynab_api_cli/generated/models/scheduled_sub_transaction_base.py +29 -0
  184. ynab_api_cli/generated/models/scheduled_transaction_detail.py +53 -0
  185. ynab_api_cli/generated/models/scheduled_transaction_frequency.py +23 -0
  186. ynab_api_cli/generated/models/scheduled_transaction_response.py +21 -0
  187. ynab_api_cli/generated/models/scheduled_transaction_response_data.py +23 -0
  188. ynab_api_cli/generated/models/scheduled_transaction_summary.py +43 -0
  189. ynab_api_cli/generated/models/scheduled_transaction_summary_base.py +41 -0
  190. ynab_api_cli/generated/models/scheduled_transaction_summary_base_frequency.py +23 -0
  191. ynab_api_cli/generated/models/scheduled_transactions_response.py +21 -0
  192. ynab_api_cli/generated/models/scheduled_transactions_response_data.py +24 -0
  193. ynab_api_cli/generated/models/sub_transaction.py +34 -0
  194. ynab_api_cli/generated/models/sub_transaction_base.py +32 -0
  195. ynab_api_cli/generated/models/transaction_cleared_status.py +13 -0
  196. ynab_api_cli/generated/models/transaction_detail.py +70 -0
  197. ynab_api_cli/generated/models/transaction_response.py +21 -0
  198. ynab_api_cli/generated/models/transaction_response_data.py +20 -0
  199. ynab_api_cli/generated/models/transaction_summary.py +62 -0
  200. ynab_api_cli/generated/models/transaction_summary_base.py +60 -0
  201. ynab_api_cli/generated/models/transactions_import_response.py +21 -0
  202. ynab_api_cli/generated/models/transactions_import_response_data.py +14 -0
  203. ynab_api_cli/generated/models/transactions_response.py +21 -0
  204. ynab_api_cli/generated/models/transactions_response_data.py +20 -0
  205. ynab_api_cli/generated/models/user.py +16 -0
  206. ynab_api_cli/generated/models/user_response.py +19 -0
  207. ynab_api_cli/generated/models/user_response_data.py +19 -0
  208. ynab_api_cli/live.py +449 -0
  209. ynab_api_cli/py.typed +0 -0
  210. ynab_api_cli/resources/__init__.py +3 -0
  211. ynab_api_cli/resources/catalog.json +178 -0
  212. ynab_api_cli/resources/openapi.yaml +4035 -0
  213. ynab_api_cli/resources/provenance.json +9 -0
  214. ynab_api_cli/resources/schema_features.json +913 -0
  215. ynab_api_cli/resources/skill/SKILL.md +21 -0
  216. ynab_api_cli/resources/skill/references/operations.md +36 -0
  217. ynab_api_cli/resources/skill/references/setup.md +32 -0
  218. ynab_api_cli/security.py +83 -0
  219. ynab_api_cli/transport.py +133 -0
  220. ynab_api_cli/types.py +110 -0
  221. ynab_api_cli/verification.py +167 -0
  222. ynab_api_cli-0.1.0.dist-info/METADATA +90 -0
  223. ynab_api_cli-0.1.0.dist-info/RECORD +225 -0
  224. ynab_api_cli-0.1.0.dist-info/WHEEL +4 -0
  225. ynab_api_cli-0.1.0.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,12 @@
1
+ """Generated declarations; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from enum import StrEnum
6
+
7
+
8
+ class GetTransactionsByMonthType(StrEnum):
9
+ """Generated contract enumeration."""
10
+
11
+ UNAPPROVED = "unapproved"
12
+ UNCATEGORIZED = "uncategorized"
@@ -0,0 +1,12 @@
1
+ """Generated declarations; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from enum import StrEnum
6
+
7
+
8
+ class GetTransactionsByPayeeType(StrEnum):
9
+ """Generated contract enumeration."""
10
+
11
+ UNAPPROVED = "unapproved"
12
+ UNCATEGORIZED = "uncategorized"
@@ -0,0 +1,12 @@
1
+ """Generated declarations; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from enum import StrEnum
6
+
7
+
8
+ class GetTransactionsType(StrEnum):
9
+ """Generated contract enumeration."""
10
+
11
+ UNAPPROVED = "unapproved"
12
+ UNCATEGORIZED = "uncategorized"
@@ -0,0 +1,15 @@
1
+ """Generated declarations; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from enum import StrEnum
6
+
7
+
8
+ class Goal1(StrEnum):
9
+ """Generated contract enumeration."""
10
+
11
+ DEBT = "DEBT"
12
+ MF = "MF"
13
+ NEED = "NEED"
14
+ TB = "TB"
15
+ TBD = "TBD"
@@ -0,0 +1,15 @@
1
+ """Generated declarations; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from enum import StrEnum
6
+
7
+
8
+ class Goal2(StrEnum):
9
+ """Generated contract enumeration."""
10
+
11
+ DEBT = "DEBT"
12
+ MF = "MF"
13
+ NEED = "NEED"
14
+ TB = "TB"
15
+ TBD = "TBD"
@@ -0,0 +1,15 @@
1
+ """Generated declarations; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from enum import StrEnum
6
+
7
+
8
+ class Goal3(StrEnum):
9
+ """Generated contract enumeration."""
10
+
11
+ DEBT = "DEBT"
12
+ MF = "MF"
13
+ NEED = "NEED"
14
+ TB = "TB"
15
+ TBD = "TBD"
@@ -0,0 +1,70 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from uuid import UUID
7
+
8
+ from pydantic import BaseModel, ConfigDict, Field
9
+
10
+ from ynab_api_cli.generated.models.debt_1 import Debt1
11
+ from ynab_api_cli.generated.models.debt_2 import Debt2
12
+ from ynab_api_cli.generated.models.debt_3 import Debt3
13
+ from ynab_api_cli.generated.models.flag_1 import Flag1
14
+ from ynab_api_cli.generated.models.flag_2 import Flag2
15
+ from ynab_api_cli.generated.models.flag_3 import Flag3
16
+ from ynab_api_cli.generated.models.hybrid_transaction_type import HybridTransactionType
17
+ from ynab_api_cli.generated.models.transaction_cleared_status import (
18
+ TransactionClearedStatus,
19
+ )
20
+ from ynab_api_cli.types import UNSET, Unset
21
+
22
+
23
+ class HybridTransaction(BaseModel):
24
+ """Typed HybridTransaction contract representation."""
25
+
26
+ model_config = ConfigDict(
27
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
28
+ )
29
+ id: str = Field(alias="id")
30
+ date: datetime.date = Field(alias="date")
31
+ amount: int = Field(alias="amount")
32
+ cleared: TransactionClearedStatus = Field(alias="cleared")
33
+ approved: bool = Field(alias="approved")
34
+ account_id: UUID = Field(alias="account_id")
35
+ deleted: bool = Field(alias="deleted")
36
+ type_: HybridTransactionType = Field(alias="type")
37
+ account_name: str = Field(alias="account_name")
38
+ memo: str | Unset | None = Field(alias="memo", default=UNSET)
39
+ flag_color: Flag1 | Flag2 | Flag3 | Unset | None = Field(
40
+ alias="flag_color", default=UNSET
41
+ )
42
+ flag_name: str | Unset | None = Field(alias="flag_name", default=UNSET)
43
+ payee_id: Unset | UUID | None = Field(alias="payee_id", default=UNSET)
44
+ category_id: Unset | UUID | None = Field(alias="category_id", default=UNSET)
45
+ transfer_account_id: Unset | UUID | None = Field(
46
+ alias="transfer_account_id", default=UNSET
47
+ )
48
+ transfer_transaction_id: str | Unset | None = Field(
49
+ alias="transfer_transaction_id", default=UNSET
50
+ )
51
+ matched_transaction_id: str | Unset | None = Field(
52
+ alias="matched_transaction_id", default=UNSET
53
+ )
54
+ import_id: str | Unset | None = Field(alias="import_id", default=UNSET)
55
+ import_payee_name: str | Unset | None = Field(
56
+ alias="import_payee_name", default=UNSET
57
+ )
58
+ import_payee_name_original: str | Unset | None = Field(
59
+ alias="import_payee_name_original", default=UNSET
60
+ )
61
+ debt_transaction_type: Debt1 | Debt2 | Debt3 | Unset | None = Field(
62
+ alias="debt_transaction_type", default=UNSET
63
+ )
64
+ amount_formatted: str | Unset = Field(alias="amount_formatted", default=UNSET)
65
+ amount_currency: float | Unset = Field(alias="amount_currency", default=UNSET)
66
+ parent_transaction_id: str | Unset | None = Field(
67
+ alias="parent_transaction_id", default=UNSET
68
+ )
69
+ payee_name: str | Unset | None = Field(alias="payee_name", default=UNSET)
70
+ category_name: str | Unset = Field(alias="category_name", default=UNSET)
@@ -0,0 +1,12 @@
1
+ """Generated declarations; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from enum import StrEnum
6
+
7
+
8
+ class HybridTransactionType(StrEnum):
9
+ """Generated contract enumeration."""
10
+
11
+ SUBTRANSACTION = "subtransaction"
12
+ TRANSACTION = "transaction"
@@ -0,0 +1,21 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ if TYPE_CHECKING:
10
+ from ynab_api_cli.generated.models.hybrid_transactions_response_data import (
11
+ HybridTransactionsResponseData,
12
+ )
13
+
14
+
15
+ class HybridTransactionsResponse(BaseModel):
16
+ """Typed HybridTransactionsResponse contract representation."""
17
+
18
+ model_config = ConfigDict(
19
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
20
+ )
21
+ data: HybridTransactionsResponseData = Field(alias="data")
@@ -0,0 +1,22 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ from ynab_api_cli.types import UNSET, Unset
10
+
11
+ if TYPE_CHECKING:
12
+ from ynab_api_cli.generated.models.hybrid_transaction import HybridTransaction
13
+
14
+
15
+ class HybridTransactionsResponseData(BaseModel):
16
+ """Typed HybridTransactionsResponseData contract representation."""
17
+
18
+ model_config = ConfigDict(
19
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
20
+ )
21
+ transactions: list[HybridTransaction] = Field(alias="transactions")
22
+ server_knowledge: int | Unset = Field(alias="server_knowledge", default=UNSET)
@@ -0,0 +1,33 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pydantic import BaseModel, ConfigDict, TypeAdapter, model_validator
6
+
7
+
8
+ class LoanAccountPeriodicValueType0(BaseModel):
9
+ """Typed LoanAccountPeriodicValueType0 contract representation."""
10
+
11
+ model_config = ConfigDict(
12
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
13
+ )
14
+
15
+ @model_validator(mode="before")
16
+ @classmethod
17
+ def validate_extra_values(cls, value: object) -> object:
18
+ """Validate typed map entries before the Pydantic model boundary."""
19
+ if not isinstance(value, dict):
20
+ return value
21
+ declared = {field.alias or name for name, field in cls.model_fields.items()}
22
+ extra = {
23
+ str(key): item for key, item in value.items() if str(key) not in declared
24
+ }
25
+ TypeAdapter[dict[str, int]](dict[str, int]).validate_python(extra)
26
+ return value
27
+
28
+ @property
29
+ def additional_properties(self) -> dict[str, int]:
30
+ """Return additional entries through a validated typed boundary."""
31
+ return TypeAdapter[dict[str, int]](dict[str, int]).validate_python(
32
+ self.model_extra or {}
33
+ )
@@ -0,0 +1,35 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from uuid import UUID
7
+
8
+ from pydantic import BaseModel, ConfigDict, Field
9
+
10
+ from ynab_api_cli.types import UNSET, Unset
11
+
12
+
13
+ class MoneyMovement(BaseModel):
14
+ """Typed MoneyMovement contract representation."""
15
+
16
+ model_config = ConfigDict(
17
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
18
+ )
19
+ id: UUID = Field(alias="id")
20
+ amount: int = Field(alias="amount")
21
+ month: datetime.date | Unset | None = Field(alias="month", default=UNSET)
22
+ moved_at: datetime.datetime | Unset | None = Field(alias="moved_at", default=UNSET)
23
+ note: str | Unset | None = Field(alias="note", default=UNSET)
24
+ money_movement_group_id: Unset | UUID | None = Field(
25
+ alias="money_movement_group_id", default=UNSET
26
+ )
27
+ performed_by_user_id: Unset | UUID | None = Field(
28
+ alias="performed_by_user_id", default=UNSET
29
+ )
30
+ from_category_id: Unset | UUID | None = Field(
31
+ alias="from_category_id", default=UNSET
32
+ )
33
+ to_category_id: Unset | UUID | None = Field(alias="to_category_id", default=UNSET)
34
+ amount_formatted: str | Unset = Field(alias="amount_formatted", default=UNSET)
35
+ amount_currency: float | Unset = Field(alias="amount_currency", default=UNSET)
@@ -0,0 +1,33 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from uuid import UUID
7
+
8
+ from pydantic import BaseModel, ConfigDict, Field
9
+
10
+ from ynab_api_cli.types import UNSET, Unset
11
+
12
+
13
+ class MoneyMovementBase(BaseModel):
14
+ """Typed MoneyMovementBase contract representation."""
15
+
16
+ model_config = ConfigDict(
17
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
18
+ )
19
+ id: UUID = Field(alias="id")
20
+ amount: int = Field(alias="amount")
21
+ month: datetime.date | Unset | None = Field(alias="month", default=UNSET)
22
+ moved_at: datetime.datetime | Unset | None = Field(alias="moved_at", default=UNSET)
23
+ note: str | Unset | None = Field(alias="note", default=UNSET)
24
+ money_movement_group_id: Unset | UUID | None = Field(
25
+ alias="money_movement_group_id", default=UNSET
26
+ )
27
+ performed_by_user_id: Unset | UUID | None = Field(
28
+ alias="performed_by_user_id", default=UNSET
29
+ )
30
+ from_category_id: Unset | UUID | None = Field(
31
+ alias="from_category_id", default=UNSET
32
+ )
33
+ to_category_id: Unset | UUID | None = Field(alias="to_category_id", default=UNSET)
@@ -0,0 +1,25 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from uuid import UUID
7
+
8
+ from pydantic import BaseModel, ConfigDict, Field
9
+
10
+ from ynab_api_cli.types import UNSET, Unset
11
+
12
+
13
+ class MoneyMovementGroup(BaseModel):
14
+ """Typed MoneyMovementGroup contract representation."""
15
+
16
+ model_config = ConfigDict(
17
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
18
+ )
19
+ id: UUID = Field(alias="id")
20
+ group_created_at: datetime.datetime = Field(alias="group_created_at")
21
+ month: datetime.date = Field(alias="month")
22
+ note: str | Unset | None = Field(alias="note", default=UNSET)
23
+ performed_by_user_id: Unset | UUID | None = Field(
24
+ alias="performed_by_user_id", default=UNSET
25
+ )
@@ -0,0 +1,21 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ if TYPE_CHECKING:
10
+ from ynab_api_cli.generated.models.money_movement_groups_response_data import (
11
+ MoneyMovementGroupsResponseData,
12
+ )
13
+
14
+
15
+ class MoneyMovementGroupsResponse(BaseModel):
16
+ """Typed MoneyMovementGroupsResponse contract representation."""
17
+
18
+ model_config = ConfigDict(
19
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
20
+ )
21
+ data: MoneyMovementGroupsResponseData = Field(alias="data")
@@ -0,0 +1,22 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ if TYPE_CHECKING:
10
+ from ynab_api_cli.generated.models.money_movement_group import MoneyMovementGroup
11
+
12
+
13
+ class MoneyMovementGroupsResponseData(BaseModel):
14
+ """Typed MoneyMovementGroupsResponseData contract representation."""
15
+
16
+ model_config = ConfigDict(
17
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
18
+ )
19
+ money_movement_groups: list[MoneyMovementGroup] = Field(
20
+ alias="money_movement_groups"
21
+ )
22
+ server_knowledge: int = Field(alias="server_knowledge")
@@ -0,0 +1,21 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ if TYPE_CHECKING:
10
+ from ynab_api_cli.generated.models.money_movements_response_data import (
11
+ MoneyMovementsResponseData,
12
+ )
13
+
14
+
15
+ class MoneyMovementsResponse(BaseModel):
16
+ """Typed MoneyMovementsResponse contract representation."""
17
+
18
+ model_config = ConfigDict(
19
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
20
+ )
21
+ data: MoneyMovementsResponseData = Field(alias="data")
@@ -0,0 +1,20 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ if TYPE_CHECKING:
10
+ from ynab_api_cli.generated.models.money_movement import MoneyMovement
11
+
12
+
13
+ class MoneyMovementsResponseData(BaseModel):
14
+ """Typed MoneyMovementsResponseData contract representation."""
15
+
16
+ model_config = ConfigDict(
17
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
18
+ )
19
+ money_movements: list[MoneyMovement] = Field(alias="money_movements")
20
+ server_knowledge: int = Field(alias="server_knowledge")
@@ -0,0 +1,42 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from typing import TYPE_CHECKING
7
+
8
+ from pydantic import BaseModel, ConfigDict, Field
9
+
10
+ from ynab_api_cli.types import UNSET, Unset
11
+
12
+ if TYPE_CHECKING:
13
+ from ynab_api_cli.generated.models.category import Category
14
+
15
+
16
+ class MonthDetail(BaseModel):
17
+ """Typed MonthDetail contract representation."""
18
+
19
+ model_config = ConfigDict(
20
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
21
+ )
22
+ month: datetime.date = Field(alias="month")
23
+ income: int = Field(alias="income")
24
+ budgeted: int = Field(alias="budgeted")
25
+ activity: int = Field(alias="activity")
26
+ to_be_budgeted: int = Field(alias="to_be_budgeted")
27
+ deleted: bool = Field(alias="deleted")
28
+ categories: list[Category] = Field(alias="categories")
29
+ note: str | Unset | None = Field(alias="note", default=UNSET)
30
+ age_of_money: int | Unset | None = Field(alias="age_of_money", default=UNSET)
31
+ income_formatted: str | Unset = Field(alias="income_formatted", default=UNSET)
32
+ income_currency: float | Unset = Field(alias="income_currency", default=UNSET)
33
+ budgeted_formatted: str | Unset = Field(alias="budgeted_formatted", default=UNSET)
34
+ budgeted_currency: float | Unset = Field(alias="budgeted_currency", default=UNSET)
35
+ activity_formatted: str | Unset = Field(alias="activity_formatted", default=UNSET)
36
+ activity_currency: float | Unset = Field(alias="activity_currency", default=UNSET)
37
+ to_be_budgeted_formatted: str | Unset = Field(
38
+ alias="to_be_budgeted_formatted", default=UNSET
39
+ )
40
+ to_be_budgeted_currency: float | Unset = Field(
41
+ alias="to_be_budgeted_currency", default=UNSET
42
+ )
@@ -0,0 +1,30 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from typing import TYPE_CHECKING
7
+
8
+ from pydantic import BaseModel, ConfigDict, Field
9
+
10
+ from ynab_api_cli.types import UNSET, Unset
11
+
12
+ if TYPE_CHECKING:
13
+ from ynab_api_cli.generated.models.category_base import CategoryBase
14
+
15
+
16
+ class MonthDetailBase(BaseModel):
17
+ """Typed MonthDetailBase contract representation."""
18
+
19
+ model_config = ConfigDict(
20
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
21
+ )
22
+ month: datetime.date = Field(alias="month")
23
+ income: int = Field(alias="income")
24
+ budgeted: int = Field(alias="budgeted")
25
+ activity: int = Field(alias="activity")
26
+ to_be_budgeted: int = Field(alias="to_be_budgeted")
27
+ deleted: bool = Field(alias="deleted")
28
+ categories: list[CategoryBase] = Field(alias="categories")
29
+ note: str | Unset | None = Field(alias="note", default=UNSET)
30
+ age_of_money: int | Unset | None = Field(alias="age_of_money", default=UNSET)
@@ -0,0 +1,21 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ if TYPE_CHECKING:
10
+ from ynab_api_cli.generated.models.month_detail_response_data import (
11
+ MonthDetailResponseData,
12
+ )
13
+
14
+
15
+ class MonthDetailResponse(BaseModel):
16
+ """Typed MonthDetailResponse contract representation."""
17
+
18
+ model_config = ConfigDict(
19
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
20
+ )
21
+ data: MonthDetailResponseData = Field(alias="data")
@@ -0,0 +1,19 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ if TYPE_CHECKING:
10
+ from ynab_api_cli.generated.models.month_detail import MonthDetail
11
+
12
+
13
+ class MonthDetailResponseData(BaseModel):
14
+ """Typed MonthDetailResponseData contract representation."""
15
+
16
+ model_config = ConfigDict(
17
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
18
+ )
19
+ month: MonthDetail = Field(alias="month")
@@ -0,0 +1,21 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ if TYPE_CHECKING:
10
+ from ynab_api_cli.generated.models.month_summaries_response_data import (
11
+ MonthSummariesResponseData,
12
+ )
13
+
14
+
15
+ class MonthSummariesResponse(BaseModel):
16
+ """Typed MonthSummariesResponse contract representation."""
17
+
18
+ model_config = ConfigDict(
19
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
20
+ )
21
+ data: MonthSummariesResponseData = Field(alias="data")
@@ -0,0 +1,20 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ if TYPE_CHECKING:
10
+ from ynab_api_cli.generated.models.month_summary import MonthSummary
11
+
12
+
13
+ class MonthSummariesResponseData(BaseModel):
14
+ """Typed MonthSummariesResponseData contract representation."""
15
+
16
+ model_config = ConfigDict(
17
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
18
+ )
19
+ months: list[MonthSummary] = Field(alias="months")
20
+ server_knowledge: int = Field(alias="server_knowledge")
@@ -0,0 +1,37 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ from ynab_api_cli.types import UNSET, Unset
10
+
11
+
12
+ class MonthSummary(BaseModel):
13
+ """Typed MonthSummary contract representation."""
14
+
15
+ model_config = ConfigDict(
16
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
17
+ )
18
+ month: datetime.date = Field(alias="month")
19
+ income: int = Field(alias="income")
20
+ budgeted: int = Field(alias="budgeted")
21
+ activity: int = Field(alias="activity")
22
+ to_be_budgeted: int = Field(alias="to_be_budgeted")
23
+ deleted: bool = Field(alias="deleted")
24
+ note: str | Unset | None = Field(alias="note", default=UNSET)
25
+ age_of_money: int | Unset | None = Field(alias="age_of_money", default=UNSET)
26
+ income_formatted: str | Unset = Field(alias="income_formatted", default=UNSET)
27
+ income_currency: float | Unset = Field(alias="income_currency", default=UNSET)
28
+ budgeted_formatted: str | Unset = Field(alias="budgeted_formatted", default=UNSET)
29
+ budgeted_currency: float | Unset = Field(alias="budgeted_currency", default=UNSET)
30
+ activity_formatted: str | Unset = Field(alias="activity_formatted", default=UNSET)
31
+ activity_currency: float | Unset = Field(alias="activity_currency", default=UNSET)
32
+ to_be_budgeted_formatted: str | Unset = Field(
33
+ alias="to_be_budgeted_formatted", default=UNSET
34
+ )
35
+ to_be_budgeted_currency: float | Unset = Field(
36
+ alias="to_be_budgeted_currency", default=UNSET
37
+ )
@@ -0,0 +1,25 @@
1
+ """Generated contract model; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+ from ynab_api_cli.types import UNSET, Unset
10
+
11
+
12
+ class MonthSummaryBase(BaseModel):
13
+ """Typed MonthSummaryBase contract representation."""
14
+
15
+ model_config = ConfigDict(
16
+ extra="allow", arbitrary_types_allowed=True, populate_by_name=True
17
+ )
18
+ month: datetime.date = Field(alias="month")
19
+ income: int = Field(alias="income")
20
+ budgeted: int = Field(alias="budgeted")
21
+ activity: int = Field(alias="activity")
22
+ to_be_budgeted: int = Field(alias="to_be_budgeted")
23
+ deleted: bool = Field(alias="deleted")
24
+ note: str | Unset | None = Field(alias="note", default=UNSET)
25
+ age_of_money: int | Unset | None = Field(alias="age_of_money", default=UNSET)