immichpy 1.6.5__py3-none-any.whl → 1.7.6__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 (438) hide show
  1. immichpy/cli/__main__.py +1 -1
  2. immichpy/cli/commands/activities.py +23 -11
  3. immichpy/cli/commands/albums.py +34 -20
  4. immichpy/cli/commands/api_keys.py +6 -4
  5. immichpy/cli/commands/assets.py +274 -65
  6. immichpy/cli/commands/authentication.py +115 -25
  7. immichpy/cli/commands/database_backups_admin.py +111 -0
  8. immichpy/cli/commands/download.py +13 -5
  9. immichpy/cli/commands/duplicates.py +1 -1
  10. immichpy/cli/commands/faces.py +17 -11
  11. immichpy/cli/commands/jobs.py +6 -4
  12. immichpy/cli/commands/libraries.py +15 -9
  13. immichpy/cli/commands/maintenance_admin.py +39 -2
  14. immichpy/cli/commands/map.py +8 -8
  15. immichpy/cli/commands/memories.py +35 -21
  16. immichpy/cli/commands/notifications.py +16 -8
  17. immichpy/cli/commands/notifications_admin.py +43 -17
  18. immichpy/cli/commands/partners.py +9 -3
  19. immichpy/cli/commands/people.py +30 -24
  20. immichpy/cli/commands/plugins.py +14 -0
  21. immichpy/cli/commands/queues.py +8 -6
  22. immichpy/cli/commands/search.py +395 -189
  23. immichpy/cli/commands/server.py +6 -2
  24. immichpy/cli/commands/sessions.py +6 -4
  25. immichpy/cli/commands/shared_links.py +42 -25
  26. immichpy/cli/commands/stacks.py +4 -4
  27. immichpy/cli/commands/sync.py +26 -10
  28. immichpy/cli/commands/system_config.py +216 -115
  29. immichpy/cli/commands/system_metadata.py +3 -1
  30. immichpy/cli/commands/tags.py +9 -9
  31. immichpy/cli/commands/trash.py +1 -1
  32. immichpy/cli/commands/users.py +57 -29
  33. immichpy/cli/commands/users_admin.py +79 -45
  34. immichpy/cli/commands/workflows.py +40 -11
  35. immichpy/cli/main.py +10 -2
  36. immichpy/cli/utils.py +2 -2
  37. immichpy/cli/wrapper/setup.py +1 -1
  38. immichpy/client/.openapi-generator/FILES +26 -2
  39. immichpy/client/generated/__init__.py +101 -7
  40. immichpy/client/generated/api/__init__.py +3 -0
  41. immichpy/client/generated/api/activities_api.py +73 -43
  42. immichpy/client/generated/api/albums_api.py +40 -19
  43. immichpy/client/generated/api/api_keys_api.py +1 -1
  44. immichpy/client/generated/api/assets_api.py +1768 -366
  45. immichpy/client/generated/api/authentication_admin_api.py +1 -1
  46. immichpy/client/generated/api/authentication_api.py +1 -1
  47. immichpy/client/generated/api/database_backups_admin_api.py +1224 -0
  48. immichpy/client/generated/api/deprecated_api.py +103 -73
  49. immichpy/client/generated/api/download_api.py +1 -1
  50. immichpy/client/generated/api/duplicates_api.py +1 -1
  51. immichpy/client/generated/api/faces_api.py +7 -7
  52. immichpy/client/generated/api/jobs_api.py +7 -7
  53. immichpy/client/generated/api/libraries_api.py +1 -1
  54. immichpy/client/generated/api/maintenance_admin_api.py +459 -1
  55. immichpy/client/generated/api/map_api.py +103 -49
  56. immichpy/client/generated/api/memories_api.py +109 -61
  57. immichpy/client/generated/api/notifications_admin_api.py +1 -1
  58. immichpy/client/generated/api/notifications_api.py +52 -25
  59. immichpy/client/generated/api/partners_api.py +7 -7
  60. immichpy/client/generated/api/people_api.py +37 -19
  61. immichpy/client/generated/api/plugins_api.py +230 -1
  62. immichpy/client/generated/api/queues_api.py +37 -31
  63. immichpy/client/generated/api/search_api.py +529 -283
  64. immichpy/client/generated/api/server_api.py +1 -1
  65. immichpy/client/generated/api/sessions_api.py +1 -1
  66. immichpy/client/generated/api/shared_links_api.py +53 -19
  67. immichpy/client/generated/api/stacks_api.py +13 -7
  68. immichpy/client/generated/api/sync_api.py +1 -1
  69. immichpy/client/generated/api/system_config_api.py +1 -1
  70. immichpy/client/generated/api/system_metadata_api.py +1 -1
  71. immichpy/client/generated/api/tags_api.py +1 -1
  72. immichpy/client/generated/api/timeline_api.py +1 -1
  73. immichpy/client/generated/api/trash_api.py +1 -1
  74. immichpy/client/generated/api/users_admin_api.py +55 -31
  75. immichpy/client/generated/api/users_api.py +16 -7
  76. immichpy/client/generated/api/views_api.py +1 -1
  77. immichpy/client/generated/api/workflows_api.py +1 -1
  78. immichpy/client/generated/api_client.py +1 -1
  79. immichpy/client/generated/configuration.py +2 -2
  80. immichpy/client/generated/exceptions.py +1 -1
  81. immichpy/client/generated/models/__init__.py +56 -3
  82. immichpy/client/generated/models/activity_create_dto.py +11 -5
  83. immichpy/client/generated/models/activity_response_dto.py +10 -6
  84. immichpy/client/generated/models/activity_statistics_response_dto.py +4 -4
  85. immichpy/client/generated/models/add_users_dto.py +2 -2
  86. immichpy/client/generated/models/admin_onboarding_update_dto.py +4 -2
  87. immichpy/client/generated/models/album_response_dto.py +28 -16
  88. immichpy/client/generated/models/album_statistics_response_dto.py +6 -4
  89. immichpy/client/generated/models/album_user_add_dto.py +3 -3
  90. immichpy/client/generated/models/album_user_create_dto.py +3 -3
  91. immichpy/client/generated/models/album_user_response_dto.py +3 -3
  92. immichpy/client/generated/models/album_user_role.py +2 -2
  93. immichpy/client/generated/models/albums_add_assets_dto.py +3 -3
  94. immichpy/client/generated/models/albums_add_assets_response_dto.py +4 -4
  95. immichpy/client/generated/models/albums_response.py +4 -2
  96. immichpy/client/generated/models/albums_update.py +5 -3
  97. immichpy/client/generated/models/api_key_create_dto.py +5 -3
  98. immichpy/client/generated/models/api_key_create_response_dto.py +2 -2
  99. immichpy/client/generated/models/api_key_response_dto.py +6 -6
  100. immichpy/client/generated/models/api_key_update_dto.py +5 -3
  101. immichpy/client/generated/models/asset_bulk_delete_dto.py +6 -4
  102. immichpy/client/generated/models/asset_bulk_update_dto.py +28 -12
  103. immichpy/client/generated/models/asset_bulk_upload_check_dto.py +3 -3
  104. immichpy/client/generated/models/asset_bulk_upload_check_item.py +3 -3
  105. immichpy/client/generated/models/asset_bulk_upload_check_response_dto.py +5 -3
  106. immichpy/client/generated/models/asset_bulk_upload_check_result.py +12 -6
  107. immichpy/client/generated/models/asset_copy_dto.py +16 -8
  108. immichpy/client/generated/models/asset_delta_sync_dto.py +5 -3
  109. immichpy/client/generated/models/asset_delta_sync_response_dto.py +6 -4
  110. immichpy/client/generated/models/asset_edit_action.py +35 -0
  111. immichpy/client/generated/models/asset_edit_action_crop.py +95 -0
  112. immichpy/client/generated/models/asset_edit_action_list_dto.py +104 -0
  113. immichpy/client/generated/models/asset_edit_action_list_dto_edits_inner.py +188 -0
  114. immichpy/client/generated/models/asset_edit_action_mirror.py +95 -0
  115. immichpy/client/generated/models/asset_edit_action_rotate.py +95 -0
  116. immichpy/client/generated/models/asset_edits_dto.py +107 -0
  117. immichpy/client/generated/models/asset_face_create_dto.py +13 -9
  118. immichpy/client/generated/models/asset_face_delete_dto.py +3 -3
  119. immichpy/client/generated/models/asset_face_response_dto.py +26 -10
  120. immichpy/client/generated/models/asset_face_update_dto.py +3 -3
  121. immichpy/client/generated/models/asset_face_update_item.py +3 -3
  122. immichpy/client/generated/models/asset_face_without_person_response_dto.py +23 -9
  123. immichpy/client/generated/models/asset_full_sync_dto.py +13 -5
  124. immichpy/client/generated/models/asset_ids_dto.py +2 -2
  125. immichpy/client/generated/models/asset_ids_response_dto.py +6 -4
  126. immichpy/client/generated/models/asset_job_name.py +2 -2
  127. immichpy/client/generated/models/asset_jobs_dto.py +3 -3
  128. immichpy/client/generated/models/asset_media_response_dto.py +4 -4
  129. immichpy/client/generated/models/asset_media_size.py +2 -1
  130. immichpy/client/generated/models/asset_media_status.py +2 -2
  131. immichpy/client/generated/models/asset_metadata_bulk_delete_dto.py +103 -0
  132. immichpy/client/generated/models/asset_metadata_bulk_delete_item_dto.py +86 -0
  133. immichpy/client/generated/models/asset_metadata_bulk_response_dto.py +93 -0
  134. immichpy/client/generated/models/asset_metadata_bulk_upsert_dto.py +103 -0
  135. immichpy/client/generated/models/asset_metadata_bulk_upsert_item_dto.py +91 -0
  136. immichpy/client/generated/models/asset_metadata_response_dto.py +5 -6
  137. immichpy/client/generated/models/asset_metadata_upsert_dto.py +5 -3
  138. immichpy/client/generated/models/asset_metadata_upsert_item_dto.py +4 -5
  139. immichpy/client/generated/models/asset_ocr_response_dto.py +1 -1
  140. immichpy/client/generated/models/asset_order.py +2 -2
  141. immichpy/client/generated/models/asset_response_dto.py +66 -24
  142. immichpy/client/generated/models/asset_stack_response_dto.py +8 -4
  143. immichpy/client/generated/models/asset_stats_response_dto.py +5 -5
  144. immichpy/client/generated/models/asset_type_enum.py +2 -2
  145. immichpy/client/generated/models/asset_visibility.py +2 -2
  146. immichpy/client/generated/models/audio_codec.py +2 -2
  147. immichpy/client/generated/models/auth_status_response_dto.py +12 -6
  148. immichpy/client/generated/models/avatar_update.py +3 -3
  149. immichpy/client/generated/models/bulk_id_error_reason.py +2 -2
  150. immichpy/client/generated/models/bulk_id_response_dto.py +14 -5
  151. immichpy/client/generated/models/bulk_ids_dto.py +3 -3
  152. immichpy/client/generated/models/cast_response.py +4 -2
  153. immichpy/client/generated/models/cast_update.py +4 -2
  154. immichpy/client/generated/models/change_password_dto.py +6 -4
  155. immichpy/client/generated/models/check_existing_assets_dto.py +3 -3
  156. immichpy/client/generated/models/check_existing_assets_response_dto.py +4 -2
  157. immichpy/client/generated/models/clip_config.py +5 -3
  158. immichpy/client/generated/models/colorspace.py +1 -1
  159. immichpy/client/generated/models/contributor_count_response_dto.py +5 -3
  160. immichpy/client/generated/models/cq_mode.py +2 -2
  161. immichpy/client/generated/models/create_album_dto.py +9 -5
  162. immichpy/client/generated/models/create_library_dto.py +9 -5
  163. immichpy/client/generated/models/create_profile_image_response_dto.py +8 -4
  164. immichpy/client/generated/models/crop_parameters.py +105 -0
  165. immichpy/client/generated/models/database_backup_config.py +6 -4
  166. immichpy/client/generated/models/database_backup_delete_dto.py +82 -0
  167. immichpy/client/generated/models/database_backup_dto.py +85 -0
  168. immichpy/client/generated/models/database_backup_list_response_dto.py +98 -0
  169. immichpy/client/generated/models/download_archive_info.py +5 -3
  170. immichpy/client/generated/models/download_info_dto.py +11 -5
  171. immichpy/client/generated/models/download_response.py +8 -3
  172. immichpy/client/generated/models/download_response_dto.py +3 -3
  173. immichpy/client/generated/models/download_update.py +5 -3
  174. immichpy/client/generated/models/duplicate_detection_config.py +6 -3
  175. immichpy/client/generated/models/duplicate_response_dto.py +5 -3
  176. immichpy/client/generated/models/email_notifications_response.py +10 -4
  177. immichpy/client/generated/models/email_notifications_update.py +14 -4
  178. immichpy/client/generated/models/exif_response_dto.py +47 -23
  179. immichpy/client/generated/models/face_dto.py +3 -3
  180. immichpy/client/generated/models/facial_recognition_config.py +15 -6
  181. immichpy/client/generated/models/folders_response.py +5 -3
  182. immichpy/client/generated/models/folders_update.py +9 -3
  183. immichpy/client/generated/models/image_format.py +2 -2
  184. immichpy/client/generated/models/job_create_dto.py +3 -3
  185. immichpy/client/generated/models/job_name.py +3 -2
  186. immichpy/client/generated/models/job_settings_dto.py +4 -2
  187. immichpy/client/generated/models/library_response_dto.py +16 -10
  188. immichpy/client/generated/models/library_stats_response_dto.py +6 -6
  189. immichpy/client/generated/models/license_key_dto.py +7 -3
  190. immichpy/client/generated/models/license_response_dto.py +8 -4
  191. immichpy/client/generated/models/log_level.py +1 -1
  192. immichpy/client/generated/models/login_credential_dto.py +4 -4
  193. immichpy/client/generated/models/login_response_dto.py +13 -9
  194. immichpy/client/generated/models/logout_response_dto.py +3 -3
  195. immichpy/client/generated/models/machine_learning_availability_checks_dto.py +3 -3
  196. immichpy/client/generated/models/maintenance_action.py +4 -2
  197. immichpy/client/generated/models/maintenance_auth_dto.py +3 -3
  198. immichpy/client/generated/models/maintenance_detect_install_response_dto.py +101 -0
  199. immichpy/client/generated/models/maintenance_detect_install_storage_folder_dto.py +95 -0
  200. immichpy/client/generated/models/maintenance_login_dto.py +3 -3
  201. immichpy/client/generated/models/maintenance_status_response_dto.py +109 -0
  202. immichpy/client/generated/models/manual_job_name.py +2 -2
  203. immichpy/client/generated/models/map_marker_response_dto.py +8 -8
  204. immichpy/client/generated/models/map_reverse_geocode_response_dto.py +5 -5
  205. immichpy/client/generated/models/memories_response.py +4 -4
  206. immichpy/client/generated/models/memories_update.py +7 -3
  207. immichpy/client/generated/models/memory_create_dto.py +12 -6
  208. immichpy/client/generated/models/memory_response_dto.py +20 -12
  209. immichpy/client/generated/models/memory_search_order.py +1 -1
  210. immichpy/client/generated/models/memory_statistics_response_dto.py +3 -3
  211. immichpy/client/generated/models/memory_type.py +1 -1
  212. immichpy/client/generated/models/memory_update_dto.py +10 -4
  213. immichpy/client/generated/models/merge_person_dto.py +3 -3
  214. immichpy/client/generated/models/metadata_search_dto.py +124 -46
  215. immichpy/client/generated/models/{asset_metadata_key.py → mirror_axis.py} +6 -5
  216. immichpy/client/generated/models/mirror_parameters.py +83 -0
  217. immichpy/client/generated/models/notification_create_dto.py +18 -8
  218. immichpy/client/generated/models/notification_delete_all_dto.py +3 -3
  219. immichpy/client/generated/models/notification_dto.py +15 -9
  220. immichpy/client/generated/models/notification_level.py +1 -1
  221. immichpy/client/generated/models/notification_type.py +1 -1
  222. immichpy/client/generated/models/notification_update_all_dto.py +5 -3
  223. immichpy/client/generated/models/notification_update_dto.py +4 -2
  224. immichpy/client/generated/models/o_auth_authorize_response_dto.py +3 -3
  225. immichpy/client/generated/models/o_auth_callback_dto.py +8 -4
  226. immichpy/client/generated/models/o_auth_config_dto.py +10 -4
  227. immichpy/client/generated/models/o_auth_token_endpoint_auth_method.py +2 -2
  228. immichpy/client/generated/models/ocr_config.py +14 -6
  229. immichpy/client/generated/models/on_this_day_dto.py +2 -2
  230. immichpy/client/generated/models/onboarding_dto.py +4 -2
  231. immichpy/client/generated/models/onboarding_response_dto.py +4 -2
  232. immichpy/client/generated/models/partner_create_dto.py +4 -2
  233. immichpy/client/generated/models/partner_direction.py +1 -1
  234. immichpy/client/generated/models/partner_response_dto.py +16 -8
  235. immichpy/client/generated/models/partner_update_dto.py +4 -2
  236. immichpy/client/generated/models/people_response.py +5 -3
  237. immichpy/client/generated/models/people_response_dto.py +7 -5
  238. immichpy/client/generated/models/people_update.py +9 -3
  239. immichpy/client/generated/models/people_update_dto.py +3 -3
  240. immichpy/client/generated/models/people_update_item.py +10 -10
  241. immichpy/client/generated/models/permission.py +13 -2
  242. immichpy/client/generated/models/person_create_dto.py +8 -8
  243. immichpy/client/generated/models/person_response_dto.py +17 -9
  244. immichpy/client/generated/models/person_statistics_response_dto.py +3 -3
  245. immichpy/client/generated/models/person_update_dto.py +9 -9
  246. immichpy/client/generated/models/person_with_faces_response_dto.py +20 -10
  247. immichpy/client/generated/models/pin_code_change_dto.py +10 -4
  248. immichpy/client/generated/models/pin_code_reset_dto.py +7 -3
  249. immichpy/client/generated/models/pin_code_setup_dto.py +2 -2
  250. immichpy/client/generated/models/places_response_dto.py +11 -7
  251. immichpy/client/generated/models/plugin_action_response_dto.py +13 -9
  252. immichpy/client/generated/models/{plugin_context.py → plugin_context_type.py} +4 -4
  253. immichpy/client/generated/models/plugin_filter_response_dto.py +13 -9
  254. immichpy/client/generated/models/plugin_response_dto.py +11 -11
  255. immichpy/client/generated/models/plugin_trigger_response_dto.py +89 -0
  256. immichpy/client/generated/models/plugin_trigger_type.py +2 -2
  257. immichpy/client/generated/models/purchase_response.py +7 -3
  258. immichpy/client/generated/models/purchase_update.py +7 -3
  259. immichpy/client/generated/models/queue_command.py +2 -2
  260. immichpy/client/generated/models/queue_command_dto.py +6 -4
  261. immichpy/client/generated/models/queue_delete_dto.py +1 -1
  262. immichpy/client/generated/models/queue_job_response_dto.py +6 -6
  263. immichpy/client/generated/models/queue_job_status.py +1 -1
  264. immichpy/client/generated/models/queue_name.py +2 -1
  265. immichpy/client/generated/models/queue_response_dto.py +5 -3
  266. immichpy/client/generated/models/queue_response_legacy_dto.py +1 -1
  267. immichpy/client/generated/models/queue_statistics_dto.py +8 -8
  268. immichpy/client/generated/models/queue_status_legacy_dto.py +8 -3
  269. immichpy/client/generated/models/queue_update_dto.py +4 -2
  270. immichpy/client/generated/models/queues_response_legacy_dto.py +9 -1
  271. immichpy/client/generated/models/random_search_dto.py +96 -34
  272. immichpy/client/generated/models/ratings_response.py +3 -3
  273. immichpy/client/generated/models/ratings_update.py +5 -3
  274. immichpy/client/generated/models/reaction_level.py +1 -1
  275. immichpy/client/generated/models/reaction_type.py +1 -1
  276. immichpy/client/generated/models/reverse_geocoding_state_response_dto.py +7 -3
  277. immichpy/client/generated/models/rotate_parameters.py +84 -0
  278. immichpy/client/generated/models/search_album_response_dto.py +4 -4
  279. immichpy/client/generated/models/search_asset_response_dto.py +6 -4
  280. immichpy/client/generated/models/search_explore_item.py +3 -3
  281. immichpy/client/generated/models/search_explore_response_dto.py +2 -2
  282. immichpy/client/generated/models/search_facet_count_response_dto.py +4 -4
  283. immichpy/client/generated/models/search_facet_response_dto.py +3 -3
  284. immichpy/client/generated/models/search_response_dto.py +1 -1
  285. immichpy/client/generated/models/search_statistics_response_dto.py +3 -3
  286. immichpy/client/generated/models/search_suggestion_type.py +1 -1
  287. immichpy/client/generated/models/server_about_response_dto.py +46 -22
  288. immichpy/client/generated/models/server_apk_links_dto.py +12 -6
  289. immichpy/client/generated/models/server_config_dto.py +36 -12
  290. immichpy/client/generated/models/server_features_dto.py +32 -16
  291. immichpy/client/generated/models/server_media_types_response_dto.py +5 -5
  292. immichpy/client/generated/models/server_ping_response.py +1 -1
  293. immichpy/client/generated/models/server_stats_response_dto.py +10 -6
  294. immichpy/client/generated/models/server_storage_response_dto.py +21 -8
  295. immichpy/client/generated/models/server_theme_dto.py +4 -2
  296. immichpy/client/generated/models/server_version_history_response_dto.py +6 -4
  297. immichpy/client/generated/models/server_version_response_dto.py +5 -5
  298. immichpy/client/generated/models/session_create_dto.py +8 -4
  299. immichpy/client/generated/models/session_create_response_dto.py +17 -11
  300. immichpy/client/generated/models/session_response_dto.py +16 -10
  301. immichpy/client/generated/models/session_unlock_dto.py +7 -3
  302. immichpy/client/generated/models/session_update_dto.py +2 -2
  303. immichpy/client/generated/models/set_maintenance_mode_dto.py +17 -7
  304. immichpy/client/generated/models/shared_link_create_dto.py +25 -11
  305. immichpy/client/generated/models/shared_link_edit_dto.py +19 -9
  306. immichpy/client/generated/models/shared_link_response_dto.py +18 -14
  307. immichpy/client/generated/models/shared_link_type.py +2 -2
  308. immichpy/client/generated/models/shared_links_response.py +5 -3
  309. immichpy/client/generated/models/shared_links_update.py +9 -3
  310. immichpy/client/generated/models/sign_up_dto.py +5 -5
  311. immichpy/client/generated/models/smart_search_dto.py +102 -36
  312. immichpy/client/generated/models/source_type.py +2 -2
  313. immichpy/client/generated/models/stack_create_dto.py +2 -2
  314. immichpy/client/generated/models/stack_response_dto.py +6 -4
  315. immichpy/client/generated/models/stack_update_dto.py +4 -2
  316. immichpy/client/generated/models/statistics_search_dto.py +86 -30
  317. immichpy/client/generated/models/storage_folder.py +38 -0
  318. immichpy/client/generated/models/sync_ack_delete_dto.py +5 -3
  319. immichpy/client/generated/models/sync_ack_dto.py +4 -4
  320. immichpy/client/generated/models/sync_ack_set_dto.py +4 -2
  321. immichpy/client/generated/models/sync_album_delete_v1.py +2 -2
  322. immichpy/client/generated/models/sync_album_to_asset_delete_v1.py +3 -3
  323. immichpy/client/generated/models/sync_album_to_asset_v1.py +3 -3
  324. immichpy/client/generated/models/sync_album_user_delete_v1.py +3 -3
  325. immichpy/client/generated/models/sync_album_user_v1.py +4 -4
  326. immichpy/client/generated/models/sync_album_v1.py +13 -9
  327. immichpy/client/generated/models/sync_asset_delete_v1.py +2 -2
  328. immichpy/client/generated/models/sync_asset_exif_v1.py +46 -26
  329. immichpy/client/generated/models/sync_asset_face_delete_v1.py +2 -2
  330. immichpy/client/generated/models/sync_asset_face_v1.py +5 -5
  331. immichpy/client/generated/models/sync_asset_metadata_delete_v1.py +3 -4
  332. immichpy/client/generated/models/sync_asset_metadata_v1.py +4 -5
  333. immichpy/client/generated/models/sync_asset_v1.py +47 -18
  334. immichpy/client/generated/models/sync_auth_user_v1.py +22 -12
  335. immichpy/client/generated/models/sync_entity_type.py +2 -2
  336. immichpy/client/generated/models/sync_memory_asset_delete_v1.py +3 -3
  337. immichpy/client/generated/models/sync_memory_asset_v1.py +3 -3
  338. immichpy/client/generated/models/sync_memory_delete_v1.py +2 -2
  339. immichpy/client/generated/models/sync_memory_v1.py +13 -13
  340. immichpy/client/generated/models/sync_partner_delete_v1.py +5 -3
  341. immichpy/client/generated/models/sync_partner_v1.py +6 -4
  342. immichpy/client/generated/models/sync_person_delete_v1.py +2 -2
  343. immichpy/client/generated/models/sync_person_v1.py +13 -11
  344. immichpy/client/generated/models/sync_request_type.py +2 -2
  345. immichpy/client/generated/models/sync_stack_delete_v1.py +2 -2
  346. immichpy/client/generated/models/sync_stack_v1.py +8 -6
  347. immichpy/client/generated/models/sync_stream_dto.py +4 -4
  348. immichpy/client/generated/models/sync_user_delete_v1.py +2 -2
  349. immichpy/client/generated/models/sync_user_metadata_delete_v1.py +3 -3
  350. immichpy/client/generated/models/sync_user_metadata_v1.py +4 -4
  351. immichpy/client/generated/models/sync_user_v1.py +16 -8
  352. immichpy/client/generated/models/system_config_backups_dto.py +1 -1
  353. immichpy/client/generated/models/system_config_dto.py +1 -1
  354. immichpy/client/generated/models/system_config_f_fmpeg_dto.py +44 -22
  355. immichpy/client/generated/models/system_config_faces_dto.py +2 -2
  356. immichpy/client/generated/models/system_config_generated_fullsize_image_dto.py +13 -7
  357. immichpy/client/generated/models/system_config_generated_image_dto.py +14 -8
  358. immichpy/client/generated/models/system_config_image_dto.py +5 -3
  359. immichpy/client/generated/models/system_config_job_dto.py +9 -1
  360. immichpy/client/generated/models/system_config_library_dto.py +1 -1
  361. immichpy/client/generated/models/system_config_library_scan_dto.py +2 -2
  362. immichpy/client/generated/models/system_config_library_watch_dto.py +3 -3
  363. immichpy/client/generated/models/system_config_logging_dto.py +3 -3
  364. immichpy/client/generated/models/system_config_machine_learning_dto.py +2 -2
  365. immichpy/client/generated/models/system_config_map_dto.py +2 -2
  366. immichpy/client/generated/models/system_config_metadata_dto.py +1 -1
  367. immichpy/client/generated/models/system_config_new_version_check_dto.py +3 -3
  368. immichpy/client/generated/models/system_config_nightly_tasks_dto.py +16 -6
  369. immichpy/client/generated/models/system_config_notifications_dto.py +1 -1
  370. immichpy/client/generated/models/system_config_o_auth_dto.py +28 -18
  371. immichpy/client/generated/models/system_config_password_login_dto.py +3 -3
  372. immichpy/client/generated/models/system_config_reverse_geocoding_dto.py +3 -3
  373. immichpy/client/generated/models/system_config_server_dto.py +8 -4
  374. immichpy/client/generated/models/system_config_smtp_dto.py +8 -4
  375. immichpy/client/generated/models/system_config_smtp_transport_dto.py +9 -7
  376. immichpy/client/generated/models/system_config_storage_template_dto.py +6 -4
  377. immichpy/client/generated/models/system_config_template_emails_dto.py +1 -1
  378. immichpy/client/generated/models/system_config_template_storage_option_dto.py +32 -9
  379. immichpy/client/generated/models/system_config_templates_dto.py +1 -1
  380. immichpy/client/generated/models/system_config_theme_dto.py +4 -2
  381. immichpy/client/generated/models/system_config_trash_dto.py +3 -3
  382. immichpy/client/generated/models/system_config_user_dto.py +4 -2
  383. immichpy/client/generated/models/tag_bulk_assets_dto.py +3 -3
  384. immichpy/client/generated/models/tag_bulk_assets_response_dto.py +3 -3
  385. immichpy/client/generated/models/tag_create_dto.py +8 -4
  386. immichpy/client/generated/models/tag_response_dto.py +10 -8
  387. immichpy/client/generated/models/tag_update_dto.py +3 -3
  388. immichpy/client/generated/models/tag_upsert_dto.py +3 -3
  389. immichpy/client/generated/models/tags_response.py +5 -3
  390. immichpy/client/generated/models/tags_update.py +9 -3
  391. immichpy/client/generated/models/template_dto.py +3 -3
  392. immichpy/client/generated/models/template_response_dto.py +4 -4
  393. immichpy/client/generated/models/test_email_response_dto.py +2 -2
  394. immichpy/client/generated/models/time_bucket_asset_response_dto.py +2 -3
  395. immichpy/client/generated/models/time_buckets_response_dto.py +1 -1
  396. immichpy/client/generated/models/tone_mapping.py +2 -2
  397. immichpy/client/generated/models/transcode_hw_accel.py +2 -2
  398. immichpy/client/generated/models/transcode_policy.py +2 -2
  399. immichpy/client/generated/models/trash_response_dto.py +3 -3
  400. immichpy/client/generated/models/update_album_dto.py +12 -6
  401. immichpy/client/generated/models/update_album_user_dto.py +3 -3
  402. immichpy/client/generated/models/update_asset_dto.py +21 -9
  403. immichpy/client/generated/models/update_library_dto.py +8 -4
  404. immichpy/client/generated/models/usage_by_user_dto.py +16 -9
  405. immichpy/client/generated/models/user_admin_create_dto.py +20 -10
  406. immichpy/client/generated/models/user_admin_delete_dto.py +5 -3
  407. immichpy/client/generated/models/user_admin_response_dto.py +35 -18
  408. immichpy/client/generated/models/user_admin_update_dto.py +20 -10
  409. immichpy/client/generated/models/user_avatar_color.py +2 -2
  410. immichpy/client/generated/models/user_license.py +6 -4
  411. immichpy/client/generated/models/user_metadata_key.py +2 -2
  412. immichpy/client/generated/models/user_preferences_response_dto.py +1 -1
  413. immichpy/client/generated/models/user_preferences_update_dto.py +1 -1
  414. immichpy/client/generated/models/user_response_dto.py +13 -7
  415. immichpy/client/generated/models/user_status.py +2 -2
  416. immichpy/client/generated/models/user_update_me_dto.py +10 -5
  417. immichpy/client/generated/models/validate_access_token_response_dto.py +4 -2
  418. immichpy/client/generated/models/validate_library_dto.py +9 -3
  419. immichpy/client/generated/models/validate_library_import_path_response_dto.py +4 -4
  420. immichpy/client/generated/models/validate_library_response_dto.py +4 -2
  421. immichpy/client/generated/models/version_check_state_response_dto.py +7 -3
  422. immichpy/client/generated/models/video_codec.py +2 -2
  423. immichpy/client/generated/models/video_container.py +2 -2
  424. immichpy/client/generated/models/workflow_action_item_dto.py +7 -3
  425. immichpy/client/generated/models/workflow_action_response_dto.py +10 -6
  426. immichpy/client/generated/models/workflow_create_dto.py +11 -7
  427. immichpy/client/generated/models/workflow_filter_item_dto.py +7 -3
  428. immichpy/client/generated/models/workflow_filter_response_dto.py +10 -6
  429. immichpy/client/generated/models/workflow_response_dto.py +14 -27
  430. immichpy/client/generated/models/workflow_update_dto.py +19 -7
  431. immichpy/client/generated/rest.py +1 -1
  432. immichpy/client/main.py +4 -1
  433. {immichpy-1.6.5.dist-info → immichpy-1.7.6.dist-info}/METADATA +1 -3
  434. immichpy-1.7.6.dist-info/RECORD +464 -0
  435. immichpy-1.6.5.dist-info/RECORD +0 -439
  436. {immichpy-1.6.5.dist-info → immichpy-1.7.6.dist-info}/WHEEL +0 -0
  437. {immichpy-1.6.5.dist-info → immichpy-1.7.6.dist-info}/entry_points.txt +0 -0
  438. {immichpy-1.6.5.dist-info → immichpy-1.7.6.dist-info}/licenses/LICENSE +0 -0
@@ -21,7 +21,7 @@ app = typer.Typer(
21
21
  def add_memory_assets(
22
22
  ctx: typer.Context,
23
23
  id: str = typer.Argument(..., help=""""""),
24
- ids: list[str] = typer.Option(..., "--ids", help=""""""),
24
+ ids: list[str] = typer.Option(..., "--ids", help="""IDs to process"""),
25
25
  ) -> None:
26
26
  """Add assets to a memory
27
27
 
@@ -41,14 +41,20 @@ def add_memory_assets(
41
41
  @app.command("create-memory", deprecated=False, rich_help_panel="API commands")
42
42
  def create_memory(
43
43
  ctx: typer.Context,
44
- asset_ids: list[str] | None = typer.Option(None, "--asset-ids", help=""""""),
45
- data_year: float = typer.Option(..., "--data-year", help="""""", min=1),
44
+ asset_ids: list[str] | None = typer.Option(
45
+ None, "--asset-ids", help="""Asset IDs to associate with memory"""
46
+ ),
47
+ data_year: float = typer.Option(
48
+ ..., "--data-year", help="""Year for on this day memory""", min=1
49
+ ),
46
50
  is_saved: Literal["true", "false"] | None = typer.Option(
47
- None, "--is-saved", help=""""""
51
+ None, "--is-saved", help="""Is memory saved"""
48
52
  ),
49
- memory_at: datetime = typer.Option(..., "--memory-at", help=""""""),
50
- seen_at: datetime | None = typer.Option(None, "--seen-at", help=""""""),
51
- type: str = typer.Option(..., "--type", help=""""""),
53
+ memory_at: datetime = typer.Option(..., "--memory-at", help="""Memory date"""),
54
+ seen_at: datetime | None = typer.Option(
55
+ None, "--seen-at", help="""Date when memory was seen"""
56
+ ),
57
+ type: str = typer.Option(..., "--type", help="""Memory type"""),
52
58
  ) -> None:
53
59
  """Create a memory
54
60
 
@@ -107,18 +113,20 @@ def get_memory(
107
113
  @app.command("memories-statistics", deprecated=False, rich_help_panel="API commands")
108
114
  def memories_statistics(
109
115
  ctx: typer.Context,
110
- for_: datetime | None = typer.Option(None, "--for", help=""""""),
116
+ for_: datetime | None = typer.Option(None, "--for", help="""Filter by date"""),
111
117
  is_saved: Literal["true", "false"] | None = typer.Option(
112
- None, "--is-saved", help=""""""
118
+ None, "--is-saved", help="""Filter by saved status"""
113
119
  ),
114
120
  is_trashed: Literal["true", "false"] | None = typer.Option(
115
- None, "--is-trashed", help=""""""
121
+ None, "--is-trashed", help="""Include trashed memories"""
122
+ ),
123
+ order: MemorySearchOrder | None = typer.Option(
124
+ None, "--order", help="""Sort order"""
116
125
  ),
117
- order: MemorySearchOrder | None = typer.Option(None, "--order", help=""""""),
118
126
  size: int | None = typer.Option(
119
127
  None, "--size", help="""Number of memories to return""", min=1
120
128
  ),
121
- type: MemoryType | None = typer.Option(None, "--type", help=""""""),
129
+ type: MemoryType | None = typer.Option(None, "--type", help="""Memory type"""),
122
130
  ) -> None:
123
131
  """Retrieve memories statistics
124
132
 
@@ -146,7 +154,7 @@ def memories_statistics(
146
154
  def remove_memory_assets(
147
155
  ctx: typer.Context,
148
156
  id: str = typer.Argument(..., help=""""""),
149
- ids: list[str] = typer.Option(..., "--ids", help=""""""),
157
+ ids: list[str] = typer.Option(..., "--ids", help="""IDs to process"""),
150
158
  ) -> None:
151
159
  """Remove assets from a memory
152
160
 
@@ -166,18 +174,20 @@ def remove_memory_assets(
166
174
  @app.command("search-memories", deprecated=False, rich_help_panel="API commands")
167
175
  def search_memories(
168
176
  ctx: typer.Context,
169
- for_: datetime | None = typer.Option(None, "--for", help=""""""),
177
+ for_: datetime | None = typer.Option(None, "--for", help="""Filter by date"""),
170
178
  is_saved: Literal["true", "false"] | None = typer.Option(
171
- None, "--is-saved", help=""""""
179
+ None, "--is-saved", help="""Filter by saved status"""
172
180
  ),
173
181
  is_trashed: Literal["true", "false"] | None = typer.Option(
174
- None, "--is-trashed", help=""""""
182
+ None, "--is-trashed", help="""Include trashed memories"""
183
+ ),
184
+ order: MemorySearchOrder | None = typer.Option(
185
+ None, "--order", help="""Sort order"""
175
186
  ),
176
- order: MemorySearchOrder | None = typer.Option(None, "--order", help=""""""),
177
187
  size: int | None = typer.Option(
178
188
  None, "--size", help="""Number of memories to return""", min=1
179
189
  ),
180
- type: MemoryType | None = typer.Option(None, "--type", help=""""""),
190
+ type: MemoryType | None = typer.Option(None, "--type", help="""Memory type"""),
181
191
  ) -> None:
182
192
  """Retrieve memories
183
193
 
@@ -206,10 +216,14 @@ def update_memory(
206
216
  ctx: typer.Context,
207
217
  id: str = typer.Argument(..., help=""""""),
208
218
  is_saved: Literal["true", "false"] | None = typer.Option(
209
- None, "--is-saved", help=""""""
219
+ None, "--is-saved", help="""Is memory saved"""
220
+ ),
221
+ memory_at: datetime | None = typer.Option(
222
+ None, "--memory-at", help="""Memory date"""
223
+ ),
224
+ seen_at: datetime | None = typer.Option(
225
+ None, "--seen-at", help="""Date when memory was seen"""
210
226
  ),
211
- memory_at: datetime | None = typer.Option(None, "--memory-at", help=""""""),
212
- seen_at: datetime | None = typer.Option(None, "--seen-at", help=""""""),
213
227
  ) -> None:
214
228
  """Update a memory
215
229
 
@@ -38,7 +38,7 @@ def delete_notification(
38
38
  @app.command("delete-notifications", deprecated=False, rich_help_panel="API commands")
39
39
  def delete_notifications(
40
40
  ctx: typer.Context,
41
- ids: list[str] = typer.Option(..., "--ids", help=""""""),
41
+ ids: list[str] = typer.Option(..., "--ids", help="""Notification IDs to delete"""),
42
42
  ) -> None:
43
43
  """Delete notifications
44
44
 
@@ -77,11 +77,15 @@ def get_notification(
77
77
  @app.command("get-notifications", deprecated=False, rich_help_panel="API commands")
78
78
  def get_notifications(
79
79
  ctx: typer.Context,
80
- id: str | None = typer.Option(None, "--id", help=""""""),
81
- level: NotificationLevel | None = typer.Option(None, "--level", help=""""""),
82
- type: NotificationType | None = typer.Option(None, "--type", help=""""""),
80
+ id: str | None = typer.Option(None, "--id", help="""Filter by notification ID"""),
81
+ level: NotificationLevel | None = typer.Option(
82
+ None, "--level", help="""Filter by notification level"""
83
+ ),
84
+ type: NotificationType | None = typer.Option(
85
+ None, "--type", help="""Filter by notification type"""
86
+ ),
83
87
  unread: Literal["true", "false"] | None = typer.Option(
84
- None, "--unread", help=""""""
88
+ None, "--unread", help="""Filter by unread status"""
85
89
  ),
86
90
  ) -> None:
87
91
  """Retrieve notifications
@@ -108,7 +112,9 @@ def get_notifications(
108
112
  def update_notification(
109
113
  ctx: typer.Context,
110
114
  id: str = typer.Argument(..., help=""""""),
111
- read_at: datetime | None = typer.Option(None, "--read-at", help=""""""),
115
+ read_at: datetime | None = typer.Option(
116
+ None, "--read-at", help="""Date when notification was read"""
117
+ ),
112
118
  ) -> None:
113
119
  """Update a notification
114
120
 
@@ -131,8 +137,10 @@ def update_notification(
131
137
  @app.command("update-notifications", deprecated=False, rich_help_panel="API commands")
132
138
  def update_notifications(
133
139
  ctx: typer.Context,
134
- ids: list[str] = typer.Option(..., "--ids", help=""""""),
135
- read_at: datetime | None = typer.Option(None, "--read-at", help=""""""),
140
+ ids: list[str] = typer.Option(..., "--ids", help="""Notification IDs to update"""),
141
+ read_at: datetime | None = typer.Option(
142
+ None, "--read-at", help="""Date when notifications were read"""
143
+ ),
136
144
  ) -> None:
137
145
  """Update notifications
138
146
 
@@ -21,13 +21,25 @@ app = typer.Typer(
21
21
  @app.command("create-notification", deprecated=False, rich_help_panel="API commands")
22
22
  def create_notification(
23
23
  ctx: typer.Context,
24
- data: str | None = typer.Option(None, "--data", help="""As a JSON string"""),
25
- description: str | None = typer.Option(None, "--description", help=""""""),
26
- level: str | None = typer.Option(None, "--level", help=""""""),
27
- read_at: datetime | None = typer.Option(None, "--read-at", help=""""""),
28
- title: str = typer.Option(..., "--title", help=""""""),
29
- type: str | None = typer.Option(None, "--type", help=""""""),
30
- user_id: str = typer.Option(..., "--user-id", help=""""""),
24
+ data: str | None = typer.Option(
25
+ None,
26
+ "--data",
27
+ help="""Additional notification data
28
+
29
+ As a JSON string""",
30
+ ),
31
+ description: str | None = typer.Option(
32
+ None, "--description", help="""Notification description"""
33
+ ),
34
+ level: str | None = typer.Option(None, "--level", help="""Notification level"""),
35
+ read_at: datetime | None = typer.Option(
36
+ None, "--read-at", help="""Date when notification was read"""
37
+ ),
38
+ title: str = typer.Option(..., "--title", help="""Notification title"""),
39
+ type: str | None = typer.Option(None, "--type", help="""Notification type"""),
40
+ user_id: str = typer.Option(
41
+ ..., "--user-id", help="""User ID to send notification to"""
42
+ ),
31
43
  ) -> None:
32
44
  """Create a notification
33
45
 
@@ -63,7 +75,7 @@ def create_notification(
63
75
  def get_notification_template_admin(
64
76
  ctx: typer.Context,
65
77
  name: str = typer.Argument(..., help=""""""),
66
- template: str = typer.Option(..., "--template", help=""""""),
78
+ template: str = typer.Option(..., "--template", help="""Template name"""),
67
79
  ) -> None:
68
80
  """Render email template
69
81
 
@@ -89,19 +101,33 @@ def get_notification_template_admin(
89
101
  @app.command("send-test-email-admin", deprecated=False, rich_help_panel="API commands")
90
102
  def send_test_email_admin(
91
103
  ctx: typer.Context,
92
- enabled: bool = typer.Option(..., "--enabled", help=""""""),
93
- from_: str = typer.Option(..., "--from", help=""""""),
94
- reply_to: str = typer.Option(..., "--reply-to", help=""""""),
95
- transport_host: str = typer.Option(..., "--transport-host", help=""""""),
104
+ enabled: bool = typer.Option(
105
+ ..., "--enabled", help="""Whether SMTP email notifications are enabled"""
106
+ ),
107
+ from_: str = typer.Option(..., "--from", help="""Email address to send from"""),
108
+ reply_to: str = typer.Option(
109
+ ..., "--reply-to", help="""Email address for replies"""
110
+ ),
111
+ transport_host: str = typer.Option(
112
+ ..., "--transport-host", help="""SMTP server hostname"""
113
+ ),
96
114
  transport_ignore_cert: bool = typer.Option(
97
- ..., "--transport-ignore-cert", help=""""""
115
+ ...,
116
+ "--transport-ignore-cert",
117
+ help="""Whether to ignore SSL certificate errors""",
118
+ ),
119
+ transport_password: str = typer.Option(
120
+ ..., "--transport-password", help="""SMTP password"""
98
121
  ),
99
- transport_password: str = typer.Option(..., "--transport-password", help=""""""),
100
122
  transport_port: float = typer.Option(
101
- ..., "--transport-port", help="""""", min=0, max=65535
123
+ ..., "--transport-port", help="""SMTP server port""", min=0, max=65535
124
+ ),
125
+ transport_secure: bool = typer.Option(
126
+ ..., "--transport-secure", help="""Whether to use secure connection (TLS/SSL)"""
127
+ ),
128
+ transport_username: str = typer.Option(
129
+ ..., "--transport-username", help="""SMTP username"""
102
130
  ),
103
- transport_secure: bool = typer.Option(..., "--transport-secure", help=""""""),
104
- transport_username: str = typer.Option(..., "--transport-username", help=""""""),
105
131
  ) -> None:
106
132
  """Send test email
107
133
 
@@ -19,7 +19,9 @@ app = typer.Typer(
19
19
  @app.command("create-partner", deprecated=False, rich_help_panel="API commands")
20
20
  def create_partner(
21
21
  ctx: typer.Context,
22
- shared_with_id: str = typer.Option(..., "--shared-with-id", help=""""""),
22
+ shared_with_id: str = typer.Option(
23
+ ..., "--shared-with-id", help="""User ID to share with"""
24
+ ),
23
25
  ) -> None:
24
26
  """Create a partner
25
27
 
@@ -58,7 +60,9 @@ def create_partner_deprecated(
58
60
  @app.command("get-partners", deprecated=False, rich_help_panel="API commands")
59
61
  def get_partners(
60
62
  ctx: typer.Context,
61
- direction: PartnerDirection = typer.Option(..., "--direction", help=""""""),
63
+ direction: PartnerDirection = typer.Option(
64
+ ..., "--direction", help="""Partner direction"""
65
+ ),
62
66
  ) -> None:
63
67
  """Retrieve partners
64
68
 
@@ -91,7 +95,9 @@ def remove_partner(
91
95
  def update_partner(
92
96
  ctx: typer.Context,
93
97
  id: str = typer.Argument(..., help=""""""),
94
- in_timeline: bool = typer.Option(..., "--in-timeline", help=""""""),
98
+ in_timeline: bool = typer.Option(
99
+ ..., "--in-timeline", help="""Show partner assets in timeline"""
100
+ ),
95
101
  ) -> None:
96
102
  """Update a partner
97
103
 
@@ -21,19 +21,16 @@ app = typer.Typer(
21
21
  def create_person(
22
22
  ctx: typer.Context,
23
23
  birth_date: str | None = typer.Option(
24
- None,
25
- "--birth-date",
26
- help="""Person date of birth.
27
- Note: the mobile app cannot currently set the birth date to null.""",
24
+ None, "--birth-date", help="""Person date of birth"""
28
25
  ),
29
- color: str | None = typer.Option(None, "--color", help=""""""),
26
+ color: str | None = typer.Option(None, "--color", help="""Person color (hex)"""),
30
27
  is_favorite: Literal["true", "false"] | None = typer.Option(
31
- None, "--is-favorite", help=""""""
28
+ None, "--is-favorite", help="""Mark as favorite"""
32
29
  ),
33
30
  is_hidden: Literal["true", "false"] | None = typer.Option(
34
- None, "--is-hidden", help="""Person visibility"""
31
+ None, "--is-hidden", help="""Person visibility (hidden)"""
35
32
  ),
36
- name: str | None = typer.Option(None, "--name", help="""Person name."""),
33
+ name: str | None = typer.Option(None, "--name", help="""Person name"""),
37
34
  ) -> None:
38
35
  """Create a person
39
36
 
@@ -61,7 +58,7 @@ Note: the mobile app cannot currently set the birth date to null.""",
61
58
  @app.command("delete-people", deprecated=False, rich_help_panel="API commands")
62
59
  def delete_people(
63
60
  ctx: typer.Context,
64
- ids: list[str] = typer.Option(..., "--ids", help=""""""),
61
+ ids: list[str] = typer.Option(..., "--ids", help="""IDs to process"""),
65
62
  ) -> None:
66
63
  """Delete people
67
64
 
@@ -97,10 +94,10 @@ def delete_person(
97
94
  def get_all_people(
98
95
  ctx: typer.Context,
99
96
  closest_asset_id: str | None = typer.Option(
100
- None, "--closest-asset-id", help=""""""
97
+ None, "--closest-asset-id", help="""Closest asset ID for similarity search"""
101
98
  ),
102
99
  closest_person_id: str | None = typer.Option(
103
- None, "--closest-person-id", help=""""""
100
+ None, "--closest-person-id", help="""Closest person ID for similarity search"""
104
101
  ),
105
102
  page: float | None = typer.Option(
106
103
  None, "--page", help="""Page number for pagination""", min=1
@@ -109,7 +106,7 @@ def get_all_people(
109
106
  None, "--size", help="""Number of items per page""", min=1, max=1000
110
107
  ),
111
108
  with_hidden: Literal["true", "false"] | None = typer.Option(
112
- None, "--with-hidden", help=""""""
109
+ None, "--with-hidden", help="""Include hidden people"""
113
110
  ),
114
111
  ) -> None:
115
112
  """Get all people
@@ -184,7 +181,7 @@ def get_person_thumbnail(
184
181
  def merge_person(
185
182
  ctx: typer.Context,
186
183
  id: str = typer.Argument(..., help=""""""),
187
- ids: list[str] = typer.Option(..., "--ids", help=""""""),
184
+ ids: list[str] = typer.Option(..., "--ids", help="""Person IDs to merge"""),
188
185
  ) -> None:
189
186
  """Merge people
190
187
 
@@ -205,7 +202,13 @@ def merge_person(
205
202
  def reassign_faces(
206
203
  ctx: typer.Context,
207
204
  id: str = typer.Argument(..., help=""""""),
208
- data: list[str] = typer.Option(..., "--data", help="""As a JSON string"""),
205
+ data: list[str] = typer.Option(
206
+ ...,
207
+ "--data",
208
+ help="""Face update items
209
+
210
+ As a JSON string""",
211
+ ),
209
212
  ) -> None:
210
213
  """Reassign faces
211
214
 
@@ -226,7 +229,13 @@ def reassign_faces(
226
229
  @app.command("update-people", deprecated=False, rich_help_panel="API commands")
227
230
  def update_people(
228
231
  ctx: typer.Context,
229
- people: list[str] = typer.Option(..., "--people", help="""As a JSON string"""),
232
+ people: list[str] = typer.Option(
233
+ ...,
234
+ "--people",
235
+ help="""People to update
236
+
237
+ As a JSON string""",
238
+ ),
230
239
  ) -> None:
231
240
  """Update people
232
241
 
@@ -248,24 +257,21 @@ def update_person(
248
257
  ctx: typer.Context,
249
258
  id: str = typer.Argument(..., help=""""""),
250
259
  birth_date: str | None = typer.Option(
251
- None,
252
- "--birth-date",
253
- help="""Person date of birth.
254
- Note: the mobile app cannot currently set the birth date to null.""",
260
+ None, "--birth-date", help="""Person date of birth"""
255
261
  ),
256
- color: str | None = typer.Option(None, "--color", help=""""""),
262
+ color: str | None = typer.Option(None, "--color", help="""Person color (hex)"""),
257
263
  feature_face_asset_id: str | None = typer.Option(
258
264
  None,
259
265
  "--feature-face-asset-id",
260
- help="""Asset is used to get the feature face thumbnail.""",
266
+ help="""Asset ID used for feature face thumbnail""",
261
267
  ),
262
268
  is_favorite: Literal["true", "false"] | None = typer.Option(
263
- None, "--is-favorite", help=""""""
269
+ None, "--is-favorite", help="""Mark as favorite"""
264
270
  ),
265
271
  is_hidden: Literal["true", "false"] | None = typer.Option(
266
- None, "--is-hidden", help="""Person visibility"""
272
+ None, "--is-hidden", help="""Person visibility (hidden)"""
267
273
  ),
268
- name: str | None = typer.Option(None, "--name", help="""Person name."""),
274
+ name: str | None = typer.Option(None, "--name", help="""Person name"""),
269
275
  ) -> None:
270
276
  """Update person
271
277
 
@@ -32,6 +32,20 @@ def get_plugin(
32
32
  print_response(result, ctx)
33
33
 
34
34
 
35
+ @app.command("get-plugin-triggers", deprecated=False, rich_help_panel="API commands")
36
+ def get_plugin_triggers(
37
+ ctx: typer.Context,
38
+ ) -> None:
39
+ """List all plugin triggers
40
+
41
+ [link=https://api.immich.app/endpoints/plugins/getPluginTriggers]Immich API documentation[/link]
42
+ """
43
+ kwargs = {}
44
+ client: "AsyncClient" = ctx.obj["client"]
45
+ result = run_command(client, client.plugins, "get_plugin_triggers", ctx, **kwargs)
46
+ print_response(result, ctx)
47
+
48
+
35
49
  @app.command("get-plugins", deprecated=False, rich_help_panel="API commands")
36
50
  def get_plugins(
37
51
  ctx: typer.Context,
@@ -19,7 +19,7 @@ app = typer.Typer(
19
19
  @app.command("empty-queue", deprecated=False, rich_help_panel="API commands")
20
20
  def empty_queue(
21
21
  ctx: typer.Context,
22
- name: QueueName = typer.Argument(..., help=""""""),
22
+ name: QueueName = typer.Argument(..., help="""Queue name"""),
23
23
  failed: Literal["true", "false"] | None = typer.Option(
24
24
  None,
25
25
  "--failed",
@@ -45,7 +45,7 @@ def empty_queue(
45
45
  @app.command("get-queue", deprecated=False, rich_help_panel="API commands")
46
46
  def get_queue(
47
47
  ctx: typer.Context,
48
- name: QueueName = typer.Argument(..., help=""""""),
48
+ name: QueueName = typer.Argument(..., help="""Queue name"""),
49
49
  ) -> None:
50
50
  """Retrieve a queue
51
51
 
@@ -61,8 +61,10 @@ def get_queue(
61
61
  @app.command("get-queue-jobs", deprecated=False, rich_help_panel="API commands")
62
62
  def get_queue_jobs(
63
63
  ctx: typer.Context,
64
- name: QueueName = typer.Argument(..., help=""""""),
65
- status: list[QueueJobStatus] | None = typer.Option(None, "--status", help=""""""),
64
+ name: QueueName = typer.Argument(..., help="""Queue name"""),
65
+ status: list[QueueJobStatus] | None = typer.Option(
66
+ None, "--status", help="""Filter jobs by status"""
67
+ ),
66
68
  ) -> None:
67
69
  """Retrieve queue jobs
68
70
 
@@ -94,9 +96,9 @@ def get_queues(
94
96
  @app.command("update-queue", deprecated=False, rich_help_panel="API commands")
95
97
  def update_queue(
96
98
  ctx: typer.Context,
97
- name: QueueName = typer.Argument(..., help=""""""),
99
+ name: QueueName = typer.Argument(..., help="""Queue name"""),
98
100
  is_paused: Literal["true", "false"] | None = typer.Option(
99
- None, "--is-paused", help=""""""
101
+ None, "--is-paused", help="""Whether to pause the queue"""
100
102
  ),
101
103
  ) -> None:
102
104
  """Update a queue