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,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.post_payee_wrapper import PostPayeeWrapper
11
+ from ynab_api_cli.generated.models.save_payee_response import SavePayeeResponse
12
+ from ynab_api_cli.transport import Transport
13
+ from ynab_api_cli.types import RequestValues, Response
14
+
15
+
16
+ class Endpoint:
17
+ """Typed createPayee operation."""
18
+
19
+ @classmethod
20
+ def execute(
21
+ cls,
22
+ *,
23
+ transport: Transport,
24
+ plan_id: str,
25
+ body: PostPayeeWrapper,
26
+ ) -> Response[ErrorResponse | SavePayeeResponse]:
27
+ """Execute the typed request and retain its original response JSON."""
28
+ raw = transport.send(
29
+ "createPayee",
30
+ RequestValues(
31
+ path={
32
+ "plan_id": plan_id,
33
+ },
34
+ query={},
35
+ body=body,
36
+ ),
37
+ )
38
+ if raw.status == HTTPStatus.CREATED:
39
+ parsed = SavePayeeResponse.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 | SavePayeeResponse]:
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
+ body=TypeAdapter[PostPayeeWrapper](PostPayeeWrapper).validate_python(
52
+ request.body
53
+ ),
54
+ )
@@ -0,0 +1,52 @@
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_response import PayeeResponse
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 getPayeeById operation."""
17
+
18
+ @classmethod
19
+ def execute(
20
+ cls,
21
+ *,
22
+ transport: Transport,
23
+ plan_id: str,
24
+ payee_id: str,
25
+ ) -> Response[ErrorResponse | PayeeResponse]:
26
+ """Execute the typed request and retain its original response JSON."""
27
+ raw = transport.send(
28
+ "getPayeeById",
29
+ RequestValues(
30
+ path={
31
+ "plan_id": plan_id,
32
+ "payee_id": payee_id,
33
+ },
34
+ query={},
35
+ body=UNSET,
36
+ ),
37
+ )
38
+ if raw.status == HTTPStatus.OK:
39
+ parsed = PayeeResponse.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 | PayeeResponse]:
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_id=request.value("path", "payee_id", TypeAdapter[str](str)),
52
+ )
@@ -0,0 +1,57 @@
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.payees_response import PayeesResponse
11
+ from ynab_api_cli.transport import Transport
12
+ from ynab_api_cli.types import UNSET, RequestValues, Response, Unset
13
+
14
+
15
+ class Endpoint:
16
+ """Typed getPayees operation."""
17
+
18
+ @classmethod
19
+ def execute(
20
+ cls,
21
+ *,
22
+ transport: Transport,
23
+ plan_id: str,
24
+ last_knowledge_of_server: int | Unset = UNSET,
25
+ ) -> Response[ErrorResponse | PayeesResponse]:
26
+ """Execute the typed request and retain its original response JSON."""
27
+ raw = transport.send(
28
+ "getPayees",
29
+ RequestValues(
30
+ path={
31
+ "plan_id": plan_id,
32
+ },
33
+ query={
34
+ "last_knowledge_of_server": last_knowledge_of_server,
35
+ },
36
+ body=UNSET,
37
+ ),
38
+ )
39
+ if raw.status == HTTPStatus.OK:
40
+ parsed = PayeesResponse.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 | PayeesResponse]:
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
+ last_knowledge_of_server=request.value(
53
+ "query",
54
+ "last_knowledge_of_server",
55
+ TypeAdapter[int | Unset](int | Unset),
56
+ ),
57
+ )
@@ -0,0 +1,57 @@
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_payee_wrapper import PatchPayeeWrapper
11
+ from ynab_api_cli.generated.models.save_payee_response import SavePayeeResponse
12
+ from ynab_api_cli.transport import Transport
13
+ from ynab_api_cli.types import RequestValues, Response
14
+
15
+
16
+ class Endpoint:
17
+ """Typed updatePayee operation."""
18
+
19
+ @classmethod
20
+ def execute(
21
+ cls,
22
+ *,
23
+ transport: Transport,
24
+ plan_id: str,
25
+ payee_id: str,
26
+ body: PatchPayeeWrapper,
27
+ ) -> Response[ErrorResponse | SavePayeeResponse]:
28
+ """Execute the typed request and retain its original response JSON."""
29
+ raw = transport.send(
30
+ "updatePayee",
31
+ RequestValues(
32
+ path={
33
+ "plan_id": plan_id,
34
+ "payee_id": payee_id,
35
+ },
36
+ query={},
37
+ body=body,
38
+ ),
39
+ )
40
+ if raw.status == HTTPStatus.OK:
41
+ parsed = SavePayeeResponse.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 | SavePayeeResponse]:
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
+ body=TypeAdapter[PatchPayeeWrapper](PatchPayeeWrapper).validate_python(
55
+ request.body
56
+ ),
57
+ )
@@ -0,0 +1,3 @@
1
+ """Generated endpoint declarations."""
2
+
3
+ from __future__ import annotations
@@ -0,0 +1,57 @@
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.plan_detail_response import PlanDetailResponse
11
+ from ynab_api_cli.transport import Transport
12
+ from ynab_api_cli.types import UNSET, RequestValues, Response, Unset
13
+
14
+
15
+ class Endpoint:
16
+ """Typed getPlanById operation."""
17
+
18
+ @classmethod
19
+ def execute(
20
+ cls,
21
+ *,
22
+ transport: Transport,
23
+ plan_id: str,
24
+ last_knowledge_of_server: int | Unset = UNSET,
25
+ ) -> Response[ErrorResponse | PlanDetailResponse]:
26
+ """Execute the typed request and retain its original response JSON."""
27
+ raw = transport.send(
28
+ "getPlanById",
29
+ RequestValues(
30
+ path={
31
+ "plan_id": plan_id,
32
+ },
33
+ query={
34
+ "last_knowledge_of_server": last_knowledge_of_server,
35
+ },
36
+ body=UNSET,
37
+ ),
38
+ )
39
+ if raw.status == HTTPStatus.OK:
40
+ parsed = PlanDetailResponse.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 | PlanDetailResponse]:
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
+ last_knowledge_of_server=request.value(
53
+ "query",
54
+ "last_knowledge_of_server",
55
+ TypeAdapter[int | Unset](int | Unset),
56
+ ),
57
+ )
@@ -0,0 +1,49 @@
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.plan_settings_response import PlanSettingsResponse
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 getPlanSettingsById operation."""
17
+
18
+ @classmethod
19
+ def execute(
20
+ cls,
21
+ *,
22
+ transport: Transport,
23
+ plan_id: str,
24
+ ) -> Response[ErrorResponse | PlanSettingsResponse]:
25
+ """Execute the typed request and retain its original response JSON."""
26
+ raw = transport.send(
27
+ "getPlanSettingsById",
28
+ RequestValues(
29
+ path={
30
+ "plan_id": plan_id,
31
+ },
32
+ query={},
33
+ body=UNSET,
34
+ ),
35
+ )
36
+ if raw.status == HTTPStatus.OK:
37
+ parsed = PlanSettingsResponse.model_validate(raw.raw)
38
+ return Response(raw.status, raw.raw, raw.headers, parsed)
39
+ raise ValueError("Validated response has no generated success binding.")
40
+
41
+ @classmethod
42
+ def dispatch(
43
+ cls, transport: Transport, request: RequestValues
44
+ ) -> Response[ErrorResponse | PlanSettingsResponse]:
45
+ """Convert validated CLI inputs and call the explicitly typed method."""
46
+ return cls.execute(
47
+ transport=transport,
48
+ plan_id=request.value("path", "plan_id", TypeAdapter[str](str)),
49
+ )
@@ -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.plan_summary_response import PlanSummaryResponse
11
+ from ynab_api_cli.transport import Transport
12
+ from ynab_api_cli.types import UNSET, RequestValues, Response, Unset
13
+
14
+
15
+ class Endpoint:
16
+ """Typed getPlans operation."""
17
+
18
+ @classmethod
19
+ def execute(
20
+ cls,
21
+ *,
22
+ transport: Transport,
23
+ include_accounts: bool | Unset = UNSET,
24
+ ) -> Response[ErrorResponse | PlanSummaryResponse]:
25
+ """Execute the typed request and retain its original response JSON."""
26
+ raw = transport.send(
27
+ "getPlans",
28
+ RequestValues(
29
+ path={},
30
+ query={
31
+ "include_accounts": include_accounts,
32
+ },
33
+ body=UNSET,
34
+ ),
35
+ )
36
+ if raw.status == HTTPStatus.OK:
37
+ parsed = PlanSummaryResponse.model_validate(raw.raw)
38
+ return Response(raw.status, raw.raw, raw.headers, parsed)
39
+ raise ValueError("Validated response has no generated success binding.")
40
+
41
+ @classmethod
42
+ def dispatch(
43
+ cls, transport: Transport, request: RequestValues
44
+ ) -> Response[ErrorResponse | PlanSummaryResponse]:
45
+ """Convert validated CLI inputs and call the explicitly typed method."""
46
+ return cls.execute(
47
+ transport=transport,
48
+ include_accounts=request.value(
49
+ "query", "include_accounts", TypeAdapter[bool | Unset](bool | Unset)
50
+ ),
51
+ )
@@ -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_scheduled_transaction_wrapper import (
11
+ PostScheduledTransactionWrapper,
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 createScheduledTransaction operation."""
22
+
23
+ @classmethod
24
+ def execute(
25
+ cls,
26
+ *,
27
+ transport: Transport,
28
+ plan_id: str,
29
+ body: PostScheduledTransactionWrapper,
30
+ ) -> Response[ErrorResponse | ScheduledTransactionResponse]:
31
+ """Execute the typed request and retain its original response JSON."""
32
+ raw = transport.send(
33
+ "createScheduledTransaction",
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 = ScheduledTransactionResponse.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 | ScheduledTransactionResponse]:
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[PostScheduledTransactionWrapper](
56
+ PostScheduledTransactionWrapper
57
+ ).validate_python(request.body),
58
+ )
@@ -0,0 +1,56 @@
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.scheduled_transaction_response import (
11
+ ScheduledTransactionResponse,
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 deleteScheduledTransaction operation."""
19
+
20
+ @classmethod
21
+ def execute(
22
+ cls,
23
+ *,
24
+ transport: Transport,
25
+ plan_id: str,
26
+ scheduled_transaction_id: str,
27
+ ) -> Response[ErrorResponse | ScheduledTransactionResponse]:
28
+ """Execute the typed request and retain its original response JSON."""
29
+ raw = transport.send(
30
+ "deleteScheduledTransaction",
31
+ RequestValues(
32
+ path={
33
+ "plan_id": plan_id,
34
+ "scheduled_transaction_id": scheduled_transaction_id,
35
+ },
36
+ query={},
37
+ body=UNSET,
38
+ ),
39
+ )
40
+ if raw.status == HTTPStatus.OK:
41
+ parsed = ScheduledTransactionResponse.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 | ScheduledTransactionResponse]:
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
+ scheduled_transaction_id=request.value(
54
+ "path", "scheduled_transaction_id", TypeAdapter[str](str)
55
+ ),
56
+ )
@@ -0,0 +1,56 @@
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.scheduled_transaction_response import (
11
+ ScheduledTransactionResponse,
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 getScheduledTransactionById operation."""
19
+
20
+ @classmethod
21
+ def execute(
22
+ cls,
23
+ *,
24
+ transport: Transport,
25
+ plan_id: str,
26
+ scheduled_transaction_id: str,
27
+ ) -> Response[ErrorResponse | ScheduledTransactionResponse]:
28
+ """Execute the typed request and retain its original response JSON."""
29
+ raw = transport.send(
30
+ "getScheduledTransactionById",
31
+ RequestValues(
32
+ path={
33
+ "plan_id": plan_id,
34
+ "scheduled_transaction_id": scheduled_transaction_id,
35
+ },
36
+ query={},
37
+ body=UNSET,
38
+ ),
39
+ )
40
+ if raw.status == HTTPStatus.OK:
41
+ parsed = ScheduledTransactionResponse.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 | ScheduledTransactionResponse]:
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
+ scheduled_transaction_id=request.value(
54
+ "path", "scheduled_transaction_id", TypeAdapter[str](str)
55
+ ),
56
+ )
@@ -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.scheduled_transactions_response import (
11
+ ScheduledTransactionsResponse,
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 getScheduledTransactions 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 | ScheduledTransactionsResponse]:
28
+ """Execute the typed request and retain its original response JSON."""
29
+ raw = transport.send(
30
+ "getScheduledTransactions",
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 = ScheduledTransactionsResponse.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 | ScheduledTransactionsResponse]:
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
+ )