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.patch_category_group_wrapper import (
11
+ PatchCategoryGroupWrapper,
12
+ )
13
+ from ynab_api_cli.generated.models.save_category_group_response import (
14
+ SaveCategoryGroupResponse,
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 updateCategoryGroup operation."""
22
+
23
+ @classmethod
24
+ def execute(
25
+ cls,
26
+ *,
27
+ transport: Transport,
28
+ plan_id: str,
29
+ category_group_id: str,
30
+ body: PatchCategoryGroupWrapper,
31
+ ) -> Response[ErrorResponse | SaveCategoryGroupResponse]:
32
+ """Execute the typed request and retain its original response JSON."""
33
+ raw = transport.send(
34
+ "updateCategoryGroup",
35
+ RequestValues(
36
+ path={
37
+ "plan_id": plan_id,
38
+ "category_group_id": category_group_id,
39
+ },
40
+ query={},
41
+ body=body,
42
+ ),
43
+ )
44
+ if raw.status == HTTPStatus.OK:
45
+ parsed = SaveCategoryGroupResponse.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 | SaveCategoryGroupResponse]:
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
+ category_group_id=request.value(
58
+ "path", "category_group_id", TypeAdapter[str](str)
59
+ ),
60
+ body=TypeAdapter[PatchCategoryGroupWrapper](
61
+ PatchCategoryGroupWrapper
62
+ ).validate_python(request.body),
63
+ )
@@ -0,0 +1,65 @@
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.patch_month_category_wrapper import (
12
+ PatchMonthCategoryWrapper,
13
+ )
14
+ from ynab_api_cli.generated.models.save_category_response import SaveCategoryResponse
15
+ from ynab_api_cli.transport import Transport
16
+ from ynab_api_cli.types import RequestValues, Response
17
+
18
+
19
+ class Endpoint:
20
+ """Typed updateMonthCategory operation."""
21
+
22
+ @classmethod
23
+ def execute(
24
+ cls,
25
+ *,
26
+ transport: Transport,
27
+ plan_id: str,
28
+ month: datetime.date,
29
+ category_id: str,
30
+ body: PatchMonthCategoryWrapper,
31
+ ) -> Response[ErrorResponse | SaveCategoryResponse]:
32
+ """Execute the typed request and retain its original response JSON."""
33
+ raw = transport.send(
34
+ "updateMonthCategory",
35
+ RequestValues(
36
+ path={
37
+ "plan_id": plan_id,
38
+ "month": month,
39
+ "category_id": category_id,
40
+ },
41
+ query={},
42
+ body=body,
43
+ ),
44
+ )
45
+ if raw.status == HTTPStatus.OK:
46
+ parsed = SaveCategoryResponse.model_validate(raw.raw)
47
+ return Response(raw.status, raw.raw, raw.headers, parsed)
48
+ raise ValueError("Validated response has no generated success binding.")
49
+
50
+ @classmethod
51
+ def dispatch(
52
+ cls, transport: Transport, request: RequestValues
53
+ ) -> Response[ErrorResponse | SaveCategoryResponse]:
54
+ """Convert validated CLI inputs and call the explicitly typed method."""
55
+ return cls.execute(
56
+ transport=transport,
57
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
58
+ month=request.value(
59
+ "path", "month", TypeAdapter[datetime.date](datetime.date)
60
+ ),
61
+ category_id=request.value("path", "category_id", TypeAdapter[str](str)),
62
+ body=TypeAdapter[PatchMonthCategoryWrapper](
63
+ PatchMonthCategoryWrapper
64
+ ).validate_python(request.body),
65
+ )
@@ -0,0 +1,3 @@
1
+ """Generated endpoint declarations."""
2
+
3
+ from __future__ import annotations
@@ -0,0 +1,51 @@
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.money_movement_groups_response import (
11
+ MoneyMovementGroupsResponse,
12
+ )
13
+ from ynab_api_cli.transport import Transport
14
+ from ynab_api_cli.types import UNSET, RequestValues, Response
15
+
16
+
17
+ class Endpoint:
18
+ """Typed getMoneyMovementGroups operation."""
19
+
20
+ @classmethod
21
+ def execute(
22
+ cls,
23
+ *,
24
+ transport: Transport,
25
+ plan_id: str,
26
+ ) -> Response[ErrorResponse | MoneyMovementGroupsResponse]:
27
+ """Execute the typed request and retain its original response JSON."""
28
+ raw = transport.send(
29
+ "getMoneyMovementGroups",
30
+ RequestValues(
31
+ path={
32
+ "plan_id": plan_id,
33
+ },
34
+ query={},
35
+ body=UNSET,
36
+ ),
37
+ )
38
+ if raw.status == HTTPStatus.OK:
39
+ parsed = MoneyMovementGroupsResponse.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 | MoneyMovementGroupsResponse]:
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
+ )
@@ -0,0 +1,57 @@
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.money_movement_groups_response import (
12
+ MoneyMovementGroupsResponse,
13
+ )
14
+ from ynab_api_cli.transport import Transport
15
+ from ynab_api_cli.types import UNSET, RequestValues, Response
16
+
17
+
18
+ class Endpoint:
19
+ """Typed getMoneyMovementGroupsByMonth operation."""
20
+
21
+ @classmethod
22
+ def execute(
23
+ cls,
24
+ *,
25
+ transport: Transport,
26
+ plan_id: str,
27
+ month: datetime.date,
28
+ ) -> Response[ErrorResponse | MoneyMovementGroupsResponse]:
29
+ """Execute the typed request and retain its original response JSON."""
30
+ raw = transport.send(
31
+ "getMoneyMovementGroupsByMonth",
32
+ RequestValues(
33
+ path={
34
+ "plan_id": plan_id,
35
+ "month": month,
36
+ },
37
+ query={},
38
+ body=UNSET,
39
+ ),
40
+ )
41
+ if raw.status == HTTPStatus.OK:
42
+ parsed = MoneyMovementGroupsResponse.model_validate(raw.raw)
43
+ return Response(raw.status, raw.raw, raw.headers, parsed)
44
+ raise ValueError("Validated response has no generated success binding.")
45
+
46
+ @classmethod
47
+ def dispatch(
48
+ cls, transport: Transport, request: RequestValues
49
+ ) -> Response[ErrorResponse | MoneyMovementGroupsResponse]:
50
+ """Convert validated CLI inputs and call the explicitly typed method."""
51
+ return cls.execute(
52
+ transport=transport,
53
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
54
+ month=request.value(
55
+ "path", "month", TypeAdapter[datetime.date](datetime.date)
56
+ ),
57
+ )
@@ -0,0 +1,51 @@
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.money_movements_response import (
11
+ MoneyMovementsResponse,
12
+ )
13
+ from ynab_api_cli.transport import Transport
14
+ from ynab_api_cli.types import UNSET, RequestValues, Response
15
+
16
+
17
+ class Endpoint:
18
+ """Typed getMoneyMovements operation."""
19
+
20
+ @classmethod
21
+ def execute(
22
+ cls,
23
+ *,
24
+ transport: Transport,
25
+ plan_id: str,
26
+ ) -> Response[ErrorResponse | MoneyMovementsResponse]:
27
+ """Execute the typed request and retain its original response JSON."""
28
+ raw = transport.send(
29
+ "getMoneyMovements",
30
+ RequestValues(
31
+ path={
32
+ "plan_id": plan_id,
33
+ },
34
+ query={},
35
+ body=UNSET,
36
+ ),
37
+ )
38
+ if raw.status == HTTPStatus.OK:
39
+ parsed = MoneyMovementsResponse.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 | MoneyMovementsResponse]:
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
+ )
@@ -0,0 +1,57 @@
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.money_movements_response import (
12
+ MoneyMovementsResponse,
13
+ )
14
+ from ynab_api_cli.transport import Transport
15
+ from ynab_api_cli.types import UNSET, RequestValues, Response
16
+
17
+
18
+ class Endpoint:
19
+ """Typed getMoneyMovementsByMonth operation."""
20
+
21
+ @classmethod
22
+ def execute(
23
+ cls,
24
+ *,
25
+ transport: Transport,
26
+ plan_id: str,
27
+ month: datetime.date,
28
+ ) -> Response[ErrorResponse | MoneyMovementsResponse]:
29
+ """Execute the typed request and retain its original response JSON."""
30
+ raw = transport.send(
31
+ "getMoneyMovementsByMonth",
32
+ RequestValues(
33
+ path={
34
+ "plan_id": plan_id,
35
+ "month": month,
36
+ },
37
+ query={},
38
+ body=UNSET,
39
+ ),
40
+ )
41
+ if raw.status == HTTPStatus.OK:
42
+ parsed = MoneyMovementsResponse.model_validate(raw.raw)
43
+ return Response(raw.status, raw.raw, raw.headers, parsed)
44
+ raise ValueError("Validated response has no generated success binding.")
45
+
46
+ @classmethod
47
+ def dispatch(
48
+ cls, transport: Transport, request: RequestValues
49
+ ) -> Response[ErrorResponse | MoneyMovementsResponse]:
50
+ """Convert validated CLI inputs and call the explicitly typed method."""
51
+ return cls.execute(
52
+ transport=transport,
53
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
54
+ month=request.value(
55
+ "path", "month", TypeAdapter[datetime.date](datetime.date)
56
+ ),
57
+ )
@@ -0,0 +1,3 @@
1
+ """Generated endpoint declarations."""
2
+
3
+ from __future__ import annotations
@@ -0,0 +1,55 @@
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.month_detail_response import MonthDetailResponse
12
+ from ynab_api_cli.transport import Transport
13
+ from ynab_api_cli.types import UNSET, RequestValues, Response
14
+
15
+
16
+ class Endpoint:
17
+ """Typed getPlanMonth operation."""
18
+
19
+ @classmethod
20
+ def execute(
21
+ cls,
22
+ *,
23
+ transport: Transport,
24
+ plan_id: str,
25
+ month: datetime.date,
26
+ ) -> Response[ErrorResponse | MonthDetailResponse]:
27
+ """Execute the typed request and retain its original response JSON."""
28
+ raw = transport.send(
29
+ "getPlanMonth",
30
+ RequestValues(
31
+ path={
32
+ "plan_id": plan_id,
33
+ "month": month,
34
+ },
35
+ query={},
36
+ body=UNSET,
37
+ ),
38
+ )
39
+ if raw.status == HTTPStatus.OK:
40
+ parsed = MonthDetailResponse.model_validate(raw.raw)
41
+ return Response(raw.status, raw.raw, raw.headers, parsed)
42
+ raise ValueError("Validated response has no generated success binding.")
43
+
44
+ @classmethod
45
+ def dispatch(
46
+ cls, transport: Transport, request: RequestValues
47
+ ) -> Response[ErrorResponse | MonthDetailResponse]:
48
+ """Convert validated CLI inputs and call the explicitly typed method."""
49
+ return cls.execute(
50
+ transport=transport,
51
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
52
+ month=request.value(
53
+ "path", "month", TypeAdapter[datetime.date](datetime.date)
54
+ ),
55
+ )
@@ -0,0 +1,59 @@
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.month_summaries_response import (
11
+ MonthSummariesResponse,
12
+ )
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 getPlanMonths operation."""
19
+
20
+ @classmethod
21
+ def execute(
22
+ cls,
23
+ *,
24
+ transport: Transport,
25
+ plan_id: str,
26
+ last_knowledge_of_server: int | Unset = UNSET,
27
+ ) -> Response[ErrorResponse | MonthSummariesResponse]:
28
+ """Execute the typed request and retain its original response JSON."""
29
+ raw = transport.send(
30
+ "getPlanMonths",
31
+ RequestValues(
32
+ path={
33
+ "plan_id": plan_id,
34
+ },
35
+ query={
36
+ "last_knowledge_of_server": last_knowledge_of_server,
37
+ },
38
+ body=UNSET,
39
+ ),
40
+ )
41
+ if raw.status == HTTPStatus.OK:
42
+ parsed = MonthSummariesResponse.model_validate(raw.raw)
43
+ return Response(raw.status, raw.raw, raw.headers, parsed)
44
+ raise ValueError("Validated response has no generated success binding.")
45
+
46
+ @classmethod
47
+ def dispatch(
48
+ cls, transport: Transport, request: RequestValues
49
+ ) -> Response[ErrorResponse | MonthSummariesResponse]:
50
+ """Convert validated CLI inputs and call the explicitly typed method."""
51
+ return cls.execute(
52
+ transport=transport,
53
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
54
+ last_knowledge_of_server=request.value(
55
+ "query",
56
+ "last_knowledge_of_server",
57
+ TypeAdapter[int | Unset](int | Unset),
58
+ ),
59
+ )
@@ -0,0 +1,3 @@
1
+ """Generated endpoint declarations."""
2
+
3
+ from __future__ import annotations
@@ -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.payee_location_response import PayeeLocationResponse
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 getPayeeLocationById operation."""
17
+
18
+ @classmethod
19
+ def execute(
20
+ cls,
21
+ *,
22
+ transport: Transport,
23
+ plan_id: str,
24
+ payee_location_id: str,
25
+ ) -> Response[ErrorResponse | PayeeLocationResponse]:
26
+ """Execute the typed request and retain its original response JSON."""
27
+ raw = transport.send(
28
+ "getPayeeLocationById",
29
+ RequestValues(
30
+ path={
31
+ "plan_id": plan_id,
32
+ "payee_location_id": payee_location_id,
33
+ },
34
+ query={},
35
+ body=UNSET,
36
+ ),
37
+ )
38
+ if raw.status == HTTPStatus.OK:
39
+ parsed = PayeeLocationResponse.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 | PayeeLocationResponse]:
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
+ payee_location_id=request.value(
52
+ "path", "payee_location_id", TypeAdapter[str](str)
53
+ ),
54
+ )
@@ -0,0 +1,51 @@
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.payee_locations_response import (
11
+ PayeeLocationsResponse,
12
+ )
13
+ from ynab_api_cli.transport import Transport
14
+ from ynab_api_cli.types import UNSET, RequestValues, Response
15
+
16
+
17
+ class Endpoint:
18
+ """Typed getPayeeLocations operation."""
19
+
20
+ @classmethod
21
+ def execute(
22
+ cls,
23
+ *,
24
+ transport: Transport,
25
+ plan_id: str,
26
+ ) -> Response[ErrorResponse | PayeeLocationsResponse]:
27
+ """Execute the typed request and retain its original response JSON."""
28
+ raw = transport.send(
29
+ "getPayeeLocations",
30
+ RequestValues(
31
+ path={
32
+ "plan_id": plan_id,
33
+ },
34
+ query={},
35
+ body=UNSET,
36
+ ),
37
+ )
38
+ if raw.status == HTTPStatus.OK:
39
+ parsed = PayeeLocationsResponse.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 | PayeeLocationsResponse]:
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
+ )
@@ -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.payee_locations_response import (
11
+ PayeeLocationsResponse,
12
+ )
13
+ from ynab_api_cli.transport import Transport
14
+ from ynab_api_cli.types import UNSET, RequestValues, Response
15
+
16
+
17
+ class Endpoint:
18
+ """Typed getPayeeLocationsByPayee operation."""
19
+
20
+ @classmethod
21
+ def execute(
22
+ cls,
23
+ *,
24
+ transport: Transport,
25
+ plan_id: str,
26
+ payee_id: str,
27
+ ) -> Response[ErrorResponse | PayeeLocationsResponse]:
28
+ """Execute the typed request and retain its original response JSON."""
29
+ raw = transport.send(
30
+ "getPayeeLocationsByPayee",
31
+ RequestValues(
32
+ path={
33
+ "plan_id": plan_id,
34
+ "payee_id": payee_id,
35
+ },
36
+ query={},
37
+ body=UNSET,
38
+ ),
39
+ )
40
+ if raw.status == HTTPStatus.OK:
41
+ parsed = PayeeLocationsResponse.model_validate(raw.raw)
42
+ return Response(raw.status, raw.raw, raw.headers, parsed)
43
+ raise ValueError("Validated response has no generated success binding.")
44
+
45
+ @classmethod
46
+ def dispatch(
47
+ cls, transport: Transport, request: RequestValues
48
+ ) -> Response[ErrorResponse | PayeeLocationsResponse]:
49
+ """Convert validated CLI inputs and call the explicitly typed method."""
50
+ return cls.execute(
51
+ transport=transport,
52
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
53
+ payee_id=request.value("path", "payee_id", TypeAdapter[str](str)),
54
+ )
@@ -0,0 +1,3 @@
1
+ """Generated endpoint declarations."""
2
+
3
+ from __future__ import annotations