immichpy 1.6.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 (439) hide show
  1. immichpy/.openapi-generator/FILES +387 -0
  2. immichpy/.openapi-generator/VERSION +1 -0
  3. immichpy/__init__.py +3 -0
  4. immichpy/cli/__main__.py +12 -0
  5. immichpy/cli/commands/activities.py +110 -0
  6. immichpy/cli/commands/albums.py +317 -0
  7. immichpy/cli/commands/api_keys.py +125 -0
  8. immichpy/cli/commands/assets.py +610 -0
  9. immichpy/cli/commands/authentication.py +343 -0
  10. immichpy/cli/commands/authentication_admin.py +34 -0
  11. immichpy/cli/commands/download.py +76 -0
  12. immichpy/cli/commands/duplicates.py +67 -0
  13. immichpy/cli/commands/faces.py +107 -0
  14. immichpy/cli/commands/jobs.py +75 -0
  15. immichpy/cli/commands/libraries.py +183 -0
  16. immichpy/cli/commands/maintenance_admin.py +59 -0
  17. immichpy/cli/commands/map.py +79 -0
  18. immichpy/cli/commands/memories.py +231 -0
  19. immichpy/cli/commands/notifications.py +152 -0
  20. immichpy/cli/commands/notifications_admin.py +127 -0
  21. immichpy/cli/commands/partners.py +108 -0
  22. immichpy/cli/commands/people.py +293 -0
  23. immichpy/cli/commands/plugins.py +46 -0
  24. immichpy/cli/commands/queues.py +115 -0
  25. immichpy/cli/commands/search.py +835 -0
  26. immichpy/cli/commands/server.py +237 -0
  27. immichpy/cli/commands/sessions.py +132 -0
  28. immichpy/cli/commands/shared_links.py +273 -0
  29. immichpy/cli/commands/stacks.py +153 -0
  30. immichpy/cli/commands/sync.py +140 -0
  31. immichpy/cli/commands/system_config.py +681 -0
  32. immichpy/cli/commands/system_metadata.py +91 -0
  33. immichpy/cli/commands/tags.py +191 -0
  34. immichpy/cli/commands/timeline.py +196 -0
  35. immichpy/cli/commands/trash.py +63 -0
  36. immichpy/cli/commands/users.py +406 -0
  37. immichpy/cli/commands/users_admin.py +444 -0
  38. immichpy/cli/commands/views.py +54 -0
  39. immichpy/cli/commands/workflows.py +140 -0
  40. immichpy/cli/consts.py +19 -0
  41. immichpy/cli/main.py +248 -0
  42. immichpy/cli/runtime.py +97 -0
  43. immichpy/cli/types.py +17 -0
  44. immichpy/cli/utils.py +227 -0
  45. immichpy/cli/wrapper/assets.py +223 -0
  46. immichpy/cli/wrapper/config.py +76 -0
  47. immichpy/cli/wrapper/download.py +77 -0
  48. immichpy/cli/wrapper/setup.py +90 -0
  49. immichpy/cli/wrapper/users.py +47 -0
  50. immichpy/client/.openapi-generator/FILES +371 -0
  51. immichpy/client/.openapi-generator/VERSION +1 -0
  52. immichpy/client/.openapi-generator-ignore +48 -0
  53. immichpy/client/__init__.py +0 -0
  54. immichpy/client/consts.py +1 -0
  55. immichpy/client/generated/__init__.py +1344 -0
  56. immichpy/client/generated/api/__init__.py +41 -0
  57. immichpy/client/generated/api/activities_api.py +1092 -0
  58. immichpy/client/generated/api/albums_api.py +3228 -0
  59. immichpy/client/generated/api/api_keys_api.py +1486 -0
  60. immichpy/client/generated/api/assets_api.py +5846 -0
  61. immichpy/client/generated/api/authentication_admin_api.py +254 -0
  62. immichpy/client/generated/api/authentication_api.py +3887 -0
  63. immichpy/client/generated/api/deprecated_api.py +2207 -0
  64. immichpy/client/generated/api/download_api.py +603 -0
  65. immichpy/client/generated/api/duplicates_api.py +743 -0
  66. immichpy/client/generated/api/faces_api.py +1055 -0
  67. immichpy/client/generated/api/jobs_api.py +787 -0
  68. immichpy/client/generated/api/libraries_api.py +2006 -0
  69. immichpy/client/generated/api/maintenance_admin_api.py +535 -0
  70. immichpy/client/generated/api/map_api.py +642 -0
  71. immichpy/client/generated/api/memories_api.py +2250 -0
  72. immichpy/client/generated/api/notifications_admin_api.py +812 -0
  73. immichpy/client/generated/api/notifications_api.py +1570 -0
  74. immichpy/client/generated/api/partners_api.py +1278 -0
  75. immichpy/client/generated/api/people_api.py +2905 -0
  76. immichpy/client/generated/api/plugins_api.py +503 -0
  77. immichpy/client/generated/api/queues_api.py +1292 -0
  78. immichpy/client/generated/api/search_api.py +3200 -0
  79. immichpy/client/generated/api/server_api.py +3474 -0
  80. immichpy/client/generated/api/sessions_api.py +1474 -0
  81. immichpy/client/generated/api/shared_links_api.py +2163 -0
  82. immichpy/client/generated/api/stacks_api.py +1769 -0
  83. immichpy/client/generated/api/sync_api.py +1514 -0
  84. immichpy/client/generated/api/system_config_api.py +967 -0
  85. immichpy/client/generated/api/system_metadata_api.py +966 -0
  86. immichpy/client/generated/api/tags_api.py +2298 -0
  87. immichpy/client/generated/api/timeline_api.py +1195 -0
  88. immichpy/client/generated/api/trash_api.py +739 -0
  89. immichpy/client/generated/api/users_admin_api.py +2613 -0
  90. immichpy/client/generated/api/users_api.py +3583 -0
  91. immichpy/client/generated/api/views_api.py +503 -0
  92. immichpy/client/generated/api/workflows_api.py +1257 -0
  93. immichpy/client/generated/api_client.py +756 -0
  94. immichpy/client/generated/api_response.py +20 -0
  95. immichpy/client/generated/configuration.py +638 -0
  96. immichpy/client/generated/exceptions.py +222 -0
  97. immichpy/client/generated/models/__init__.py +561 -0
  98. immichpy/client/generated/models/activity_create_dto.py +94 -0
  99. immichpy/client/generated/models/activity_response_dto.py +121 -0
  100. immichpy/client/generated/models/activity_statistics_response_dto.py +85 -0
  101. immichpy/client/generated/models/add_users_dto.py +101 -0
  102. immichpy/client/generated/models/admin_onboarding_update_dto.py +82 -0
  103. immichpy/client/generated/models/album_response_dto.py +201 -0
  104. immichpy/client/generated/models/album_statistics_response_dto.py +90 -0
  105. immichpy/client/generated/models/album_user_add_dto.py +87 -0
  106. immichpy/client/generated/models/album_user_create_dto.py +87 -0
  107. immichpy/client/generated/models/album_user_response_dto.py +95 -0
  108. immichpy/client/generated/models/album_user_role.py +34 -0
  109. immichpy/client/generated/models/albums_add_assets_dto.py +86 -0
  110. immichpy/client/generated/models/albums_add_assets_response_dto.py +86 -0
  111. immichpy/client/generated/models/albums_response.py +83 -0
  112. immichpy/client/generated/models/albums_update.py +85 -0
  113. immichpy/client/generated/models/api_key_create_dto.py +87 -0
  114. immichpy/client/generated/models/api_key_create_response_dto.py +94 -0
  115. immichpy/client/generated/models/api_key_response_dto.py +102 -0
  116. immichpy/client/generated/models/api_key_update_dto.py +87 -0
  117. immichpy/client/generated/models/asset_bulk_delete_dto.py +84 -0
  118. immichpy/client/generated/models/asset_bulk_update_dto.py +143 -0
  119. immichpy/client/generated/models/asset_bulk_upload_check_dto.py +100 -0
  120. immichpy/client/generated/models/asset_bulk_upload_check_item.py +85 -0
  121. immichpy/client/generated/models/asset_bulk_upload_check_response_dto.py +101 -0
  122. immichpy/client/generated/models/asset_bulk_upload_check_result.py +126 -0
  123. immichpy/client/generated/models/asset_copy_dto.py +113 -0
  124. immichpy/client/generated/models/asset_delta_sync_dto.py +87 -0
  125. immichpy/client/generated/models/asset_delta_sync_response_dto.py +102 -0
  126. immichpy/client/generated/models/asset_face_create_dto.py +110 -0
  127. immichpy/client/generated/models/asset_face_delete_dto.py +82 -0
  128. immichpy/client/generated/models/asset_face_response_dto.py +125 -0
  129. immichpy/client/generated/models/asset_face_update_dto.py +96 -0
  130. immichpy/client/generated/models/asset_face_update_item.py +86 -0
  131. immichpy/client/generated/models/asset_face_without_person_response_dto.py +111 -0
  132. immichpy/client/generated/models/asset_full_sync_dto.py +95 -0
  133. immichpy/client/generated/models/asset_ids_dto.py +83 -0
  134. immichpy/client/generated/models/asset_ids_response_dto.py +109 -0
  135. immichpy/client/generated/models/asset_job_name.py +36 -0
  136. immichpy/client/generated/models/asset_jobs_dto.py +87 -0
  137. immichpy/client/generated/models/asset_media_response_dto.py +84 -0
  138. immichpy/client/generated/models/asset_media_size.py +35 -0
  139. immichpy/client/generated/models/asset_media_status.py +35 -0
  140. immichpy/client/generated/models/asset_metadata_key.py +33 -0
  141. immichpy/client/generated/models/asset_metadata_response_dto.py +92 -0
  142. immichpy/client/generated/models/asset_metadata_upsert_dto.py +101 -0
  143. immichpy/client/generated/models/asset_metadata_upsert_item_dto.py +84 -0
  144. immichpy/client/generated/models/asset_ocr_response_dto.py +145 -0
  145. immichpy/client/generated/models/asset_order.py +34 -0
  146. immichpy/client/generated/models/asset_response_dto.py +293 -0
  147. immichpy/client/generated/models/asset_stack_response_dto.py +90 -0
  148. immichpy/client/generated/models/asset_stats_response_dto.py +90 -0
  149. immichpy/client/generated/models/asset_type_enum.py +36 -0
  150. immichpy/client/generated/models/asset_visibility.py +36 -0
  151. immichpy/client/generated/models/audio_codec.py +36 -0
  152. immichpy/client/generated/models/auth_status_response_dto.py +100 -0
  153. immichpy/client/generated/models/avatar_update.py +83 -0
  154. immichpy/client/generated/models/bulk_id_error_reason.py +36 -0
  155. immichpy/client/generated/models/bulk_id_response_dto.py +102 -0
  156. immichpy/client/generated/models/bulk_ids_dto.py +83 -0
  157. immichpy/client/generated/models/cast_response.py +88 -0
  158. immichpy/client/generated/models/cast_update.py +82 -0
  159. immichpy/client/generated/models/change_password_dto.py +101 -0
  160. immichpy/client/generated/models/check_existing_assets_dto.py +91 -0
  161. immichpy/client/generated/models/check_existing_assets_response_dto.py +82 -0
  162. immichpy/client/generated/models/clip_config.py +85 -0
  163. immichpy/client/generated/models/colorspace.py +34 -0
  164. immichpy/client/generated/models/contributor_count_response_dto.py +85 -0
  165. immichpy/client/generated/models/cq_mode.py +35 -0
  166. immichpy/client/generated/models/create_album_dto.py +112 -0
  167. immichpy/client/generated/models/create_library_dto.py +103 -0
  168. immichpy/client/generated/models/create_profile_image_response_dto.py +95 -0
  169. immichpy/client/generated/models/database_backup_config.py +94 -0
  170. immichpy/client/generated/models/download_archive_info.py +85 -0
  171. immichpy/client/generated/models/download_info_dto.py +96 -0
  172. immichpy/client/generated/models/download_response.py +90 -0
  173. immichpy/client/generated/models/download_response_dto.py +100 -0
  174. immichpy/client/generated/models/download_update.py +93 -0
  175. immichpy/client/generated/models/duplicate_detection_config.py +89 -0
  176. immichpy/client/generated/models/duplicate_response_dto.py +98 -0
  177. immichpy/client/generated/models/email_notifications_response.py +90 -0
  178. immichpy/client/generated/models/email_notifications_update.py +90 -0
  179. immichpy/client/generated/models/exif_response_dto.py +284 -0
  180. immichpy/client/generated/models/face_dto.py +83 -0
  181. immichpy/client/generated/models/facial_recognition_config.py +107 -0
  182. immichpy/client/generated/models/folders_response.py +92 -0
  183. immichpy/client/generated/models/folders_update.py +85 -0
  184. immichpy/client/generated/models/image_format.py +34 -0
  185. immichpy/client/generated/models/job_create_dto.py +83 -0
  186. immichpy/client/generated/models/job_name.py +87 -0
  187. immichpy/client/generated/models/job_settings_dto.py +83 -0
  188. immichpy/client/generated/models/library_response_dto.py +118 -0
  189. immichpy/client/generated/models/library_stats_response_dto.py +92 -0
  190. immichpy/client/generated/models/license_key_dto.py +98 -0
  191. immichpy/client/generated/models/license_response_dto.py +101 -0
  192. immichpy/client/generated/models/log_level.py +38 -0
  193. immichpy/client/generated/models/login_credential_dto.py +85 -0
  194. immichpy/client/generated/models/login_response_dto.py +109 -0
  195. immichpy/client/generated/models/logout_response_dto.py +85 -0
  196. immichpy/client/generated/models/machine_learning_availability_checks_dto.py +90 -0
  197. immichpy/client/generated/models/maintenance_action.py +34 -0
  198. immichpy/client/generated/models/maintenance_auth_dto.py +82 -0
  199. immichpy/client/generated/models/maintenance_login_dto.py +82 -0
  200. immichpy/client/generated/models/manual_job_name.py +38 -0
  201. immichpy/client/generated/models/map_marker_response_dto.py +111 -0
  202. immichpy/client/generated/models/map_reverse_geocode_response_dto.py +105 -0
  203. immichpy/client/generated/models/memories_response.py +92 -0
  204. immichpy/client/generated/models/memories_update.py +86 -0
  205. immichpy/client/generated/models/memory_create_dto.py +112 -0
  206. immichpy/client/generated/models/memory_response_dto.py +142 -0
  207. immichpy/client/generated/models/memory_search_order.py +35 -0
  208. immichpy/client/generated/models/memory_statistics_response_dto.py +82 -0
  209. immichpy/client/generated/models/memory_type.py +33 -0
  210. immichpy/client/generated/models/memory_update_dto.py +91 -0
  211. immichpy/client/generated/models/merge_person_dto.py +83 -0
  212. immichpy/client/generated/models/metadata_search_dto.py +277 -0
  213. immichpy/client/generated/models/notification_create_dto.py +120 -0
  214. immichpy/client/generated/models/notification_delete_all_dto.py +83 -0
  215. immichpy/client/generated/models/notification_dto.py +112 -0
  216. immichpy/client/generated/models/notification_level.py +36 -0
  217. immichpy/client/generated/models/notification_type.py +38 -0
  218. immichpy/client/generated/models/notification_update_all_dto.py +90 -0
  219. immichpy/client/generated/models/notification_update_dto.py +88 -0
  220. immichpy/client/generated/models/o_auth_authorize_response_dto.py +82 -0
  221. immichpy/client/generated/models/o_auth_callback_dto.py +90 -0
  222. immichpy/client/generated/models/o_auth_config_dto.py +90 -0
  223. immichpy/client/generated/models/o_auth_token_endpoint_auth_method.py +34 -0
  224. immichpy/client/generated/models/ocr_config.py +109 -0
  225. immichpy/client/generated/models/on_this_day_dto.py +86 -0
  226. immichpy/client/generated/models/onboarding_dto.py +82 -0
  227. immichpy/client/generated/models/onboarding_response_dto.py +82 -0
  228. immichpy/client/generated/models/partner_create_dto.py +83 -0
  229. immichpy/client/generated/models/partner_direction.py +34 -0
  230. immichpy/client/generated/models/partner_response_dto.py +108 -0
  231. immichpy/client/generated/models/partner_update_dto.py +82 -0
  232. immichpy/client/generated/models/people_response.py +92 -0
  233. immichpy/client/generated/models/people_response_dto.py +104 -0
  234. immichpy/client/generated/models/people_update.py +85 -0
  235. immichpy/client/generated/models/people_update_dto.py +96 -0
  236. immichpy/client/generated/models/people_update_item.py +128 -0
  237. immichpy/client/generated/models/permission.py +177 -0
  238. immichpy/client/generated/models/person_create_dto.py +117 -0
  239. immichpy/client/generated/models/person_response_dto.py +115 -0
  240. immichpy/client/generated/models/person_statistics_response_dto.py +82 -0
  241. immichpy/client/generated/models/person_update_dto.py +125 -0
  242. immichpy/client/generated/models/person_with_faces_response_dto.py +133 -0
  243. immichpy/client/generated/models/pin_code_change_dto.py +90 -0
  244. immichpy/client/generated/models/pin_code_reset_dto.py +85 -0
  245. immichpy/client/generated/models/pin_code_setup_dto.py +82 -0
  246. immichpy/client/generated/models/places_response_dto.py +100 -0
  247. immichpy/client/generated/models/plugin_action_response_dto.py +112 -0
  248. immichpy/client/generated/models/plugin_context.py +35 -0
  249. immichpy/client/generated/models/plugin_filter_response_dto.py +112 -0
  250. immichpy/client/generated/models/plugin_response_dto.py +143 -0
  251. immichpy/client/generated/models/plugin_trigger_type.py +34 -0
  252. immichpy/client/generated/models/purchase_response.py +88 -0
  253. immichpy/client/generated/models/purchase_update.py +92 -0
  254. immichpy/client/generated/models/queue_command.py +37 -0
  255. immichpy/client/generated/models/queue_command_dto.py +86 -0
  256. immichpy/client/generated/models/queue_delete_dto.py +85 -0
  257. immichpy/client/generated/models/queue_job_response_dto.py +93 -0
  258. immichpy/client/generated/models/queue_job_status.py +38 -0
  259. immichpy/client/generated/models/queue_name.py +49 -0
  260. immichpy/client/generated/models/queue_response_dto.py +97 -0
  261. immichpy/client/generated/models/queue_response_legacy_dto.py +102 -0
  262. immichpy/client/generated/models/queue_statistics_dto.py +103 -0
  263. immichpy/client/generated/models/queue_status_legacy_dto.py +85 -0
  264. immichpy/client/generated/models/queue_update_dto.py +82 -0
  265. immichpy/client/generated/models/queues_response_legacy_dto.py +244 -0
  266. immichpy/client/generated/models/random_search_dto.py +234 -0
  267. immichpy/client/generated/models/ratings_response.py +84 -0
  268. immichpy/client/generated/models/ratings_update.py +82 -0
  269. immichpy/client/generated/models/reaction_level.py +34 -0
  270. immichpy/client/generated/models/reaction_type.py +34 -0
  271. immichpy/client/generated/models/reverse_geocoding_state_response_dto.py +101 -0
  272. immichpy/client/generated/models/search_album_response_dto.py +116 -0
  273. immichpy/client/generated/models/search_asset_response_dto.py +129 -0
  274. immichpy/client/generated/models/search_explore_item.py +94 -0
  275. immichpy/client/generated/models/search_explore_response_dto.py +98 -0
  276. immichpy/client/generated/models/search_facet_count_response_dto.py +85 -0
  277. immichpy/client/generated/models/search_facet_response_dto.py +103 -0
  278. immichpy/client/generated/models/search_response_dto.py +104 -0
  279. immichpy/client/generated/models/search_statistics_response_dto.py +82 -0
  280. immichpy/client/generated/models/search_suggestion_type.py +38 -0
  281. immichpy/client/generated/models/server_about_response_dto.py +156 -0
  282. immichpy/client/generated/models/server_apk_links_dto.py +97 -0
  283. immichpy/client/generated/models/server_config_dto.py +118 -0
  284. immichpy/client/generated/models/server_features_dto.py +130 -0
  285. immichpy/client/generated/models/server_media_types_response_dto.py +90 -0
  286. immichpy/client/generated/models/server_ping_response.py +87 -0
  287. immichpy/client/generated/models/server_stats_response_dto.py +119 -0
  288. immichpy/client/generated/models/server_storage_response_dto.py +108 -0
  289. immichpy/client/generated/models/server_theme_dto.py +82 -0
  290. immichpy/client/generated/models/server_version_history_response_dto.py +91 -0
  291. immichpy/client/generated/models/server_version_response_dto.py +90 -0
  292. immichpy/client/generated/models/session_create_dto.py +96 -0
  293. immichpy/client/generated/models/session_create_response_dto.py +120 -0
  294. immichpy/client/generated/models/session_response_dto.py +117 -0
  295. immichpy/client/generated/models/session_unlock_dto.py +85 -0
  296. immichpy/client/generated/models/session_update_dto.py +84 -0
  297. immichpy/client/generated/models/set_maintenance_mode_dto.py +83 -0
  298. immichpy/client/generated/models/shared_link_create_dto.py +142 -0
  299. immichpy/client/generated/models/shared_link_edit_dto.py +134 -0
  300. immichpy/client/generated/models/shared_link_response_dto.py +173 -0
  301. immichpy/client/generated/models/shared_link_type.py +34 -0
  302. immichpy/client/generated/models/shared_links_response.py +92 -0
  303. immichpy/client/generated/models/shared_links_update.py +85 -0
  304. immichpy/client/generated/models/sign_up_dto.py +90 -0
  305. immichpy/client/generated/models/smart_search_dto.py +245 -0
  306. immichpy/client/generated/models/source_type.py +35 -0
  307. immichpy/client/generated/models/stack_create_dto.py +86 -0
  308. immichpy/client/generated/models/stack_response_dto.py +100 -0
  309. immichpy/client/generated/models/stack_update_dto.py +83 -0
  310. immichpy/client/generated/models/statistics_search_dto.py +217 -0
  311. immichpy/client/generated/models/sync_ack_delete_dto.py +83 -0
  312. immichpy/client/generated/models/sync_ack_dto.py +84 -0
  313. immichpy/client/generated/models/sync_ack_set_dto.py +83 -0
  314. immichpy/client/generated/models/sync_album_delete_v1.py +82 -0
  315. immichpy/client/generated/models/sync_album_to_asset_delete_v1.py +85 -0
  316. immichpy/client/generated/models/sync_album_to_asset_v1.py +85 -0
  317. immichpy/client/generated/models/sync_album_user_delete_v1.py +85 -0
  318. immichpy/client/generated/models/sync_album_user_v1.py +91 -0
  319. immichpy/client/generated/models/sync_album_v1.py +122 -0
  320. immichpy/client/generated/models/sync_asset_delete_v1.py +82 -0
  321. immichpy/client/generated/models/sync_asset_exif_v1.py +296 -0
  322. immichpy/client/generated/models/sync_asset_face_delete_v1.py +82 -0
  323. immichpy/client/generated/models/sync_asset_face_v1.py +120 -0
  324. immichpy/client/generated/models/sync_asset_metadata_delete_v1.py +86 -0
  325. immichpy/client/generated/models/sync_asset_metadata_v1.py +91 -0
  326. immichpy/client/generated/models/sync_asset_v1.py +187 -0
  327. immichpy/client/generated/models/sync_auth_user_v1.py +154 -0
  328. immichpy/client/generated/models/sync_entity_type.py +79 -0
  329. immichpy/client/generated/models/sync_memory_asset_delete_v1.py +85 -0
  330. immichpy/client/generated/models/sync_memory_asset_v1.py +85 -0
  331. immichpy/client/generated/models/sync_memory_delete_v1.py +82 -0
  332. immichpy/client/generated/models/sync_memory_v1.py +143 -0
  333. immichpy/client/generated/models/sync_partner_delete_v1.py +88 -0
  334. immichpy/client/generated/models/sync_partner_v1.py +90 -0
  335. immichpy/client/generated/models/sync_person_delete_v1.py +82 -0
  336. immichpy/client/generated/models/sync_person_v1.py +131 -0
  337. immichpy/client/generated/models/sync_request_type.py +52 -0
  338. immichpy/client/generated/models/sync_stack_delete_v1.py +82 -0
  339. immichpy/client/generated/models/sync_stack_v1.py +101 -0
  340. immichpy/client/generated/models/sync_stream_dto.py +86 -0
  341. immichpy/client/generated/models/sync_user_delete_v1.py +82 -0
  342. immichpy/client/generated/models/sync_user_metadata_delete_v1.py +84 -0
  343. immichpy/client/generated/models/sync_user_metadata_v1.py +91 -0
  344. immichpy/client/generated/models/sync_user_v1.py +118 -0
  345. immichpy/client/generated/models/system_config_backups_dto.py +92 -0
  346. immichpy/client/generated/models/system_config_dto.py +324 -0
  347. immichpy/client/generated/models/system_config_f_fmpeg_dto.py +156 -0
  348. immichpy/client/generated/models/system_config_faces_dto.py +82 -0
  349. immichpy/client/generated/models/system_config_generated_fullsize_image_dto.py +92 -0
  350. immichpy/client/generated/models/system_config_generated_image_dto.py +92 -0
  351. immichpy/client/generated/models/system_config_image_dto.py +124 -0
  352. immichpy/client/generated/models/system_config_job_dto.py +194 -0
  353. immichpy/client/generated/models/system_config_library_dto.py +104 -0
  354. immichpy/client/generated/models/system_config_library_scan_dto.py +85 -0
  355. immichpy/client/generated/models/system_config_library_watch_dto.py +82 -0
  356. immichpy/client/generated/models/system_config_logging_dto.py +86 -0
  357. immichpy/client/generated/models/system_config_machine_learning_dto.py +151 -0
  358. immichpy/client/generated/models/system_config_map_dto.py +90 -0
  359. immichpy/client/generated/models/system_config_metadata_dto.py +94 -0
  360. immichpy/client/generated/models/system_config_new_version_check_dto.py +82 -0
  361. immichpy/client/generated/models/system_config_nightly_tasks_dto.py +103 -0
  362. immichpy/client/generated/models/system_config_notifications_dto.py +92 -0
  363. immichpy/client/generated/models/system_config_o_auth_dto.py +155 -0
  364. immichpy/client/generated/models/system_config_password_login_dto.py +82 -0
  365. immichpy/client/generated/models/system_config_reverse_geocoding_dto.py +82 -0
  366. immichpy/client/generated/models/system_config_server_dto.py +94 -0
  367. immichpy/client/generated/models/system_config_smtp_dto.py +100 -0
  368. immichpy/client/generated/models/system_config_smtp_transport_dto.py +107 -0
  369. immichpy/client/generated/models/system_config_storage_template_dto.py +94 -0
  370. immichpy/client/generated/models/system_config_template_emails_dto.py +94 -0
  371. immichpy/client/generated/models/system_config_template_storage_option_dto.py +109 -0
  372. immichpy/client/generated/models/system_config_templates_dto.py +94 -0
  373. immichpy/client/generated/models/system_config_theme_dto.py +82 -0
  374. immichpy/client/generated/models/system_config_trash_dto.py +86 -0
  375. immichpy/client/generated/models/system_config_user_dto.py +83 -0
  376. immichpy/client/generated/models/tag_bulk_assets_dto.py +86 -0
  377. immichpy/client/generated/models/tag_bulk_assets_response_dto.py +82 -0
  378. immichpy/client/generated/models/tag_create_dto.py +111 -0
  379. immichpy/client/generated/models/tag_response_dto.py +107 -0
  380. immichpy/client/generated/models/tag_update_dto.py +87 -0
  381. immichpy/client/generated/models/tag_upsert_dto.py +82 -0
  382. immichpy/client/generated/models/tags_response.py +92 -0
  383. immichpy/client/generated/models/tags_update.py +85 -0
  384. immichpy/client/generated/models/template_dto.py +82 -0
  385. immichpy/client/generated/models/template_response_dto.py +83 -0
  386. immichpy/client/generated/models/test_email_response_dto.py +82 -0
  387. immichpy/client/generated/models/time_bucket_asset_response_dto.py +195 -0
  388. immichpy/client/generated/models/time_buckets_response_dto.py +88 -0
  389. immichpy/client/generated/models/tone_mapping.py +36 -0
  390. immichpy/client/generated/models/transcode_hw_accel.py +37 -0
  391. immichpy/client/generated/models/transcode_policy.py +37 -0
  392. immichpy/client/generated/models/trash_response_dto.py +82 -0
  393. immichpy/client/generated/models/update_album_dto.py +106 -0
  394. immichpy/client/generated/models/update_album_user_dto.py +83 -0
  395. immichpy/client/generated/models/update_asset_dto.py +135 -0
  396. immichpy/client/generated/models/update_library_dto.py +95 -0
  397. immichpy/client/generated/models/usage_by_user_dto.py +117 -0
  398. immichpy/client/generated/models/user_admin_create_dto.py +136 -0
  399. immichpy/client/generated/models/user_admin_delete_dto.py +82 -0
  400. immichpy/client/generated/models/user_admin_response_dto.py +176 -0
  401. immichpy/client/generated/models/user_admin_update_dto.py +141 -0
  402. immichpy/client/generated/models/user_avatar_color.py +42 -0
  403. immichpy/client/generated/models/user_license.py +91 -0
  404. immichpy/client/generated/models/user_metadata_key.py +35 -0
  405. immichpy/client/generated/models/user_preferences_response_dto.py +188 -0
  406. immichpy/client/generated/models/user_preferences_update_dto.py +199 -0
  407. immichpy/client/generated/models/user_response_dto.py +105 -0
  408. immichpy/client/generated/models/user_status.py +35 -0
  409. immichpy/client/generated/models/user_update_me_dto.py +98 -0
  410. immichpy/client/generated/models/validate_access_token_response_dto.py +82 -0
  411. immichpy/client/generated/models/validate_library_dto.py +93 -0
  412. immichpy/client/generated/models/validate_library_import_path_response_dto.py +92 -0
  413. immichpy/client/generated/models/validate_library_response_dto.py +103 -0
  414. immichpy/client/generated/models/version_check_state_response_dto.py +98 -0
  415. immichpy/client/generated/models/video_codec.py +36 -0
  416. immichpy/client/generated/models/video_container.py +36 -0
  417. immichpy/client/generated/models/workflow_action_item_dto.py +89 -0
  418. immichpy/client/generated/models/workflow_action_response_dto.py +105 -0
  419. immichpy/client/generated/models/workflow_create_dto.py +132 -0
  420. immichpy/client/generated/models/workflow_filter_item_dto.py +89 -0
  421. immichpy/client/generated/models/workflow_filter_response_dto.py +105 -0
  422. immichpy/client/generated/models/workflow_response_dto.py +163 -0
  423. immichpy/client/generated/models/workflow_update_dto.py +128 -0
  424. immichpy/client/generated/py.typed +0 -0
  425. immichpy/client/generated/rest.py +199 -0
  426. immichpy/client/main.py +375 -0
  427. immichpy/client/types.py +65 -0
  428. immichpy/client/utils/download.py +249 -0
  429. immichpy/client/utils/upload.py +462 -0
  430. immichpy/client/wrapper/__init__.py +0 -0
  431. immichpy/client/wrapper/assets_api_wrapped.py +254 -0
  432. immichpy/client/wrapper/download_api_wrapped.py +118 -0
  433. immichpy/client/wrapper/users_api_wrapped.py +54 -0
  434. immichpy/py.typed +0 -0
  435. immichpy-1.6.5.dist-info/METADATA +67 -0
  436. immichpy-1.6.5.dist-info/RECORD +439 -0
  437. immichpy-1.6.5.dist-info/WHEEL +4 -0
  438. immichpy-1.6.5.dist-info/entry_points.txt +3 -0
  439. immichpy-1.6.5.dist-info/licenses/LICENSE +9 -0
@@ -0,0 +1,317 @@
1
+ """Generated CLI commands for Albums tag (auto-generated, do not edit)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import typer
6
+ import json
7
+ from typing import Literal, TYPE_CHECKING
8
+
9
+ if TYPE_CHECKING:
10
+ from immichpy import AsyncClient
11
+
12
+ from immichpy.cli.runtime import print_response, run_command, set_nested
13
+ from immichpy.client.generated.models import *
14
+
15
+ app = typer.Typer(
16
+ help="""An album is a collection of assets that can be shared with other users or via shared links.\n\n[link=https://api.immich.app/endpoints/albums]Immich API documentation[/link]"""
17
+ )
18
+
19
+
20
+ @app.command("add-assets-to-album", deprecated=False, rich_help_panel="API commands")
21
+ def add_assets_to_album(
22
+ ctx: typer.Context,
23
+ id: str = typer.Argument(..., help=""""""),
24
+ ids: list[str] = typer.Option(..., "--ids", help=""""""),
25
+ key: str | None = typer.Option(None, "--key", help=""""""),
26
+ slug: str | None = typer.Option(None, "--slug", help=""""""),
27
+ ) -> None:
28
+ """Add assets to an album
29
+
30
+ [link=https://api.immich.app/endpoints/albums/addAssetsToAlbum]Immich API documentation[/link]
31
+ """
32
+ kwargs = {}
33
+ json_data = {}
34
+ kwargs["id"] = id
35
+ if key is not None:
36
+ kwargs["key"] = key
37
+ if slug is not None:
38
+ kwargs["slug"] = slug
39
+ set_nested(json_data, ["ids"], ids)
40
+ bulk_ids_dto = BulkIdsDto.model_validate(json_data)
41
+ kwargs["bulk_ids_dto"] = bulk_ids_dto
42
+ client: "AsyncClient" = ctx.obj["client"]
43
+ result = run_command(client, client.albums, "add_assets_to_album", ctx, **kwargs)
44
+ print_response(result, ctx)
45
+
46
+
47
+ @app.command("add-assets-to-albums", deprecated=False, rich_help_panel="API commands")
48
+ def add_assets_to_albums(
49
+ ctx: typer.Context,
50
+ album_ids: list[str] = typer.Option(..., "--album-ids", help=""""""),
51
+ asset_ids: list[str] = typer.Option(..., "--asset-ids", help=""""""),
52
+ key: str | None = typer.Option(None, "--key", help=""""""),
53
+ slug: str | None = typer.Option(None, "--slug", help=""""""),
54
+ ) -> None:
55
+ """Add assets to albums
56
+
57
+ [link=https://api.immich.app/endpoints/albums/addAssetsToAlbums]Immich API documentation[/link]
58
+ """
59
+ kwargs = {}
60
+ json_data = {}
61
+ if key is not None:
62
+ kwargs["key"] = key
63
+ if slug is not None:
64
+ kwargs["slug"] = slug
65
+ set_nested(json_data, ["album_ids"], album_ids)
66
+ set_nested(json_data, ["asset_ids"], asset_ids)
67
+ albums_add_assets_dto = AlbumsAddAssetsDto.model_validate(json_data)
68
+ kwargs["albums_add_assets_dto"] = albums_add_assets_dto
69
+ client: "AsyncClient" = ctx.obj["client"]
70
+ result = run_command(client, client.albums, "add_assets_to_albums", ctx, **kwargs)
71
+ print_response(result, ctx)
72
+
73
+
74
+ @app.command("add-users-to-album", deprecated=False, rich_help_panel="API commands")
75
+ def add_users_to_album(
76
+ ctx: typer.Context,
77
+ id: str = typer.Argument(..., help=""""""),
78
+ album_users: list[str] = typer.Option(
79
+ ..., "--album-users", help="""As a JSON string"""
80
+ ),
81
+ ) -> None:
82
+ """Share album with users
83
+
84
+ [link=https://api.immich.app/endpoints/albums/addUsersToAlbum]Immich API documentation[/link]
85
+ """
86
+ kwargs = {}
87
+ json_data = {}
88
+ kwargs["id"] = id
89
+ value_album_users = [json.loads(i) for i in album_users]
90
+ set_nested(json_data, ["album_users"], value_album_users)
91
+ add_users_dto = AddUsersDto.model_validate(json_data)
92
+ kwargs["add_users_dto"] = add_users_dto
93
+ client: "AsyncClient" = ctx.obj["client"]
94
+ result = run_command(client, client.albums, "add_users_to_album", ctx, **kwargs)
95
+ print_response(result, ctx)
96
+
97
+
98
+ @app.command("create-album", deprecated=False, rich_help_panel="API commands")
99
+ def create_album(
100
+ ctx: typer.Context,
101
+ album_name: str = typer.Option(..., "--album-name", help=""""""),
102
+ album_users: list[str] | None = typer.Option(
103
+ None, "--album-users", help="""As a JSON string"""
104
+ ),
105
+ asset_ids: list[str] | None = typer.Option(None, "--asset-ids", help=""""""),
106
+ description: str | None = typer.Option(None, "--description", help=""""""),
107
+ ) -> None:
108
+ """Create an album
109
+
110
+ [link=https://api.immich.app/endpoints/albums/createAlbum]Immich API documentation[/link]
111
+ """
112
+ kwargs = {}
113
+ json_data = {}
114
+ set_nested(json_data, ["album_name"], album_name)
115
+ if album_users is not None:
116
+ value_album_users = [json.loads(i) for i in album_users]
117
+ set_nested(json_data, ["album_users"], value_album_users)
118
+ if asset_ids is not None:
119
+ set_nested(json_data, ["asset_ids"], asset_ids)
120
+ if description is not None:
121
+ set_nested(json_data, ["description"], description)
122
+ create_album_dto = CreateAlbumDto.model_validate(json_data)
123
+ kwargs["create_album_dto"] = create_album_dto
124
+ client: "AsyncClient" = ctx.obj["client"]
125
+ result = run_command(client, client.albums, "create_album", ctx, **kwargs)
126
+ print_response(result, ctx)
127
+
128
+
129
+ @app.command("delete-album", deprecated=False, rich_help_panel="API commands")
130
+ def delete_album(
131
+ ctx: typer.Context,
132
+ id: str = typer.Argument(..., help=""""""),
133
+ ) -> None:
134
+ """Delete an album
135
+
136
+ [link=https://api.immich.app/endpoints/albums/deleteAlbum]Immich API documentation[/link]
137
+ """
138
+ kwargs = {}
139
+ kwargs["id"] = id
140
+ client: "AsyncClient" = ctx.obj["client"]
141
+ result = run_command(client, client.albums, "delete_album", ctx, **kwargs)
142
+ print_response(result, ctx)
143
+
144
+
145
+ @app.command("get-album-info", deprecated=False, rich_help_panel="API commands")
146
+ def get_album_info(
147
+ ctx: typer.Context,
148
+ id: str = typer.Argument(..., help=""""""),
149
+ key: str | None = typer.Option(None, "--key", help=""""""),
150
+ slug: str | None = typer.Option(None, "--slug", help=""""""),
151
+ without_assets: Literal["true", "false"] | None = typer.Option(
152
+ None, "--without-assets", help=""""""
153
+ ),
154
+ ) -> None:
155
+ """Retrieve an album
156
+
157
+ [link=https://api.immich.app/endpoints/albums/getAlbumInfo]Immich API documentation[/link]
158
+ """
159
+ kwargs = {}
160
+ kwargs["id"] = id
161
+ if key is not None:
162
+ kwargs["key"] = key
163
+ if slug is not None:
164
+ kwargs["slug"] = slug
165
+ if without_assets is not None:
166
+ kwargs["without_assets"] = without_assets.lower() == "true"
167
+ client: "AsyncClient" = ctx.obj["client"]
168
+ result = run_command(client, client.albums, "get_album_info", ctx, **kwargs)
169
+ print_response(result, ctx)
170
+
171
+
172
+ @app.command("get-album-statistics", deprecated=False, rich_help_panel="API commands")
173
+ def get_album_statistics(
174
+ ctx: typer.Context,
175
+ ) -> None:
176
+ """Retrieve album statistics
177
+
178
+ [link=https://api.immich.app/endpoints/albums/getAlbumStatistics]Immich API documentation[/link]
179
+ """
180
+ kwargs = {}
181
+ client: "AsyncClient" = ctx.obj["client"]
182
+ result = run_command(client, client.albums, "get_album_statistics", ctx, **kwargs)
183
+ print_response(result, ctx)
184
+
185
+
186
+ @app.command("get-all-albums", deprecated=False, rich_help_panel="API commands")
187
+ def get_all_albums(
188
+ ctx: typer.Context,
189
+ asset_id: str | None = typer.Option(
190
+ None,
191
+ "--asset-id",
192
+ help="""Only returns albums that contain the asset
193
+ Ignores the shared parameter
194
+ undefined: get all albums""",
195
+ ),
196
+ shared: Literal["true", "false"] | None = typer.Option(
197
+ None, "--shared", help=""""""
198
+ ),
199
+ ) -> None:
200
+ """List all albums
201
+
202
+ [link=https://api.immich.app/endpoints/albums/getAllAlbums]Immich API documentation[/link]
203
+ """
204
+ kwargs = {}
205
+ if asset_id is not None:
206
+ kwargs["asset_id"] = asset_id
207
+ if shared is not None:
208
+ kwargs["shared"] = shared.lower() == "true"
209
+ client: "AsyncClient" = ctx.obj["client"]
210
+ result = run_command(client, client.albums, "get_all_albums", ctx, **kwargs)
211
+ print_response(result, ctx)
212
+
213
+
214
+ @app.command(
215
+ "remove-asset-from-album", deprecated=False, rich_help_panel="API commands"
216
+ )
217
+ def remove_asset_from_album(
218
+ ctx: typer.Context,
219
+ id: str = typer.Argument(..., help=""""""),
220
+ ids: list[str] = typer.Option(..., "--ids", help=""""""),
221
+ ) -> None:
222
+ """Remove assets from an album
223
+
224
+ [link=https://api.immich.app/endpoints/albums/removeAssetFromAlbum]Immich API documentation[/link]
225
+ """
226
+ kwargs = {}
227
+ json_data = {}
228
+ kwargs["id"] = id
229
+ set_nested(json_data, ["ids"], ids)
230
+ bulk_ids_dto = BulkIdsDto.model_validate(json_data)
231
+ kwargs["bulk_ids_dto"] = bulk_ids_dto
232
+ client: "AsyncClient" = ctx.obj["client"]
233
+ result = run_command(
234
+ client, client.albums, "remove_asset_from_album", ctx, **kwargs
235
+ )
236
+ print_response(result, ctx)
237
+
238
+
239
+ @app.command("remove-user-from-album", deprecated=False, rich_help_panel="API commands")
240
+ def remove_user_from_album(
241
+ ctx: typer.Context,
242
+ id: str = typer.Argument(..., help=""""""),
243
+ user_id: str = typer.Argument(..., help=""""""),
244
+ ) -> None:
245
+ """Remove user from album
246
+
247
+ [link=https://api.immich.app/endpoints/albums/removeUserFromAlbum]Immich API documentation[/link]
248
+ """
249
+ kwargs = {}
250
+ kwargs["id"] = id
251
+ kwargs["user_id"] = user_id
252
+ client: "AsyncClient" = ctx.obj["client"]
253
+ result = run_command(client, client.albums, "remove_user_from_album", ctx, **kwargs)
254
+ print_response(result, ctx)
255
+
256
+
257
+ @app.command("update-album-info", deprecated=False, rich_help_panel="API commands")
258
+ def update_album_info(
259
+ ctx: typer.Context,
260
+ id: str = typer.Argument(..., help=""""""),
261
+ album_name: str | None = typer.Option(None, "--album-name", help=""""""),
262
+ album_thumbnail_asset_id: str | None = typer.Option(
263
+ None, "--album-thumbnail-asset-id", help=""""""
264
+ ),
265
+ description: str | None = typer.Option(None, "--description", help=""""""),
266
+ is_activity_enabled: Literal["true", "false"] | None = typer.Option(
267
+ None, "--is-activity-enabled", help=""""""
268
+ ),
269
+ order: str | None = typer.Option(None, "--order", help=""""""),
270
+ ) -> None:
271
+ """Update an album
272
+
273
+ [link=https://api.immich.app/endpoints/albums/updateAlbumInfo]Immich API documentation[/link]
274
+ """
275
+ kwargs = {}
276
+ json_data = {}
277
+ kwargs["id"] = id
278
+ if album_name is not None:
279
+ set_nested(json_data, ["album_name"], album_name)
280
+ if album_thumbnail_asset_id is not None:
281
+ set_nested(json_data, ["album_thumbnail_asset_id"], album_thumbnail_asset_id)
282
+ if description is not None:
283
+ set_nested(json_data, ["description"], description)
284
+ if is_activity_enabled is not None:
285
+ set_nested(
286
+ json_data, ["is_activity_enabled"], is_activity_enabled.lower() == "true"
287
+ )
288
+ if order is not None:
289
+ set_nested(json_data, ["order"], order)
290
+ update_album_dto = UpdateAlbumDto.model_validate(json_data)
291
+ kwargs["update_album_dto"] = update_album_dto
292
+ client: "AsyncClient" = ctx.obj["client"]
293
+ result = run_command(client, client.albums, "update_album_info", ctx, **kwargs)
294
+ print_response(result, ctx)
295
+
296
+
297
+ @app.command("update-album-user", deprecated=False, rich_help_panel="API commands")
298
+ def update_album_user(
299
+ ctx: typer.Context,
300
+ id: str = typer.Argument(..., help=""""""),
301
+ user_id: str = typer.Argument(..., help=""""""),
302
+ role: str = typer.Option(..., "--role", help=""""""),
303
+ ) -> None:
304
+ """Update user role
305
+
306
+ [link=https://api.immich.app/endpoints/albums/updateAlbumUser]Immich API documentation[/link]
307
+ """
308
+ kwargs = {}
309
+ json_data = {}
310
+ kwargs["id"] = id
311
+ kwargs["user_id"] = user_id
312
+ set_nested(json_data, ["role"], role)
313
+ update_album_user_dto = UpdateAlbumUserDto.model_validate(json_data)
314
+ kwargs["update_album_user_dto"] = update_album_user_dto
315
+ client: "AsyncClient" = ctx.obj["client"]
316
+ result = run_command(client, client.albums, "update_album_user", ctx, **kwargs)
317
+ print_response(result, ctx)
@@ -0,0 +1,125 @@
1
+ """Generated CLI commands for API keys tag (auto-generated, do not edit)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import typer
6
+ from typing import TYPE_CHECKING
7
+
8
+ if TYPE_CHECKING:
9
+ from immichpy import AsyncClient
10
+
11
+ from immichpy.cli.runtime import print_response, run_command, set_nested
12
+ from immichpy.client.generated.models import *
13
+
14
+ app = typer.Typer(
15
+ help="""An api key can be used to programmatically access the Immich API.\n\n[link=https://api.immich.app/endpoints/api-keys]Immich API documentation[/link]"""
16
+ )
17
+
18
+
19
+ @app.command("create-api-key", deprecated=False, rich_help_panel="API commands")
20
+ def create_api_key(
21
+ ctx: typer.Context,
22
+ name: str | None = typer.Option(None, "--name", help=""""""),
23
+ permissions: list[Permission] = typer.Option(..., "--permissions", help=""""""),
24
+ ) -> None:
25
+ """Create an API key
26
+
27
+ [link=https://api.immich.app/endpoints/api-keys/createApiKey]Immich API documentation[/link]
28
+ """
29
+ kwargs = {}
30
+ json_data = {}
31
+ if name is not None:
32
+ set_nested(json_data, ["name"], name)
33
+ set_nested(json_data, ["permissions"], permissions)
34
+ api_key_create_dto = APIKeyCreateDto.model_validate(json_data)
35
+ kwargs["api_key_create_dto"] = api_key_create_dto
36
+ client: "AsyncClient" = ctx.obj["client"]
37
+ result = run_command(client, client.api_keys, "create_api_key", ctx, **kwargs)
38
+ print_response(result, ctx)
39
+
40
+
41
+ @app.command("delete-api-key", deprecated=False, rich_help_panel="API commands")
42
+ def delete_api_key(
43
+ ctx: typer.Context,
44
+ id: str = typer.Argument(..., help=""""""),
45
+ ) -> None:
46
+ """Delete an API key
47
+
48
+ [link=https://api.immich.app/endpoints/api-keys/deleteApiKey]Immich API documentation[/link]
49
+ """
50
+ kwargs = {}
51
+ kwargs["id"] = id
52
+ client: "AsyncClient" = ctx.obj["client"]
53
+ result = run_command(client, client.api_keys, "delete_api_key", ctx, **kwargs)
54
+ print_response(result, ctx)
55
+
56
+
57
+ @app.command("get-api-key", deprecated=False, rich_help_panel="API commands")
58
+ def get_api_key(
59
+ ctx: typer.Context,
60
+ id: str = typer.Argument(..., help=""""""),
61
+ ) -> None:
62
+ """Retrieve an API key
63
+
64
+ [link=https://api.immich.app/endpoints/api-keys/getApiKey]Immich API documentation[/link]
65
+ """
66
+ kwargs = {}
67
+ kwargs["id"] = id
68
+ client: "AsyncClient" = ctx.obj["client"]
69
+ result = run_command(client, client.api_keys, "get_api_key", ctx, **kwargs)
70
+ print_response(result, ctx)
71
+
72
+
73
+ @app.command("get-api-keys", deprecated=False, rich_help_panel="API commands")
74
+ def get_api_keys(
75
+ ctx: typer.Context,
76
+ ) -> None:
77
+ """List all API keys
78
+
79
+ [link=https://api.immich.app/endpoints/api-keys/getApiKeys]Immich API documentation[/link]
80
+ """
81
+ kwargs = {}
82
+ client: "AsyncClient" = ctx.obj["client"]
83
+ result = run_command(client, client.api_keys, "get_api_keys", ctx, **kwargs)
84
+ print_response(result, ctx)
85
+
86
+
87
+ @app.command("get-my-api-key", deprecated=False, rich_help_panel="API commands")
88
+ def get_my_api_key(
89
+ ctx: typer.Context,
90
+ ) -> None:
91
+ """Retrieve the current API key
92
+
93
+ [link=https://api.immich.app/endpoints/api-keys/getMyApiKey]Immich API documentation[/link]
94
+ """
95
+ kwargs = {}
96
+ client: "AsyncClient" = ctx.obj["client"]
97
+ result = run_command(client, client.api_keys, "get_my_api_key", ctx, **kwargs)
98
+ print_response(result, ctx)
99
+
100
+
101
+ @app.command("update-api-key", deprecated=False, rich_help_panel="API commands")
102
+ def update_api_key(
103
+ ctx: typer.Context,
104
+ id: str = typer.Argument(..., help=""""""),
105
+ name: str | None = typer.Option(None, "--name", help=""""""),
106
+ permissions: list[Permission] | None = typer.Option(
107
+ None, "--permissions", help=""""""
108
+ ),
109
+ ) -> None:
110
+ """Update an API key
111
+
112
+ [link=https://api.immich.app/endpoints/api-keys/updateApiKey]Immich API documentation[/link]
113
+ """
114
+ kwargs = {}
115
+ json_data = {}
116
+ kwargs["id"] = id
117
+ if name is not None:
118
+ set_nested(json_data, ["name"], name)
119
+ if permissions is not None:
120
+ set_nested(json_data, ["permissions"], permissions)
121
+ api_key_update_dto = APIKeyUpdateDto.model_validate(json_data)
122
+ kwargs["api_key_update_dto"] = api_key_update_dto
123
+ client: "AsyncClient" = ctx.obj["client"]
124
+ result = run_command(client, client.api_keys, "update_api_key", ctx, **kwargs)
125
+ print_response(result, ctx)