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,63 @@
1
+ """Generated typed REST endpoint; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from http import HTTPStatus
6
+
7
+ from pydantic import TypeAdapter
8
+
9
+ from ynab_api_cli.generated.models.error_response import ErrorResponse
10
+ from ynab_api_cli.generated.models.put_scheduled_transaction_wrapper import (
11
+ PutScheduledTransactionWrapper,
12
+ )
13
+ from ynab_api_cli.generated.models.scheduled_transaction_response import (
14
+ ScheduledTransactionResponse,
15
+ )
16
+ from ynab_api_cli.transport import Transport
17
+ from ynab_api_cli.types import RequestValues, Response
18
+
19
+
20
+ class Endpoint:
21
+ """Typed updateScheduledTransaction operation."""
22
+
23
+ @classmethod
24
+ def execute(
25
+ cls,
26
+ *,
27
+ transport: Transport,
28
+ plan_id: str,
29
+ scheduled_transaction_id: str,
30
+ body: PutScheduledTransactionWrapper,
31
+ ) -> Response[ErrorResponse | ScheduledTransactionResponse]:
32
+ """Execute the typed request and retain its original response JSON."""
33
+ raw = transport.send(
34
+ "updateScheduledTransaction",
35
+ RequestValues(
36
+ path={
37
+ "plan_id": plan_id,
38
+ "scheduled_transaction_id": scheduled_transaction_id,
39
+ },
40
+ query={},
41
+ body=body,
42
+ ),
43
+ )
44
+ if raw.status == HTTPStatus.OK:
45
+ parsed = ScheduledTransactionResponse.model_validate(raw.raw)
46
+ return Response(raw.status, raw.raw, raw.headers, parsed)
47
+ raise ValueError("Validated response has no generated success binding.")
48
+
49
+ @classmethod
50
+ def dispatch(
51
+ cls, transport: Transport, request: RequestValues
52
+ ) -> Response[ErrorResponse | ScheduledTransactionResponse]:
53
+ """Convert validated CLI inputs and call the explicitly typed method."""
54
+ return cls.execute(
55
+ transport=transport,
56
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
57
+ scheduled_transaction_id=request.value(
58
+ "path", "scheduled_transaction_id", TypeAdapter[str](str)
59
+ ),
60
+ body=TypeAdapter[PutScheduledTransactionWrapper](
61
+ PutScheduledTransactionWrapper
62
+ ).validate_python(request.body),
63
+ )
@@ -0,0 +1,3 @@
1
+ """Generated endpoint declarations."""
2
+
3
+ from __future__ import annotations
@@ -0,0 +1,58 @@
1
+ """Generated typed REST endpoint; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from http import HTTPStatus
6
+
7
+ from pydantic import TypeAdapter
8
+
9
+ from ynab_api_cli.generated.models.error_response import ErrorResponse
10
+ from ynab_api_cli.generated.models.post_transactions_wrapper import (
11
+ PostTransactionsWrapper,
12
+ )
13
+ from ynab_api_cli.generated.models.save_transactions_response import (
14
+ SaveTransactionsResponse,
15
+ )
16
+ from ynab_api_cli.transport import Transport
17
+ from ynab_api_cli.types import RequestValues, Response
18
+
19
+
20
+ class Endpoint:
21
+ """Typed createTransaction operation."""
22
+
23
+ @classmethod
24
+ def execute(
25
+ cls,
26
+ *,
27
+ transport: Transport,
28
+ plan_id: str,
29
+ body: PostTransactionsWrapper,
30
+ ) -> Response[ErrorResponse | SaveTransactionsResponse]:
31
+ """Execute the typed request and retain its original response JSON."""
32
+ raw = transport.send(
33
+ "createTransaction",
34
+ RequestValues(
35
+ path={
36
+ "plan_id": plan_id,
37
+ },
38
+ query={},
39
+ body=body,
40
+ ),
41
+ )
42
+ if raw.status == HTTPStatus.CREATED:
43
+ parsed = SaveTransactionsResponse.model_validate(raw.raw)
44
+ return Response(raw.status, raw.raw, raw.headers, parsed)
45
+ raise ValueError("Validated response has no generated success binding.")
46
+
47
+ @classmethod
48
+ def dispatch(
49
+ cls, transport: Transport, request: RequestValues
50
+ ) -> Response[ErrorResponse | SaveTransactionsResponse]:
51
+ """Convert validated CLI inputs and call the explicitly typed method."""
52
+ return cls.execute(
53
+ transport=transport,
54
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
55
+ body=TypeAdapter[PostTransactionsWrapper](
56
+ PostTransactionsWrapper
57
+ ).validate_python(request.body),
58
+ )
@@ -0,0 +1,54 @@
1
+ """Generated typed REST endpoint; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from http import HTTPStatus
6
+
7
+ from pydantic import TypeAdapter
8
+
9
+ from ynab_api_cli.generated.models.error_response import ErrorResponse
10
+ from ynab_api_cli.generated.models.transaction_response import TransactionResponse
11
+ from ynab_api_cli.transport import Transport
12
+ from ynab_api_cli.types import UNSET, RequestValues, Response
13
+
14
+
15
+ class Endpoint:
16
+ """Typed deleteTransaction operation."""
17
+
18
+ @classmethod
19
+ def execute(
20
+ cls,
21
+ *,
22
+ transport: Transport,
23
+ plan_id: str,
24
+ transaction_id: str,
25
+ ) -> Response[ErrorResponse | TransactionResponse]:
26
+ """Execute the typed request and retain its original response JSON."""
27
+ raw = transport.send(
28
+ "deleteTransaction",
29
+ RequestValues(
30
+ path={
31
+ "plan_id": plan_id,
32
+ "transaction_id": transaction_id,
33
+ },
34
+ query={},
35
+ body=UNSET,
36
+ ),
37
+ )
38
+ if raw.status == HTTPStatus.OK:
39
+ parsed = TransactionResponse.model_validate(raw.raw)
40
+ return Response(raw.status, raw.raw, raw.headers, parsed)
41
+ raise ValueError("Validated response has no generated success binding.")
42
+
43
+ @classmethod
44
+ def dispatch(
45
+ cls, transport: Transport, request: RequestValues
46
+ ) -> Response[ErrorResponse | TransactionResponse]:
47
+ """Convert validated CLI inputs and call the explicitly typed method."""
48
+ return cls.execute(
49
+ transport=transport,
50
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
51
+ transaction_id=request.value(
52
+ "path", "transaction_id", TypeAdapter[str](str)
53
+ ),
54
+ )
@@ -0,0 +1,54 @@
1
+ """Generated typed REST endpoint; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from http import HTTPStatus
6
+
7
+ from pydantic import TypeAdapter
8
+
9
+ from ynab_api_cli.generated.models.error_response import ErrorResponse
10
+ from ynab_api_cli.generated.models.transaction_response import TransactionResponse
11
+ from ynab_api_cli.transport import Transport
12
+ from ynab_api_cli.types import UNSET, RequestValues, Response
13
+
14
+
15
+ class Endpoint:
16
+ """Typed getTransactionById operation."""
17
+
18
+ @classmethod
19
+ def execute(
20
+ cls,
21
+ *,
22
+ transport: Transport,
23
+ plan_id: str,
24
+ transaction_id: str,
25
+ ) -> Response[ErrorResponse | TransactionResponse]:
26
+ """Execute the typed request and retain its original response JSON."""
27
+ raw = transport.send(
28
+ "getTransactionById",
29
+ RequestValues(
30
+ path={
31
+ "plan_id": plan_id,
32
+ "transaction_id": transaction_id,
33
+ },
34
+ query={},
35
+ body=UNSET,
36
+ ),
37
+ )
38
+ if raw.status == HTTPStatus.OK:
39
+ parsed = TransactionResponse.model_validate(raw.raw)
40
+ return Response(raw.status, raw.raw, raw.headers, parsed)
41
+ raise ValueError("Validated response has no generated success binding.")
42
+
43
+ @classmethod
44
+ def dispatch(
45
+ cls, transport: Transport, request: RequestValues
46
+ ) -> Response[ErrorResponse | TransactionResponse]:
47
+ """Convert validated CLI inputs and call the explicitly typed method."""
48
+ return cls.execute(
49
+ transport=transport,
50
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
51
+ transaction_id=request.value(
52
+ "path", "transaction_id", TypeAdapter[str](str)
53
+ ),
54
+ )
@@ -0,0 +1,80 @@
1
+ """Generated typed REST endpoint; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from http import HTTPStatus
7
+
8
+ from pydantic import TypeAdapter
9
+
10
+ from ynab_api_cli.generated.models.error_response import ErrorResponse
11
+ from ynab_api_cli.generated.models.get_transactions_type import GetTransactionsType
12
+ from ynab_api_cli.generated.models.transactions_response import TransactionsResponse
13
+ from ynab_api_cli.transport import Transport
14
+ from ynab_api_cli.types import UNSET, RequestValues, Response, Unset
15
+
16
+
17
+ class Endpoint:
18
+ """Typed getTransactions operation."""
19
+
20
+ @classmethod
21
+ def execute( # noqa: PLR0913 - preserve the endpoint contract.
22
+ cls,
23
+ *,
24
+ transport: Transport,
25
+ plan_id: str,
26
+ since_date: datetime.date | Unset = UNSET,
27
+ until_date: datetime.date | Unset = UNSET,
28
+ type_: GetTransactionsType | Unset = UNSET,
29
+ last_knowledge_of_server: int | Unset = UNSET,
30
+ ) -> Response[ErrorResponse | TransactionsResponse]:
31
+ """Execute the typed request and retain its original response JSON."""
32
+ raw = transport.send(
33
+ "getTransactions",
34
+ RequestValues(
35
+ path={
36
+ "plan_id": plan_id,
37
+ },
38
+ query={
39
+ "since_date": since_date,
40
+ "until_date": until_date,
41
+ "type": type_,
42
+ "last_knowledge_of_server": last_knowledge_of_server,
43
+ },
44
+ body=UNSET,
45
+ ),
46
+ )
47
+ if raw.status == HTTPStatus.OK:
48
+ parsed = TransactionsResponse.model_validate(raw.raw)
49
+ return Response(raw.status, raw.raw, raw.headers, parsed)
50
+ raise ValueError("Validated response has no generated success binding.")
51
+
52
+ @classmethod
53
+ def dispatch(
54
+ cls, transport: Transport, request: RequestValues
55
+ ) -> Response[ErrorResponse | TransactionsResponse]:
56
+ """Convert validated CLI inputs and call the explicitly typed method."""
57
+ return cls.execute(
58
+ transport=transport,
59
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
60
+ since_date=request.value(
61
+ "query",
62
+ "since_date",
63
+ TypeAdapter[datetime.date | Unset](datetime.date | Unset),
64
+ ),
65
+ until_date=request.value(
66
+ "query",
67
+ "until_date",
68
+ TypeAdapter[datetime.date | Unset](datetime.date | Unset),
69
+ ),
70
+ type_=request.value(
71
+ "query",
72
+ "type",
73
+ TypeAdapter[GetTransactionsType | Unset](GetTransactionsType | Unset),
74
+ ),
75
+ last_knowledge_of_server=request.value(
76
+ "query",
77
+ "last_knowledge_of_server",
78
+ TypeAdapter[int | Unset](int | Unset),
79
+ ),
80
+ )
@@ -0,0 +1,87 @@
1
+ """Generated typed REST endpoint; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from http import HTTPStatus
7
+
8
+ from pydantic import TypeAdapter
9
+
10
+ from ynab_api_cli.generated.models.error_response import ErrorResponse
11
+ from ynab_api_cli.generated.models.get_transactions_by_account_type import (
12
+ GetTransactionsByAccountType,
13
+ )
14
+ from ynab_api_cli.generated.models.transactions_response import TransactionsResponse
15
+ from ynab_api_cli.transport import Transport
16
+ from ynab_api_cli.types import UNSET, RequestValues, Response, Unset
17
+
18
+
19
+ class Endpoint:
20
+ """Typed getTransactionsByAccount operation."""
21
+
22
+ @classmethod
23
+ def execute( # noqa: PLR0913 - preserve the endpoint contract.
24
+ cls,
25
+ *,
26
+ transport: Transport,
27
+ plan_id: str,
28
+ account_id: str,
29
+ since_date: datetime.date | Unset = UNSET,
30
+ until_date: datetime.date | Unset = UNSET,
31
+ type_: GetTransactionsByAccountType | Unset = UNSET,
32
+ last_knowledge_of_server: int | Unset = UNSET,
33
+ ) -> Response[ErrorResponse | TransactionsResponse]:
34
+ """Execute the typed request and retain its original response JSON."""
35
+ raw = transport.send(
36
+ "getTransactionsByAccount",
37
+ RequestValues(
38
+ path={
39
+ "plan_id": plan_id,
40
+ "account_id": account_id,
41
+ },
42
+ query={
43
+ "since_date": since_date,
44
+ "until_date": until_date,
45
+ "type": type_,
46
+ "last_knowledge_of_server": last_knowledge_of_server,
47
+ },
48
+ body=UNSET,
49
+ ),
50
+ )
51
+ if raw.status == HTTPStatus.OK:
52
+ parsed = TransactionsResponse.model_validate(raw.raw)
53
+ return Response(raw.status, raw.raw, raw.headers, parsed)
54
+ raise ValueError("Validated response has no generated success binding.")
55
+
56
+ @classmethod
57
+ def dispatch(
58
+ cls, transport: Transport, request: RequestValues
59
+ ) -> Response[ErrorResponse | TransactionsResponse]:
60
+ """Convert validated CLI inputs and call the explicitly typed method."""
61
+ return cls.execute(
62
+ transport=transport,
63
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
64
+ account_id=request.value("path", "account_id", TypeAdapter[str](str)),
65
+ since_date=request.value(
66
+ "query",
67
+ "since_date",
68
+ TypeAdapter[datetime.date | Unset](datetime.date | Unset),
69
+ ),
70
+ until_date=request.value(
71
+ "query",
72
+ "until_date",
73
+ TypeAdapter[datetime.date | Unset](datetime.date | Unset),
74
+ ),
75
+ type_=request.value(
76
+ "query",
77
+ "type",
78
+ TypeAdapter[GetTransactionsByAccountType | Unset](
79
+ GetTransactionsByAccountType | Unset
80
+ ),
81
+ ),
82
+ last_knowledge_of_server=request.value(
83
+ "query",
84
+ "last_knowledge_of_server",
85
+ TypeAdapter[int | Unset](int | Unset),
86
+ ),
87
+ )
@@ -0,0 +1,89 @@
1
+ """Generated typed REST endpoint; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from http import HTTPStatus
7
+
8
+ from pydantic import TypeAdapter
9
+
10
+ from ynab_api_cli.generated.models.error_response import ErrorResponse
11
+ from ynab_api_cli.generated.models.get_transactions_by_category_type import (
12
+ GetTransactionsByCategoryType,
13
+ )
14
+ from ynab_api_cli.generated.models.hybrid_transactions_response import (
15
+ HybridTransactionsResponse,
16
+ )
17
+ from ynab_api_cli.transport import Transport
18
+ from ynab_api_cli.types import UNSET, RequestValues, Response, Unset
19
+
20
+
21
+ class Endpoint:
22
+ """Typed getTransactionsByCategory operation."""
23
+
24
+ @classmethod
25
+ def execute( # noqa: PLR0913 - preserve the endpoint contract.
26
+ cls,
27
+ *,
28
+ transport: Transport,
29
+ plan_id: str,
30
+ category_id: str,
31
+ since_date: datetime.date | Unset = UNSET,
32
+ until_date: datetime.date | Unset = UNSET,
33
+ type_: GetTransactionsByCategoryType | Unset = UNSET,
34
+ last_knowledge_of_server: int | Unset = UNSET,
35
+ ) -> Response[ErrorResponse | HybridTransactionsResponse]:
36
+ """Execute the typed request and retain its original response JSON."""
37
+ raw = transport.send(
38
+ "getTransactionsByCategory",
39
+ RequestValues(
40
+ path={
41
+ "plan_id": plan_id,
42
+ "category_id": category_id,
43
+ },
44
+ query={
45
+ "since_date": since_date,
46
+ "until_date": until_date,
47
+ "type": type_,
48
+ "last_knowledge_of_server": last_knowledge_of_server,
49
+ },
50
+ body=UNSET,
51
+ ),
52
+ )
53
+ if raw.status == HTTPStatus.OK:
54
+ parsed = HybridTransactionsResponse.model_validate(raw.raw)
55
+ return Response(raw.status, raw.raw, raw.headers, parsed)
56
+ raise ValueError("Validated response has no generated success binding.")
57
+
58
+ @classmethod
59
+ def dispatch(
60
+ cls, transport: Transport, request: RequestValues
61
+ ) -> Response[ErrorResponse | HybridTransactionsResponse]:
62
+ """Convert validated CLI inputs and call the explicitly typed method."""
63
+ return cls.execute(
64
+ transport=transport,
65
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
66
+ category_id=request.value("path", "category_id", TypeAdapter[str](str)),
67
+ since_date=request.value(
68
+ "query",
69
+ "since_date",
70
+ TypeAdapter[datetime.date | Unset](datetime.date | Unset),
71
+ ),
72
+ until_date=request.value(
73
+ "query",
74
+ "until_date",
75
+ TypeAdapter[datetime.date | Unset](datetime.date | Unset),
76
+ ),
77
+ type_=request.value(
78
+ "query",
79
+ "type",
80
+ TypeAdapter[GetTransactionsByCategoryType | Unset](
81
+ GetTransactionsByCategoryType | Unset
82
+ ),
83
+ ),
84
+ last_knowledge_of_server=request.value(
85
+ "query",
86
+ "last_knowledge_of_server",
87
+ TypeAdapter[int | Unset](int | Unset),
88
+ ),
89
+ )
@@ -0,0 +1,87 @@
1
+ """Generated typed REST endpoint; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from http import HTTPStatus
7
+
8
+ from pydantic import TypeAdapter
9
+
10
+ from ynab_api_cli.generated.models.error_response import ErrorResponse
11
+ from ynab_api_cli.generated.models.get_transactions_by_month_type import (
12
+ GetTransactionsByMonthType,
13
+ )
14
+ from ynab_api_cli.generated.models.transactions_response import TransactionsResponse
15
+ from ynab_api_cli.transport import Transport
16
+ from ynab_api_cli.types import UNSET, RequestValues, Response, Unset
17
+
18
+
19
+ class Endpoint:
20
+ """Typed getTransactionsByMonth operation."""
21
+
22
+ @classmethod
23
+ def execute( # noqa: PLR0913 - preserve the endpoint contract.
24
+ cls,
25
+ *,
26
+ transport: Transport,
27
+ plan_id: str,
28
+ month: str,
29
+ since_date: datetime.date | Unset = UNSET,
30
+ until_date: datetime.date | Unset = UNSET,
31
+ type_: GetTransactionsByMonthType | Unset = UNSET,
32
+ last_knowledge_of_server: int | Unset = UNSET,
33
+ ) -> Response[ErrorResponse | TransactionsResponse]:
34
+ """Execute the typed request and retain its original response JSON."""
35
+ raw = transport.send(
36
+ "getTransactionsByMonth",
37
+ RequestValues(
38
+ path={
39
+ "plan_id": plan_id,
40
+ "month": month,
41
+ },
42
+ query={
43
+ "since_date": since_date,
44
+ "until_date": until_date,
45
+ "type": type_,
46
+ "last_knowledge_of_server": last_knowledge_of_server,
47
+ },
48
+ body=UNSET,
49
+ ),
50
+ )
51
+ if raw.status == HTTPStatus.OK:
52
+ parsed = TransactionsResponse.model_validate(raw.raw)
53
+ return Response(raw.status, raw.raw, raw.headers, parsed)
54
+ raise ValueError("Validated response has no generated success binding.")
55
+
56
+ @classmethod
57
+ def dispatch(
58
+ cls, transport: Transport, request: RequestValues
59
+ ) -> Response[ErrorResponse | TransactionsResponse]:
60
+ """Convert validated CLI inputs and call the explicitly typed method."""
61
+ return cls.execute(
62
+ transport=transport,
63
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
64
+ month=request.value("path", "month", TypeAdapter[str](str)),
65
+ since_date=request.value(
66
+ "query",
67
+ "since_date",
68
+ TypeAdapter[datetime.date | Unset](datetime.date | Unset),
69
+ ),
70
+ until_date=request.value(
71
+ "query",
72
+ "until_date",
73
+ TypeAdapter[datetime.date | Unset](datetime.date | Unset),
74
+ ),
75
+ type_=request.value(
76
+ "query",
77
+ "type",
78
+ TypeAdapter[GetTransactionsByMonthType | Unset](
79
+ GetTransactionsByMonthType | Unset
80
+ ),
81
+ ),
82
+ last_knowledge_of_server=request.value(
83
+ "query",
84
+ "last_knowledge_of_server",
85
+ TypeAdapter[int | Unset](int | Unset),
86
+ ),
87
+ )
@@ -0,0 +1,89 @@
1
+ """Generated typed REST endpoint; regenerate rather than editing."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime
6
+ from http import HTTPStatus
7
+
8
+ from pydantic import TypeAdapter
9
+
10
+ from ynab_api_cli.generated.models.error_response import ErrorResponse
11
+ from ynab_api_cli.generated.models.get_transactions_by_payee_type import (
12
+ GetTransactionsByPayeeType,
13
+ )
14
+ from ynab_api_cli.generated.models.hybrid_transactions_response import (
15
+ HybridTransactionsResponse,
16
+ )
17
+ from ynab_api_cli.transport import Transport
18
+ from ynab_api_cli.types import UNSET, RequestValues, Response, Unset
19
+
20
+
21
+ class Endpoint:
22
+ """Typed getTransactionsByPayee operation."""
23
+
24
+ @classmethod
25
+ def execute( # noqa: PLR0913 - preserve the endpoint contract.
26
+ cls,
27
+ *,
28
+ transport: Transport,
29
+ plan_id: str,
30
+ payee_id: str,
31
+ since_date: datetime.date | Unset = UNSET,
32
+ until_date: datetime.date | Unset = UNSET,
33
+ type_: GetTransactionsByPayeeType | Unset = UNSET,
34
+ last_knowledge_of_server: int | Unset = UNSET,
35
+ ) -> Response[ErrorResponse | HybridTransactionsResponse]:
36
+ """Execute the typed request and retain its original response JSON."""
37
+ raw = transport.send(
38
+ "getTransactionsByPayee",
39
+ RequestValues(
40
+ path={
41
+ "plan_id": plan_id,
42
+ "payee_id": payee_id,
43
+ },
44
+ query={
45
+ "since_date": since_date,
46
+ "until_date": until_date,
47
+ "type": type_,
48
+ "last_knowledge_of_server": last_knowledge_of_server,
49
+ },
50
+ body=UNSET,
51
+ ),
52
+ )
53
+ if raw.status == HTTPStatus.OK:
54
+ parsed = HybridTransactionsResponse.model_validate(raw.raw)
55
+ return Response(raw.status, raw.raw, raw.headers, parsed)
56
+ raise ValueError("Validated response has no generated success binding.")
57
+
58
+ @classmethod
59
+ def dispatch(
60
+ cls, transport: Transport, request: RequestValues
61
+ ) -> Response[ErrorResponse | HybridTransactionsResponse]:
62
+ """Convert validated CLI inputs and call the explicitly typed method."""
63
+ return cls.execute(
64
+ transport=transport,
65
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
66
+ payee_id=request.value("path", "payee_id", TypeAdapter[str](str)),
67
+ since_date=request.value(
68
+ "query",
69
+ "since_date",
70
+ TypeAdapter[datetime.date | Unset](datetime.date | Unset),
71
+ ),
72
+ until_date=request.value(
73
+ "query",
74
+ "until_date",
75
+ TypeAdapter[datetime.date | Unset](datetime.date | Unset),
76
+ ),
77
+ type_=request.value(
78
+ "query",
79
+ "type",
80
+ TypeAdapter[GetTransactionsByPayeeType | Unset](
81
+ GetTransactionsByPayeeType | Unset
82
+ ),
83
+ ),
84
+ last_knowledge_of_server=request.value(
85
+ "query",
86
+ "last_knowledge_of_server",
87
+ TypeAdapter[int | Unset](int | Unset),
88
+ ),
89
+ )