holder-python 0.2.5__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 (391) hide show
  1. holder/__init__.py +21 -0
  2. holder/client.py +182 -0
  3. holder/collections.py +70 -0
  4. holder/events.py +238 -0
  5. holder/exceptions.py +35 -0
  6. holder/generated/__init__.py +8 -0
  7. holder/generated/api/__init__.py +1 -0
  8. holder/generated/api/default/__init__.py +1 -0
  9. holder/generated/api/default/delete_ai_messages_message_id.py +166 -0
  10. holder/generated/api/default/delete_ai_messages_message_id_links.py +205 -0
  11. holder/generated/api/default/delete_ai_providers_credentials_provider.py +168 -0
  12. holder/generated/api/default/delete_ai_threads_thread_id.py +166 -0
  13. holder/generated/api/default/delete_cards_card_id.py +225 -0
  14. holder/generated/api/default/delete_cards_card_id_links.py +205 -0
  15. holder/generated/api/default/delete_cards_card_id_milestones_milestone_id.py +175 -0
  16. holder/generated/api/default/delete_cards_card_id_resources.py +197 -0
  17. holder/generated/api/default/delete_cards_card_id_tags.py +197 -0
  18. holder/generated/api/default/delete_locations_location_id.py +105 -0
  19. holder/generated/api/default/delete_locations_location_id_binding.py +102 -0
  20. holder/generated/api/default/delete_projects_project_id.py +187 -0
  21. holder/generated/api/default/delete_resources_resource_id.py +161 -0
  22. holder/generated/api/default/delete_trash.py +181 -0
  23. holder/generated/api/default/delete_trash_type_id.py +175 -0
  24. holder/generated/api/default/get_ai_capabilities.py +166 -0
  25. holder/generated/api/default/get_ai_catalog_json.py +134 -0
  26. holder/generated/api/default/get_ai_catalog_yaml.py +132 -0
  27. holder/generated/api/default/get_ai_local_models_config.py +134 -0
  28. holder/generated/api/default/get_ai_messages.py +186 -0
  29. holder/generated/api/default/get_ai_messages_message_id.py +166 -0
  30. holder/generated/api/default/get_ai_messages_message_id_backlinks.py +194 -0
  31. holder/generated/api/default/get_ai_messages_message_id_links.py +194 -0
  32. holder/generated/api/default/get_ai_providers_catalog.py +139 -0
  33. holder/generated/api/default/get_ai_providers_credentials.py +136 -0
  34. holder/generated/api/default/get_ai_runner_pull_job_id.py +171 -0
  35. holder/generated/api/default/get_ai_runner_pull_job_id_events.py +218 -0
  36. holder/generated/api/default/get_ai_runs.py +186 -0
  37. holder/generated/api/default/get_ai_runs_run_id.py +166 -0
  38. holder/generated/api/default/get_ai_runs_run_id_events.py +213 -0
  39. holder/generated/api/default/get_ai_status.py +134 -0
  40. holder/generated/api/default/get_ai_threads.py +171 -0
  41. holder/generated/api/default/get_ai_threads_thread_id.py +166 -0
  42. holder/generated/api/default/get_calendar.py +221 -0
  43. holder/generated/api/default/get_cards.py +286 -0
  44. holder/generated/api/default/get_cards_card_id.py +166 -0
  45. holder/generated/api/default/get_cards_card_id_backlinks.py +194 -0
  46. holder/generated/api/default/get_cards_card_id_links.py +194 -0
  47. holder/generated/api/default/get_cards_card_id_milestones.py +173 -0
  48. holder/generated/api/default/get_cards_context.py +226 -0
  49. holder/generated/api/default/get_event_cursor.py +198 -0
  50. holder/generated/api/default/get_git_providers_json.py +134 -0
  51. holder/generated/api/default/get_git_providers_yaml.py +132 -0
  52. holder/generated/api/default/get_health.py +134 -0
  53. holder/generated/api/default/get_imports_job_id.py +159 -0
  54. holder/generated/api/default/get_locations.py +160 -0
  55. holder/generated/api/default/get_locations_location_id.py +157 -0
  56. holder/generated/api/default/get_openapi_yaml.py +132 -0
  57. holder/generated/api/default/get_ping.py +128 -0
  58. holder/generated/api/default/get_projects.py +261 -0
  59. holder/generated/api/default/get_projects_project_id.py +166 -0
  60. holder/generated/api/default/get_projects_project_id_cards.py +321 -0
  61. holder/generated/api/default/get_projects_project_id_encryption_check.py +166 -0
  62. holder/generated/api/default/get_projects_project_id_git_sync_status.py +171 -0
  63. holder/generated/api/default/get_projects_project_id_history.py +246 -0
  64. holder/generated/api/default/get_projects_project_id_history_cards_card_id.py +243 -0
  65. holder/generated/api/default/get_projects_project_id_history_cards_card_id_compare.py +286 -0
  66. holder/generated/api/default/get_projects_project_id_history_cards_card_id_snapshot.py +225 -0
  67. holder/generated/api/default/get_projects_project_id_tags.py +171 -0
  68. holder/generated/api/default/get_resources.py +242 -0
  69. holder/generated/api/default/get_resources_resource_id.py +161 -0
  70. holder/generated/api/default/get_resources_resource_id_assets_asset_id_content.py +247 -0
  71. holder/generated/api/default/get_search_ai.py +216 -0
  72. holder/generated/api/default/get_search_cards.py +216 -0
  73. holder/generated/api/default/get_trash.py +181 -0
  74. holder/generated/api/default/patch_ai_messages_message_id.py +192 -0
  75. holder/generated/api/default/patch_ai_threads_thread_id.py +192 -0
  76. holder/generated/api/default/patch_cards_card_id.py +192 -0
  77. holder/generated/api/default/patch_cards_card_id_milestones_milestone_id.py +214 -0
  78. holder/generated/api/default/patch_locations_location_id.py +117 -0
  79. holder/generated/api/default/patch_projects_project_id.py +192 -0
  80. holder/generated/api/default/patch_resources_resource_id.py +192 -0
  81. holder/generated/api/default/post_ai_messages.py +176 -0
  82. holder/generated/api/default/post_ai_messages_capture.py +181 -0
  83. holder/generated/api/default/post_ai_messages_message_id_links.py +192 -0
  84. holder/generated/api/default/post_ai_messages_message_id_restore.py +166 -0
  85. holder/generated/api/default/post_ai_runner_pull.py +181 -0
  86. holder/generated/api/default/post_ai_runner_retry.py +139 -0
  87. holder/generated/api/default/post_ai_runs.py +194 -0
  88. holder/generated/api/default/post_ai_threads.py +176 -0
  89. holder/generated/api/default/post_bye.py +166 -0
  90. holder/generated/api/default/post_card_references_resolve.py +181 -0
  91. holder/generated/api/default/post_cards.py +176 -0
  92. holder/generated/api/default/post_cards_card_id_links.py +192 -0
  93. holder/generated/api/default/post_cards_card_id_milestones.py +199 -0
  94. holder/generated/api/default/post_cards_card_id_move.py +222 -0
  95. holder/generated/api/default/post_cards_card_id_resources.py +197 -0
  96. holder/generated/api/default/post_cards_card_id_restore.py +186 -0
  97. holder/generated/api/default/post_cards_card_id_tags.py +197 -0
  98. holder/generated/api/default/post_imports.py +160 -0
  99. holder/generated/api/default/post_locations.py +160 -0
  100. holder/generated/api/default/post_locations_location_id_test.py +105 -0
  101. holder/generated/api/default/post_projects.py +171 -0
  102. holder/generated/api/default/post_projects_project_id_git_pull.py +211 -0
  103. holder/generated/api/default/post_projects_project_id_git_push.py +193 -0
  104. holder/generated/api/default/post_projects_project_id_git_sync.py +207 -0
  105. holder/generated/api/default/post_projects_project_id_git_test_remote.py +205 -0
  106. holder/generated/api/default/post_projects_project_id_history_cards_card_id_restore.py +240 -0
  107. holder/generated/api/default/post_projects_project_id_recovery_token_export.py +196 -0
  108. holder/generated/api/default/post_projects_project_id_recovery_token_import.py +196 -0
  109. holder/generated/api/default/post_projects_project_id_repair_hierarchy.py +240 -0
  110. holder/generated/api/default/post_rebuild.py +176 -0
  111. holder/generated/api/default/post_recovery_token_import.py +185 -0
  112. holder/generated/api/default/post_reindex.py +139 -0
  113. holder/generated/api/default/post_resources.py +176 -0
  114. holder/generated/api/default/put_ai_local_models_config.py +173 -0
  115. holder/generated/api/default/put_ai_providers_credentials.py +175 -0
  116. holder/generated/api/default/put_locations_location_id_binding.py +117 -0
  117. holder/generated/api/default/put_locations_preferred.py +107 -0
  118. holder/generated/api/default/stream_changes.py +256 -0
  119. holder/generated/client.py +280 -0
  120. holder/generated/errors.py +16 -0
  121. holder/generated/models/__init__.py +569 -0
  122. holder/generated/models/ai_local_model_config_data.py +111 -0
  123. holder/generated/models/ai_local_model_config_response.py +78 -0
  124. holder/generated/models/ai_local_model_config_update_request.py +134 -0
  125. holder/generated/models/ai_message.py +204 -0
  126. holder/generated/models/ai_message_capture_request.py +246 -0
  127. holder/generated/models/ai_message_capture_request_context_type_0.py +46 -0
  128. holder/generated/models/ai_message_capture_response.py +78 -0
  129. holder/generated/models/ai_message_capture_response_data.py +78 -0
  130. holder/generated/models/ai_message_create_request.py +186 -0
  131. holder/generated/models/ai_message_create_response.py +78 -0
  132. holder/generated/models/ai_message_create_response_data.py +62 -0
  133. holder/generated/models/ai_message_get_response.py +76 -0
  134. holder/generated/models/ai_message_list_response.py +84 -0
  135. holder/generated/models/ai_message_update_request.py +203 -0
  136. holder/generated/models/ai_message_update_response.py +78 -0
  137. holder/generated/models/ai_message_update_response_data.py +62 -0
  138. holder/generated/models/ai_provider_catalog_provider.py +265 -0
  139. holder/generated/models/ai_provider_catalog_provider_api_type_0.py +46 -0
  140. holder/generated/models/ai_provider_catalog_provider_auth_type_0.py +46 -0
  141. holder/generated/models/ai_provider_catalog_provider_models_item.py +46 -0
  142. holder/generated/models/ai_provider_catalog_response.py +78 -0
  143. holder/generated/models/ai_provider_catalog_response_data.py +100 -0
  144. holder/generated/models/ai_provider_credential.py +94 -0
  145. holder/generated/models/ai_provider_credential_delete_response.py +80 -0
  146. holder/generated/models/ai_provider_credential_delete_response_data.py +62 -0
  147. holder/generated/models/ai_provider_credential_upsert_request.py +92 -0
  148. holder/generated/models/ai_provider_credential_upsert_response.py +78 -0
  149. holder/generated/models/ai_provider_credentials_list_response.py +80 -0
  150. holder/generated/models/ai_provider_credentials_list_response_data.py +78 -0
  151. holder/generated/models/ai_run_create_request.py +133 -0
  152. holder/generated/models/ai_run_create_request_context.py +46 -0
  153. holder/generated/models/ai_run_event_data.py +146 -0
  154. holder/generated/models/ai_run_get_response.py +76 -0
  155. holder/generated/models/ai_run_item.py +328 -0
  156. holder/generated/models/ai_run_item_policy_trace_type_0.py +46 -0
  157. holder/generated/models/ai_run_list_response.py +84 -0
  158. holder/generated/models/ai_status_data.py +186 -0
  159. holder/generated/models/ai_status_pull_job.py +130 -0
  160. holder/generated/models/ai_status_response.py +76 -0
  161. holder/generated/models/ai_thread.py +116 -0
  162. holder/generated/models/ai_thread_create_request.py +119 -0
  163. holder/generated/models/ai_thread_create_response.py +78 -0
  164. holder/generated/models/ai_thread_create_response_data.py +62 -0
  165. holder/generated/models/ai_thread_get_response.py +76 -0
  166. holder/generated/models/ai_thread_list_response.py +84 -0
  167. holder/generated/models/ai_thread_patch_response.py +78 -0
  168. holder/generated/models/ai_thread_patch_response_data.py +62 -0
  169. holder/generated/models/ai_thread_update_request.py +104 -0
  170. holder/generated/models/asset_import_job.py +141 -0
  171. holder/generated/models/asset_import_job_response.py +76 -0
  172. holder/generated/models/asset_import_job_status.py +13 -0
  173. holder/generated/models/asset_import_request.py +86 -0
  174. holder/generated/models/asset_placement.py +96 -0
  175. holder/generated/models/asset_placement_encoding.py +9 -0
  176. holder/generated/models/bye_response.py +62 -0
  177. holder/generated/models/calendar_card_activity.py +86 -0
  178. holder/generated/models/card_context_breadcrumb.py +113 -0
  179. holder/generated/models/card_context_breadcrumb_type.py +9 -0
  180. holder/generated/models/card_context_card.py +161 -0
  181. holder/generated/models/card_context_data.py +124 -0
  182. holder/generated/models/card_context_data_project.py +70 -0
  183. holder/generated/models/card_context_response.py +76 -0
  184. holder/generated/models/card_create_request.py +147 -0
  185. holder/generated/models/card_create_response.py +78 -0
  186. holder/generated/models/card_create_response_data.py +70 -0
  187. holder/generated/models/card_data.py +160 -0
  188. holder/generated/models/card_get_response.py +76 -0
  189. holder/generated/models/card_history_author.py +70 -0
  190. holder/generated/models/card_history_comparison_data.py +110 -0
  191. holder/generated/models/card_history_comparison_response.py +78 -0
  192. holder/generated/models/card_history_diff_line.py +100 -0
  193. holder/generated/models/card_history_diff_line_origin.py +10 -0
  194. holder/generated/models/card_history_entry.py +172 -0
  195. holder/generated/models/card_history_entry_kind.py +16 -0
  196. holder/generated/models/card_history_entry_saves_item.py +94 -0
  197. holder/generated/models/card_history_page_data.py +114 -0
  198. holder/generated/models/card_history_page_response.py +76 -0
  199. holder/generated/models/card_history_restore_response.py +80 -0
  200. holder/generated/models/card_history_restore_response_data.py +108 -0
  201. holder/generated/models/card_history_snapshot_response.py +80 -0
  202. holder/generated/models/card_history_snapshot_response_data.py +76 -0
  203. holder/generated/models/card_history_version.py +86 -0
  204. holder/generated/models/card_link.py +116 -0
  205. holder/generated/models/card_link_create_request.py +111 -0
  206. holder/generated/models/card_link_create_response.py +76 -0
  207. holder/generated/models/card_link_delete_request.py +80 -0
  208. holder/generated/models/card_link_list_response.py +84 -0
  209. holder/generated/models/card_list_item.py +161 -0
  210. holder/generated/models/card_list_response.py +84 -0
  211. holder/generated/models/card_move_intent.py +15 -0
  212. holder/generated/models/card_move_request.py +134 -0
  213. holder/generated/models/card_move_response.py +76 -0
  214. holder/generated/models/card_move_result.py +114 -0
  215. holder/generated/models/card_page.py +90 -0
  216. holder/generated/models/card_page_item.py +170 -0
  217. holder/generated/models/card_page_response.py +76 -0
  218. holder/generated/models/card_patch_response.py +78 -0
  219. holder/generated/models/card_patch_response_data.py +62 -0
  220. holder/generated/models/card_reference_candidate.py +84 -0
  221. holder/generated/models/card_reference_resolve_data.py +129 -0
  222. holder/generated/models/card_reference_resolve_data_match_kind.py +10 -0
  223. holder/generated/models/card_reference_resolve_data_status.py +10 -0
  224. holder/generated/models/card_reference_resolve_request.py +82 -0
  225. holder/generated/models/card_reference_resolve_request_scope.py +10 -0
  226. holder/generated/models/card_reference_resolve_response.py +78 -0
  227. holder/generated/models/card_tag_mutation_request.py +70 -0
  228. holder/generated/models/card_tag_mutation_response.py +78 -0
  229. holder/generated/models/card_tag_mutation_result.py +88 -0
  230. holder/generated/models/card_tag_mutation_result_outcome.py +12 -0
  231. holder/generated/models/card_update_request.py +122 -0
  232. holder/generated/models/caste_info.py +85 -0
  233. holder/generated/models/caste_info_name.py +12 -0
  234. holder/generated/models/caste_recommended_model.py +143 -0
  235. holder/generated/models/caste_recommended_model_required_caste.py +12 -0
  236. holder/generated/models/change_event_data.py +109 -0
  237. holder/generated/models/change_event_data_entity.py +14 -0
  238. holder/generated/models/delete_cards_card_id_children.py +9 -0
  239. holder/generated/models/delete_cards_card_id_resources_body.py +70 -0
  240. holder/generated/models/error.py +70 -0
  241. holder/generated/models/error_response.py +76 -0
  242. holder/generated/models/event_checkpoint.py +92 -0
  243. holder/generated/models/event_checkpoint_git_revisions.py +66 -0
  244. holder/generated/models/event_checkpoint_history_urls.py +48 -0
  245. holder/generated/models/event_checkpoint_response.py +76 -0
  246. holder/generated/models/event_resync_data.py +116 -0
  247. holder/generated/models/event_resync_data_reason.py +9 -0
  248. holder/generated/models/get_ai_catalog_json_response_200.py +46 -0
  249. holder/generated/models/get_ai_messages_message_id_backlinks_include_deleted.py +9 -0
  250. holder/generated/models/get_ai_messages_message_id_links_include_deleted.py +9 -0
  251. holder/generated/models/get_cards_card_id_backlinks_include_deleted.py +9 -0
  252. holder/generated/models/get_cards_card_id_links_include_deleted.py +9 -0
  253. holder/generated/models/get_cards_context_order.py +10 -0
  254. holder/generated/models/get_cards_order.py +10 -0
  255. holder/generated/models/get_cards_view.py +9 -0
  256. holder/generated/models/get_git_providers_json_response_200.py +46 -0
  257. holder/generated/models/get_locations_location_id_response_200.py +46 -0
  258. holder/generated/models/get_ping_response_200.py +8 -0
  259. holder/generated/models/get_projects_order.py +13 -0
  260. holder/generated/models/get_projects_project_id_cards_order.py +9 -0
  261. holder/generated/models/get_projects_project_id_cards_parent_type_0.py +8 -0
  262. holder/generated/models/get_projects_project_id_history_cards_card_id_compare_mode.py +9 -0
  263. holder/generated/models/get_projects_project_id_history_kind.py +13 -0
  264. holder/generated/models/health_data.py +110 -0
  265. holder/generated/models/health_data_crypt_filter.py +78 -0
  266. holder/generated/models/health_response.py +76 -0
  267. holder/generated/models/hierarchy_repair.py +100 -0
  268. holder/generated/models/hierarchy_repair_move.py +76 -0
  269. holder/generated/models/hierarchy_repair_request.py +62 -0
  270. holder/generated/models/hierarchy_repair_response.py +76 -0
  271. holder/generated/models/local_model.py +91 -0
  272. holder/generated/models/location_binding_request.py +81 -0
  273. holder/generated/models/location_binding_request_values.py +46 -0
  274. holder/generated/models/milestone.py +177 -0
  275. holder/generated/models/milestone_create_request.py +135 -0
  276. holder/generated/models/milestone_list_response.py +84 -0
  277. holder/generated/models/milestone_remove_response.py +78 -0
  278. holder/generated/models/milestone_remove_result.py +79 -0
  279. holder/generated/models/milestone_response.py +76 -0
  280. holder/generated/models/milestone_update_request.py +116 -0
  281. holder/generated/models/patch_locations_location_id_body.py +90 -0
  282. holder/generated/models/patch_locations_location_id_body_configuration.py +46 -0
  283. holder/generated/models/post_ai_runner_pull_body.py +62 -0
  284. holder/generated/models/post_cards_card_id_resources_body.py +70 -0
  285. holder/generated/models/post_locations_response_201.py +46 -0
  286. holder/generated/models/project.py +197 -0
  287. holder/generated/models/project_calendar_response.py +78 -0
  288. holder/generated/models/project_calendar_response_data.py +136 -0
  289. holder/generated/models/project_create_request.py +177 -0
  290. holder/generated/models/project_create_request_privacy_mode.py +9 -0
  291. holder/generated/models/project_create_response.py +78 -0
  292. holder/generated/models/project_create_response_data.py +62 -0
  293. holder/generated/models/project_delete_response.py +78 -0
  294. holder/generated/models/project_delete_response_data.py +62 -0
  295. holder/generated/models/project_encryption_check.py +94 -0
  296. holder/generated/models/project_encryption_check_response.py +80 -0
  297. holder/generated/models/project_encryption_check_response_data.py +92 -0
  298. holder/generated/models/project_encryption_check_response_data_privacy_mode.py +9 -0
  299. holder/generated/models/project_get_response.py +76 -0
  300. holder/generated/models/project_git_push_request.py +95 -0
  301. holder/generated/models/project_git_push_response.py +78 -0
  302. holder/generated/models/project_git_push_response_data.py +199 -0
  303. holder/generated/models/project_git_push_response_data_status.py +15 -0
  304. holder/generated/models/project_git_sync_operation_response.py +80 -0
  305. holder/generated/models/project_git_sync_operation_response_data.py +163 -0
  306. holder/generated/models/project_git_sync_operation_response_data_pull.py +96 -0
  307. holder/generated/models/project_git_sync_operation_response_data_pull_status.py +11 -0
  308. holder/generated/models/project_git_sync_operation_response_data_push.py +118 -0
  309. holder/generated/models/project_git_sync_operation_response_data_push_status.py +15 -0
  310. holder/generated/models/project_git_sync_operation_response_data_status.py +9 -0
  311. holder/generated/models/project_git_sync_request.py +94 -0
  312. holder/generated/models/project_git_sync_status_response.py +80 -0
  313. holder/generated/models/project_git_sync_status_response_data.py +76 -0
  314. holder/generated/models/project_git_test_remote_request.py +96 -0
  315. holder/generated/models/project_git_test_remote_response.py +80 -0
  316. holder/generated/models/project_git_test_remote_response_data.py +151 -0
  317. holder/generated/models/project_git_test_remote_response_data_status.py +14 -0
  318. holder/generated/models/project_history_activity.py +138 -0
  319. holder/generated/models/project_history_affected_object.py +74 -0
  320. holder/generated/models/project_history_affected_object_kind.py +13 -0
  321. holder/generated/models/project_history_page_data.py +115 -0
  322. holder/generated/models/project_history_page_response.py +78 -0
  323. holder/generated/models/project_list_response.py +84 -0
  324. holder/generated/models/project_privacy_mode.py +9 -0
  325. holder/generated/models/project_recovery_token_export_request.py +62 -0
  326. holder/generated/models/project_recovery_token_export_response.py +80 -0
  327. holder/generated/models/project_recovery_token_export_response_data.py +78 -0
  328. holder/generated/models/project_recovery_token_import_request.py +70 -0
  329. holder/generated/models/project_recovery_token_import_response.py +80 -0
  330. holder/generated/models/project_recovery_token_import_response_data.py +62 -0
  331. holder/generated/models/project_sync.py +227 -0
  332. holder/generated/models/project_tag.py +70 -0
  333. holder/generated/models/project_tag_list_response.py +84 -0
  334. holder/generated/models/project_update_request.py +181 -0
  335. holder/generated/models/project_update_request_privacy_mode.py +9 -0
  336. holder/generated/models/project_update_response.py +78 -0
  337. holder/generated/models/project_update_response_data.py +75 -0
  338. holder/generated/models/put_locations_preferred_body.py +70 -0
  339. holder/generated/models/rebuild_data.py +94 -0
  340. holder/generated/models/rebuild_request.py +62 -0
  341. holder/generated/models/rebuild_response.py +76 -0
  342. holder/generated/models/recovery_token_import_auto_response.py +80 -0
  343. holder/generated/models/recovery_token_import_auto_response_data.py +141 -0
  344. holder/generated/models/recovery_token_import_auto_response_data_pull_status.py +10 -0
  345. holder/generated/models/reindex_data.py +62 -0
  346. holder/generated/models/reindex_response.py +76 -0
  347. holder/generated/models/resource.py +134 -0
  348. holder/generated/models/resource_asset.py +140 -0
  349. holder/generated/models/resource_attachment_response.py +80 -0
  350. holder/generated/models/resource_attachment_response_data.py +90 -0
  351. holder/generated/models/resource_attachment_response_data_outcome.py +11 -0
  352. holder/generated/models/resource_create_request.py +129 -0
  353. holder/generated/models/resource_delete_response.py +78 -0
  354. holder/generated/models/resource_delete_response_data.py +62 -0
  355. holder/generated/models/resource_list_response.py +134 -0
  356. holder/generated/models/resource_metadata.py +55 -0
  357. holder/generated/models/resource_response.py +76 -0
  358. holder/generated/models/resource_update_request.py +102 -0
  359. holder/generated/models/runner_capabilities_data.py +220 -0
  360. holder/generated/models/runner_capabilities_response.py +78 -0
  361. holder/generated/models/runner_pull_job.py +122 -0
  362. holder/generated/models/runner_pull_progress.py +86 -0
  363. holder/generated/models/runner_pull_start_response.py +78 -0
  364. holder/generated/models/runner_pull_start_response_data.py +78 -0
  365. holder/generated/models/runner_pull_status_response.py +76 -0
  366. holder/generated/models/search_card_item.py +102 -0
  367. holder/generated/models/search_cards_response.py +84 -0
  368. holder/generated/models/search_message_item.py +86 -0
  369. holder/generated/models/search_messages_response.py +84 -0
  370. holder/generated/models/storage_location.py +149 -0
  371. holder/generated/models/storage_location_configuration.py +48 -0
  372. holder/generated/models/storage_location_list_response.py +100 -0
  373. holder/generated/models/storage_location_provider.py +9 -0
  374. holder/generated/models/storage_location_request.py +118 -0
  375. holder/generated/models/storage_location_request_configuration.py +46 -0
  376. holder/generated/models/storage_location_request_provider.py +9 -0
  377. holder/generated/models/trash_delete_response.py +78 -0
  378. holder/generated/models/trash_delete_response_data.py +46 -0
  379. holder/generated/models/trash_item.py +211 -0
  380. holder/generated/models/trash_list_response.py +84 -0
  381. holder/generated/types.py +54 -0
  382. holder/library.py +15 -0
  383. holder/models/__init__.py +15 -0
  384. holder/models/card.py +272 -0
  385. holder/models/project.py +207 -0
  386. holder/models/search.py +66 -0
  387. holder/models/tag.py +117 -0
  388. holder/py.typed +0 -0
  389. holder_python-0.2.5.dist-info/METADATA +120 -0
  390. holder_python-0.2.5.dist-info/RECORD +391 -0
  391. holder_python-0.2.5.dist-info/WHEEL +4 -0
@@ -0,0 +1,78 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import TYPE_CHECKING, Any, TypeVar
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from typing_extensions import Self
9
+
10
+ if TYPE_CHECKING:
11
+ from ..models.ai_local_model_config_data import AiLocalModelConfigData
12
+
13
+
14
+ T = TypeVar("T", bound="AiLocalModelConfigResponse")
15
+
16
+
17
+ @_attrs_define
18
+ class AiLocalModelConfigResponse:
19
+ """
20
+ Attributes:
21
+ ok (bool):
22
+ data (AiLocalModelConfigData):
23
+ """
24
+
25
+ ok: bool
26
+ data: AiLocalModelConfigData
27
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ ok = self.ok
31
+
32
+ data = self.data.to_dict()
33
+
34
+ field_dict: dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update(
37
+ {
38
+ "ok": ok,
39
+ "data": data,
40
+ }
41
+ )
42
+
43
+ return field_dict
44
+
45
+ @classmethod
46
+ def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
47
+ from ..models.ai_local_model_config_data import (
48
+ AiLocalModelConfigData,
49
+ )
50
+
51
+ d = dict(src_dict)
52
+ ok = d.pop("ok")
53
+
54
+ data = AiLocalModelConfigData.from_dict(d.pop("data"))
55
+
56
+ ai_local_model_config_response = cls(
57
+ ok=ok,
58
+ data=data,
59
+ )
60
+
61
+ ai_local_model_config_response.additional_properties = d
62
+ return ai_local_model_config_response
63
+
64
+ @property
65
+ def additional_keys(self) -> list[str]:
66
+ return list(self.additional_properties.keys())
67
+
68
+ def __getitem__(self, key: str) -> Any:
69
+ return self.additional_properties[key]
70
+
71
+ def __setitem__(self, key: str, value: Any) -> None:
72
+ self.additional_properties[key] = value
73
+
74
+ def __delitem__(self, key: str) -> None:
75
+ del self.additional_properties[key]
76
+
77
+ def __contains__(self, key: str) -> bool:
78
+ return key in self.additional_properties
@@ -0,0 +1,134 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, cast
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from typing_extensions import Self
9
+
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="AiLocalModelConfigUpdateRequest")
13
+
14
+
15
+ @_attrs_define
16
+ class AiLocalModelConfigUpdateRequest:
17
+ """
18
+ Attributes:
19
+ fast_model (None | str | Unset):
20
+ strong_model (None | str | Unset):
21
+ deep_model (None | str | Unset):
22
+ updated_at (int | None | Unset):
23
+ """
24
+
25
+ fast_model: None | str | Unset = UNSET
26
+ strong_model: None | str | Unset = UNSET
27
+ deep_model: None | str | Unset = UNSET
28
+ updated_at: int | None | Unset = UNSET
29
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
30
+
31
+ def to_dict(self) -> dict[str, Any]:
32
+ fast_model: None | str | Unset
33
+ if isinstance(self.fast_model, Unset):
34
+ fast_model = UNSET
35
+ else:
36
+ fast_model = self.fast_model
37
+
38
+ strong_model: None | str | Unset
39
+ if isinstance(self.strong_model, Unset):
40
+ strong_model = UNSET
41
+ else:
42
+ strong_model = self.strong_model
43
+
44
+ deep_model: None | str | Unset
45
+ if isinstance(self.deep_model, Unset):
46
+ deep_model = UNSET
47
+ else:
48
+ deep_model = self.deep_model
49
+
50
+ updated_at: int | None | Unset
51
+ if isinstance(self.updated_at, Unset):
52
+ updated_at = UNSET
53
+ else:
54
+ updated_at = self.updated_at
55
+
56
+ field_dict: dict[str, Any] = {}
57
+ field_dict.update(self.additional_properties)
58
+ field_dict.update({})
59
+ if fast_model is not UNSET:
60
+ field_dict["fast_model"] = fast_model
61
+ if strong_model is not UNSET:
62
+ field_dict["strong_model"] = strong_model
63
+ if deep_model is not UNSET:
64
+ field_dict["deep_model"] = deep_model
65
+ if updated_at is not UNSET:
66
+ field_dict["updated_at"] = updated_at
67
+
68
+ return field_dict
69
+
70
+ @classmethod
71
+ def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
72
+ d = dict(src_dict)
73
+
74
+ def _parse_fast_model(data: object) -> None | str | Unset:
75
+ if data is None:
76
+ return data
77
+ if isinstance(data, Unset):
78
+ return data
79
+ return cast(None | str | Unset, data)
80
+
81
+ fast_model = _parse_fast_model(d.pop("fast_model", UNSET))
82
+
83
+ def _parse_strong_model(data: object) -> None | str | Unset:
84
+ if data is None:
85
+ return data
86
+ if isinstance(data, Unset):
87
+ return data
88
+ return cast(None | str | Unset, data)
89
+
90
+ strong_model = _parse_strong_model(d.pop("strong_model", UNSET))
91
+
92
+ def _parse_deep_model(data: object) -> None | str | Unset:
93
+ if data is None:
94
+ return data
95
+ if isinstance(data, Unset):
96
+ return data
97
+ return cast(None | str | Unset, data)
98
+
99
+ deep_model = _parse_deep_model(d.pop("deep_model", UNSET))
100
+
101
+ def _parse_updated_at(data: object) -> int | None | Unset:
102
+ if data is None:
103
+ return data
104
+ if isinstance(data, Unset):
105
+ return data
106
+ return cast(int | None | Unset, data)
107
+
108
+ updated_at = _parse_updated_at(d.pop("updated_at", UNSET))
109
+
110
+ ai_local_model_config_update_request = cls(
111
+ fast_model=fast_model,
112
+ strong_model=strong_model,
113
+ deep_model=deep_model,
114
+ updated_at=updated_at,
115
+ )
116
+
117
+ ai_local_model_config_update_request.additional_properties = d
118
+ return ai_local_model_config_update_request
119
+
120
+ @property
121
+ def additional_keys(self) -> list[str]:
122
+ return list(self.additional_properties.keys())
123
+
124
+ def __getitem__(self, key: str) -> Any:
125
+ return self.additional_properties[key]
126
+
127
+ def __setitem__(self, key: str, value: Any) -> None:
128
+ self.additional_properties[key] = value
129
+
130
+ def __delitem__(self, key: str) -> None:
131
+ del self.additional_properties[key]
132
+
133
+ def __contains__(self, key: str) -> bool:
134
+ return key in self.additional_properties
@@ -0,0 +1,204 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, cast
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from typing_extensions import Self
9
+
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="AiMessage")
13
+
14
+
15
+ @_attrs_define
16
+ class AiMessage:
17
+ """
18
+ Attributes:
19
+ message_id (str):
20
+ thread_id (str):
21
+ role (str):
22
+ source (str):
23
+ content (str):
24
+ created_at (int):
25
+ provider (None | str | Unset):
26
+ model (None | str | Unset):
27
+ deleted_at (int | None | Unset):
28
+ prompt_hash (None | str | Unset):
29
+ meta_json (None | str | Unset):
30
+ """
31
+
32
+ message_id: str
33
+ thread_id: str
34
+ role: str
35
+ source: str
36
+ content: str
37
+ created_at: int
38
+ provider: None | str | Unset = UNSET
39
+ model: None | str | Unset = UNSET
40
+ deleted_at: int | None | Unset = UNSET
41
+ prompt_hash: None | str | Unset = UNSET
42
+ meta_json: None | str | Unset = UNSET
43
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
44
+
45
+ def to_dict(self) -> dict[str, Any]:
46
+ message_id = self.message_id
47
+
48
+ thread_id = self.thread_id
49
+
50
+ role = self.role
51
+
52
+ source = self.source
53
+
54
+ content = self.content
55
+
56
+ created_at = self.created_at
57
+
58
+ provider: None | str | Unset
59
+ if isinstance(self.provider, Unset):
60
+ provider = UNSET
61
+ else:
62
+ provider = self.provider
63
+
64
+ model: None | str | Unset
65
+ if isinstance(self.model, Unset):
66
+ model = UNSET
67
+ else:
68
+ model = self.model
69
+
70
+ deleted_at: int | None | Unset
71
+ if isinstance(self.deleted_at, Unset):
72
+ deleted_at = UNSET
73
+ else:
74
+ deleted_at = self.deleted_at
75
+
76
+ prompt_hash: None | str | Unset
77
+ if isinstance(self.prompt_hash, Unset):
78
+ prompt_hash = UNSET
79
+ else:
80
+ prompt_hash = self.prompt_hash
81
+
82
+ meta_json: None | str | Unset
83
+ if isinstance(self.meta_json, Unset):
84
+ meta_json = UNSET
85
+ else:
86
+ meta_json = self.meta_json
87
+
88
+ field_dict: dict[str, Any] = {}
89
+ field_dict.update(self.additional_properties)
90
+ field_dict.update(
91
+ {
92
+ "message_id": message_id,
93
+ "thread_id": thread_id,
94
+ "role": role,
95
+ "source": source,
96
+ "content": content,
97
+ "created_at": created_at,
98
+ }
99
+ )
100
+ if provider is not UNSET:
101
+ field_dict["provider"] = provider
102
+ if model is not UNSET:
103
+ field_dict["model"] = model
104
+ if deleted_at is not UNSET:
105
+ field_dict["deleted_at"] = deleted_at
106
+ if prompt_hash is not UNSET:
107
+ field_dict["prompt_hash"] = prompt_hash
108
+ if meta_json is not UNSET:
109
+ field_dict["meta_json"] = meta_json
110
+
111
+ return field_dict
112
+
113
+ @classmethod
114
+ def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
115
+ d = dict(src_dict)
116
+ message_id = d.pop("message_id")
117
+
118
+ thread_id = d.pop("thread_id")
119
+
120
+ role = d.pop("role")
121
+
122
+ source = d.pop("source")
123
+
124
+ content = d.pop("content")
125
+
126
+ created_at = d.pop("created_at")
127
+
128
+ def _parse_provider(data: object) -> None | str | Unset:
129
+ if data is None:
130
+ return data
131
+ if isinstance(data, Unset):
132
+ return data
133
+ return cast(None | str | Unset, data)
134
+
135
+ provider = _parse_provider(d.pop("provider", UNSET))
136
+
137
+ def _parse_model(data: object) -> None | str | Unset:
138
+ if data is None:
139
+ return data
140
+ if isinstance(data, Unset):
141
+ return data
142
+ return cast(None | str | Unset, data)
143
+
144
+ model = _parse_model(d.pop("model", UNSET))
145
+
146
+ def _parse_deleted_at(data: object) -> int | None | Unset:
147
+ if data is None:
148
+ return data
149
+ if isinstance(data, Unset):
150
+ return data
151
+ return cast(int | None | Unset, data)
152
+
153
+ deleted_at = _parse_deleted_at(d.pop("deleted_at", UNSET))
154
+
155
+ def _parse_prompt_hash(data: object) -> None | str | Unset:
156
+ if data is None:
157
+ return data
158
+ if isinstance(data, Unset):
159
+ return data
160
+ return cast(None | str | Unset, data)
161
+
162
+ prompt_hash = _parse_prompt_hash(d.pop("prompt_hash", UNSET))
163
+
164
+ def _parse_meta_json(data: object) -> None | str | Unset:
165
+ if data is None:
166
+ return data
167
+ if isinstance(data, Unset):
168
+ return data
169
+ return cast(None | str | Unset, data)
170
+
171
+ meta_json = _parse_meta_json(d.pop("meta_json", UNSET))
172
+
173
+ ai_message = cls(
174
+ message_id=message_id,
175
+ thread_id=thread_id,
176
+ role=role,
177
+ source=source,
178
+ content=content,
179
+ created_at=created_at,
180
+ provider=provider,
181
+ model=model,
182
+ deleted_at=deleted_at,
183
+ prompt_hash=prompt_hash,
184
+ meta_json=meta_json,
185
+ )
186
+
187
+ ai_message.additional_properties = d
188
+ return ai_message
189
+
190
+ @property
191
+ def additional_keys(self) -> list[str]:
192
+ return list(self.additional_properties.keys())
193
+
194
+ def __getitem__(self, key: str) -> Any:
195
+ return self.additional_properties[key]
196
+
197
+ def __setitem__(self, key: str, value: Any) -> None:
198
+ self.additional_properties[key] = value
199
+
200
+ def __delitem__(self, key: str) -> None:
201
+ del self.additional_properties[key]
202
+
203
+ def __contains__(self, key: str) -> bool:
204
+ return key in self.additional_properties
@@ -0,0 +1,246 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import TYPE_CHECKING, Any, TypeVar, cast
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from typing_extensions import Self
9
+
10
+ from ..types import UNSET, Unset
11
+
12
+ if TYPE_CHECKING:
13
+ from ..models.ai_message_capture_request_context_type_0 import (
14
+ AiMessageCaptureRequestContextType0,
15
+ )
16
+
17
+
18
+ T = TypeVar("T", bound="AiMessageCaptureRequest")
19
+
20
+
21
+ @_attrs_define
22
+ class AiMessageCaptureRequest:
23
+ """
24
+ Attributes:
25
+ project_id (str):
26
+ prompt (str):
27
+ response (str):
28
+ thread_id (None | str | Unset):
29
+ source (None | str | Unset):
30
+ provider (None | str | Unset):
31
+ model (None | str | Unset):
32
+ url (None | str | Unset):
33
+ context (AiMessageCaptureRequestContextType0 | None | Unset):
34
+ created_at (int | None | Unset):
35
+ """
36
+
37
+ project_id: str
38
+ prompt: str
39
+ response: str
40
+ thread_id: None | str | Unset = UNSET
41
+ source: None | str | Unset = UNSET
42
+ provider: None | str | Unset = UNSET
43
+ model: None | str | Unset = UNSET
44
+ url: None | str | Unset = UNSET
45
+ context: AiMessageCaptureRequestContextType0 | None | Unset = UNSET
46
+ created_at: int | None | Unset = UNSET
47
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
48
+
49
+ def to_dict(self) -> dict[str, Any]:
50
+ from ..models.ai_message_capture_request_context_type_0 import (
51
+ AiMessageCaptureRequestContextType0,
52
+ )
53
+
54
+ project_id = self.project_id
55
+
56
+ prompt = self.prompt
57
+
58
+ response = self.response
59
+
60
+ thread_id: None | str | Unset
61
+ if isinstance(self.thread_id, Unset):
62
+ thread_id = UNSET
63
+ else:
64
+ thread_id = self.thread_id
65
+
66
+ source: None | str | Unset
67
+ if isinstance(self.source, Unset):
68
+ source = UNSET
69
+ else:
70
+ source = self.source
71
+
72
+ provider: None | str | Unset
73
+ if isinstance(self.provider, Unset):
74
+ provider = UNSET
75
+ else:
76
+ provider = self.provider
77
+
78
+ model: None | str | Unset
79
+ if isinstance(self.model, Unset):
80
+ model = UNSET
81
+ else:
82
+ model = self.model
83
+
84
+ url: None | str | Unset
85
+ if isinstance(self.url, Unset):
86
+ url = UNSET
87
+ else:
88
+ url = self.url
89
+
90
+ context: dict[str, Any] | None | Unset
91
+ if isinstance(self.context, Unset):
92
+ context = UNSET
93
+ elif isinstance(self.context, AiMessageCaptureRequestContextType0):
94
+ context = self.context.to_dict()
95
+ else:
96
+ context = self.context
97
+
98
+ created_at: int | None | Unset
99
+ if isinstance(self.created_at, Unset):
100
+ created_at = UNSET
101
+ else:
102
+ created_at = self.created_at
103
+
104
+ field_dict: dict[str, Any] = {}
105
+ field_dict.update(self.additional_properties)
106
+ field_dict.update(
107
+ {
108
+ "project_id": project_id,
109
+ "prompt": prompt,
110
+ "response": response,
111
+ }
112
+ )
113
+ if thread_id is not UNSET:
114
+ field_dict["thread_id"] = thread_id
115
+ if source is not UNSET:
116
+ field_dict["source"] = source
117
+ if provider is not UNSET:
118
+ field_dict["provider"] = provider
119
+ if model is not UNSET:
120
+ field_dict["model"] = model
121
+ if url is not UNSET:
122
+ field_dict["url"] = url
123
+ if context is not UNSET:
124
+ field_dict["context"] = context
125
+ if created_at is not UNSET:
126
+ field_dict["created_at"] = created_at
127
+
128
+ return field_dict
129
+
130
+ @classmethod
131
+ def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
132
+ from ..models.ai_message_capture_request_context_type_0 import (
133
+ AiMessageCaptureRequestContextType0,
134
+ )
135
+
136
+ d = dict(src_dict)
137
+ project_id = d.pop("project_id")
138
+
139
+ prompt = d.pop("prompt")
140
+
141
+ response = d.pop("response")
142
+
143
+ def _parse_thread_id(data: object) -> None | str | Unset:
144
+ if data is None:
145
+ return data
146
+ if isinstance(data, Unset):
147
+ return data
148
+ return cast(None | str | Unset, data)
149
+
150
+ thread_id = _parse_thread_id(d.pop("thread_id", UNSET))
151
+
152
+ def _parse_source(data: object) -> None | str | Unset:
153
+ if data is None:
154
+ return data
155
+ if isinstance(data, Unset):
156
+ return data
157
+ return cast(None | str | Unset, data)
158
+
159
+ source = _parse_source(d.pop("source", UNSET))
160
+
161
+ def _parse_provider(data: object) -> None | str | Unset:
162
+ if data is None:
163
+ return data
164
+ if isinstance(data, Unset):
165
+ return data
166
+ return cast(None | str | Unset, data)
167
+
168
+ provider = _parse_provider(d.pop("provider", UNSET))
169
+
170
+ def _parse_model(data: object) -> None | str | Unset:
171
+ if data is None:
172
+ return data
173
+ if isinstance(data, Unset):
174
+ return data
175
+ return cast(None | str | Unset, data)
176
+
177
+ model = _parse_model(d.pop("model", UNSET))
178
+
179
+ def _parse_url(data: object) -> None | str | Unset:
180
+ if data is None:
181
+ return data
182
+ if isinstance(data, Unset):
183
+ return data
184
+ return cast(None | str | Unset, data)
185
+
186
+ url = _parse_url(d.pop("url", UNSET))
187
+
188
+ def _parse_context(
189
+ data: object,
190
+ ) -> AiMessageCaptureRequestContextType0 | None | Unset:
191
+ if data is None:
192
+ return data
193
+ if isinstance(data, Unset):
194
+ return data
195
+ try:
196
+ if not isinstance(data, dict):
197
+ raise TypeError()
198
+ context_type_0 = AiMessageCaptureRequestContextType0.from_dict(data)
199
+
200
+ return context_type_0
201
+ except (TypeError, ValueError, AttributeError, KeyError):
202
+ pass
203
+ return cast(AiMessageCaptureRequestContextType0 | None | Unset, data)
204
+
205
+ context = _parse_context(d.pop("context", UNSET))
206
+
207
+ def _parse_created_at(data: object) -> int | None | Unset:
208
+ if data is None:
209
+ return data
210
+ if isinstance(data, Unset):
211
+ return data
212
+ return cast(int | None | Unset, data)
213
+
214
+ created_at = _parse_created_at(d.pop("created_at", UNSET))
215
+
216
+ ai_message_capture_request = cls(
217
+ project_id=project_id,
218
+ prompt=prompt,
219
+ response=response,
220
+ thread_id=thread_id,
221
+ source=source,
222
+ provider=provider,
223
+ model=model,
224
+ url=url,
225
+ context=context,
226
+ created_at=created_at,
227
+ )
228
+
229
+ ai_message_capture_request.additional_properties = d
230
+ return ai_message_capture_request
231
+
232
+ @property
233
+ def additional_keys(self) -> list[str]:
234
+ return list(self.additional_properties.keys())
235
+
236
+ def __getitem__(self, key: str) -> Any:
237
+ return self.additional_properties[key]
238
+
239
+ def __setitem__(self, key: str, value: Any) -> None:
240
+ self.additional_properties[key] = value
241
+
242
+ def __delitem__(self, key: str) -> None:
243
+ del self.additional_properties[key]
244
+
245
+ def __contains__(self, key: str) -> bool:
246
+ return key in self.additional_properties
@@ -0,0 +1,46 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from typing_extensions import Self
9
+
10
+ T = TypeVar("T", bound="AiMessageCaptureRequestContextType0")
11
+
12
+
13
+ @_attrs_define
14
+ class AiMessageCaptureRequestContextType0:
15
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
16
+
17
+ def to_dict(self) -> dict[str, Any]:
18
+
19
+ field_dict: dict[str, Any] = {}
20
+ field_dict.update(self.additional_properties)
21
+
22
+ return field_dict
23
+
24
+ @classmethod
25
+ def from_dict(cls, src_dict: Mapping[str, Any]) -> Self:
26
+ d = dict(src_dict)
27
+ ai_message_capture_request_context_type_0 = cls()
28
+
29
+ ai_message_capture_request_context_type_0.additional_properties = d
30
+ return ai_message_capture_request_context_type_0
31
+
32
+ @property
33
+ def additional_keys(self) -> list[str]:
34
+ return list(self.additional_properties.keys())
35
+
36
+ def __getitem__(self, key: str) -> Any:
37
+ return self.additional_properties[key]
38
+
39
+ def __setitem__(self, key: str, value: Any) -> None:
40
+ self.additional_properties[key] = value
41
+
42
+ def __delitem__(self, key: str) -> None:
43
+ del self.additional_properties[key]
44
+
45
+ def __contains__(self, key: str) -> bool:
46
+ return key in self.additional_properties