immich 1.2.1__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 (387) hide show
  1. immich/.openapi-generator/FILES +372 -0
  2. immich/.openapi-generator/VERSION +1 -0
  3. immich/.openapi-generator-ignore +48 -0
  4. immich/__init__.py +3 -0
  5. immich/client/__init__.py +1162 -0
  6. immich/client/api/__init__.py +39 -0
  7. immich/client/api/activities_api.py +1092 -0
  8. immich/client/api/albums_api.py +3228 -0
  9. immich/client/api/api_keys_api.py +1484 -0
  10. immich/client/api/assets_api.py +5834 -0
  11. immich/client/api/authentication_admin_api.py +254 -0
  12. immich/client/api/authentication_api.py +3881 -0
  13. immich/client/api/deprecated_api.py +2199 -0
  14. immich/client/api/download_api.py +603 -0
  15. immich/client/api/duplicates_api.py +743 -0
  16. immich/client/api/faces_api.py +1053 -0
  17. immich/client/api/jobs_api.py +783 -0
  18. immich/client/api/libraries_api.py +2004 -0
  19. immich/client/api/maintenance_admin_api.py +533 -0
  20. immich/client/api/map_api.py +640 -0
  21. immich/client/api/memories_api.py +2250 -0
  22. immich/client/api/notifications_admin_api.py +808 -0
  23. immich/client/api/notifications_api.py +1564 -0
  24. immich/client/api/partners_api.py +1278 -0
  25. immich/client/api/people_api.py +2905 -0
  26. immich/client/api/plugins_api.py +730 -0
  27. immich/client/api/queues_api.py +1292 -0
  28. immich/client/api/search_api.py +3198 -0
  29. immich/client/api/server_api.py +3466 -0
  30. immich/client/api/sessions_api.py +1472 -0
  31. immich/client/api/shared_links_api.py +2177 -0
  32. immich/client/api/stacks_api.py +1769 -0
  33. immich/client/api/sync_api.py +1512 -0
  34. immich/client/api/system_config_api.py +967 -0
  35. immich/client/api/system_metadata_api.py +964 -0
  36. immich/client/api/tags_api.py +2296 -0
  37. immich/client/api/timeline_api.py +1193 -0
  38. immich/client/api/trash_api.py +739 -0
  39. immich/client/api/users_admin_api.py +2607 -0
  40. immich/client/api/users_api.py +3577 -0
  41. immich/client/api/views_api.py +503 -0
  42. immich/client/api/workflows_api.py +1257 -0
  43. immich/client/api_client.py +756 -0
  44. immich/client/api_response.py +20 -0
  45. immich/client/configuration.py +638 -0
  46. immich/client/exceptions.py +222 -0
  47. immich/client/models/__init__.py +424 -0
  48. immich/client/models/activity_create_dto.py +94 -0
  49. immich/client/models/activity_response_dto.py +121 -0
  50. immich/client/models/activity_statistics_response_dto.py +85 -0
  51. immich/client/models/add_users_dto.py +101 -0
  52. immich/client/models/admin_onboarding_update_dto.py +82 -0
  53. immich/client/models/album_response_dto.py +199 -0
  54. immich/client/models/album_statistics_response_dto.py +90 -0
  55. immich/client/models/album_user_add_dto.py +87 -0
  56. immich/client/models/album_user_create_dto.py +87 -0
  57. immich/client/models/album_user_response_dto.py +95 -0
  58. immich/client/models/album_user_role.py +34 -0
  59. immich/client/models/albums_add_assets_dto.py +86 -0
  60. immich/client/models/albums_add_assets_response_dto.py +86 -0
  61. immich/client/models/albums_response.py +83 -0
  62. immich/client/models/albums_update.py +85 -0
  63. immich/client/models/api_key_create_dto.py +87 -0
  64. immich/client/models/api_key_create_response_dto.py +94 -0
  65. immich/client/models/api_key_response_dto.py +102 -0
  66. immich/client/models/api_key_update_dto.py +87 -0
  67. immich/client/models/asset_bulk_delete_dto.py +84 -0
  68. immich/client/models/asset_bulk_update_dto.py +143 -0
  69. immich/client/models/asset_bulk_upload_check_dto.py +98 -0
  70. immich/client/models/asset_bulk_upload_check_item.py +85 -0
  71. immich/client/models/asset_bulk_upload_check_response_dto.py +101 -0
  72. immich/client/models/asset_bulk_upload_check_result.py +126 -0
  73. immich/client/models/asset_copy_dto.py +113 -0
  74. immich/client/models/asset_delta_sync_dto.py +87 -0
  75. immich/client/models/asset_delta_sync_response_dto.py +102 -0
  76. immich/client/models/asset_face_create_dto.py +110 -0
  77. immich/client/models/asset_face_delete_dto.py +82 -0
  78. immich/client/models/asset_face_response_dto.py +125 -0
  79. immich/client/models/asset_face_update_dto.py +96 -0
  80. immich/client/models/asset_face_update_item.py +86 -0
  81. immich/client/models/asset_face_without_person_response_dto.py +111 -0
  82. immich/client/models/asset_full_sync_dto.py +95 -0
  83. immich/client/models/asset_ids_dto.py +83 -0
  84. immich/client/models/asset_ids_response_dto.py +109 -0
  85. immich/client/models/asset_job_name.py +36 -0
  86. immich/client/models/asset_jobs_dto.py +87 -0
  87. immich/client/models/asset_media_response_dto.py +84 -0
  88. immich/client/models/asset_media_size.py +35 -0
  89. immich/client/models/asset_media_status.py +35 -0
  90. immich/client/models/asset_metadata_key.py +33 -0
  91. immich/client/models/asset_metadata_response_dto.py +92 -0
  92. immich/client/models/asset_metadata_upsert_dto.py +101 -0
  93. immich/client/models/asset_metadata_upsert_item_dto.py +84 -0
  94. immich/client/models/asset_ocr_response_dto.py +145 -0
  95. immich/client/models/asset_order.py +34 -0
  96. immich/client/models/asset_response_dto.py +291 -0
  97. immich/client/models/asset_stack_response_dto.py +90 -0
  98. immich/client/models/asset_stats_response_dto.py +90 -0
  99. immich/client/models/asset_type_enum.py +36 -0
  100. immich/client/models/asset_visibility.py +36 -0
  101. immich/client/models/audio_codec.py +36 -0
  102. immich/client/models/auth_status_response_dto.py +100 -0
  103. immich/client/models/avatar_update.py +83 -0
  104. immich/client/models/bulk_id_error_reason.py +36 -0
  105. immich/client/models/bulk_id_response_dto.py +102 -0
  106. immich/client/models/bulk_ids_dto.py +83 -0
  107. immich/client/models/cast_response.py +88 -0
  108. immich/client/models/cast_update.py +82 -0
  109. immich/client/models/change_password_dto.py +101 -0
  110. immich/client/models/check_existing_assets_dto.py +91 -0
  111. immich/client/models/check_existing_assets_response_dto.py +82 -0
  112. immich/client/models/clip_config.py +85 -0
  113. immich/client/models/colorspace.py +34 -0
  114. immich/client/models/contributor_count_response_dto.py +85 -0
  115. immich/client/models/cq_mode.py +35 -0
  116. immich/client/models/create_album_dto.py +112 -0
  117. immich/client/models/create_library_dto.py +103 -0
  118. immich/client/models/create_profile_image_response_dto.py +95 -0
  119. immich/client/models/database_backup_config.py +94 -0
  120. immich/client/models/download_archive_info.py +85 -0
  121. immich/client/models/download_info_dto.py +96 -0
  122. immich/client/models/download_response.py +90 -0
  123. immich/client/models/download_response_dto.py +100 -0
  124. immich/client/models/download_update.py +93 -0
  125. immich/client/models/duplicate_detection_config.py +89 -0
  126. immich/client/models/duplicate_response_dto.py +98 -0
  127. immich/client/models/email_notifications_response.py +90 -0
  128. immich/client/models/email_notifications_update.py +90 -0
  129. immich/client/models/exif_response_dto.py +284 -0
  130. immich/client/models/face_dto.py +83 -0
  131. immich/client/models/facial_recognition_config.py +107 -0
  132. immich/client/models/folders_response.py +92 -0
  133. immich/client/models/folders_update.py +85 -0
  134. immich/client/models/image_format.py +34 -0
  135. immich/client/models/job_create_dto.py +83 -0
  136. immich/client/models/job_name.py +87 -0
  137. immich/client/models/job_settings_dto.py +83 -0
  138. immich/client/models/library_response_dto.py +118 -0
  139. immich/client/models/library_stats_response_dto.py +92 -0
  140. immich/client/models/license_key_dto.py +98 -0
  141. immich/client/models/license_response_dto.py +101 -0
  142. immich/client/models/log_level.py +38 -0
  143. immich/client/models/login_credential_dto.py +85 -0
  144. immich/client/models/login_response_dto.py +109 -0
  145. immich/client/models/logout_response_dto.py +85 -0
  146. immich/client/models/machine_learning_availability_checks_dto.py +90 -0
  147. immich/client/models/maintenance_action.py +34 -0
  148. immich/client/models/maintenance_auth_dto.py +82 -0
  149. immich/client/models/maintenance_login_dto.py +82 -0
  150. immich/client/models/manual_job_name.py +38 -0
  151. immich/client/models/map_marker_response_dto.py +111 -0
  152. immich/client/models/map_reverse_geocode_response_dto.py +105 -0
  153. immich/client/models/memories_response.py +92 -0
  154. immich/client/models/memories_update.py +86 -0
  155. immich/client/models/memory_create_dto.py +112 -0
  156. immich/client/models/memory_response_dto.py +142 -0
  157. immich/client/models/memory_search_order.py +35 -0
  158. immich/client/models/memory_statistics_response_dto.py +82 -0
  159. immich/client/models/memory_type.py +33 -0
  160. immich/client/models/memory_update_dto.py +91 -0
  161. immich/client/models/merge_person_dto.py +83 -0
  162. immich/client/models/metadata_search_dto.py +277 -0
  163. immich/client/models/notification_create_dto.py +120 -0
  164. immich/client/models/notification_delete_all_dto.py +83 -0
  165. immich/client/models/notification_dto.py +112 -0
  166. immich/client/models/notification_level.py +36 -0
  167. immich/client/models/notification_type.py +38 -0
  168. immich/client/models/notification_update_all_dto.py +90 -0
  169. immich/client/models/notification_update_dto.py +88 -0
  170. immich/client/models/o_auth_authorize_response_dto.py +82 -0
  171. immich/client/models/o_auth_callback_dto.py +90 -0
  172. immich/client/models/o_auth_config_dto.py +90 -0
  173. immich/client/models/o_auth_token_endpoint_auth_method.py +34 -0
  174. immich/client/models/ocr_config.py +109 -0
  175. immich/client/models/on_this_day_dto.py +86 -0
  176. immich/client/models/onboarding_dto.py +82 -0
  177. immich/client/models/onboarding_response_dto.py +82 -0
  178. immich/client/models/partner_create_dto.py +83 -0
  179. immich/client/models/partner_direction.py +34 -0
  180. immich/client/models/partner_response_dto.py +108 -0
  181. immich/client/models/partner_update_dto.py +82 -0
  182. immich/client/models/people_response.py +92 -0
  183. immich/client/models/people_response_dto.py +104 -0
  184. immich/client/models/people_update.py +85 -0
  185. immich/client/models/people_update_dto.py +96 -0
  186. immich/client/models/people_update_item.py +128 -0
  187. immich/client/models/permission.py +177 -0
  188. immich/client/models/person_create_dto.py +117 -0
  189. immich/client/models/person_response_dto.py +115 -0
  190. immich/client/models/person_statistics_response_dto.py +82 -0
  191. immich/client/models/person_update_dto.py +125 -0
  192. immich/client/models/person_with_faces_response_dto.py +133 -0
  193. immich/client/models/pin_code_change_dto.py +90 -0
  194. immich/client/models/pin_code_reset_dto.py +85 -0
  195. immich/client/models/pin_code_setup_dto.py +82 -0
  196. immich/client/models/places_response_dto.py +100 -0
  197. immich/client/models/plugin_action_response_dto.py +112 -0
  198. immich/client/models/plugin_context_type.py +35 -0
  199. immich/client/models/plugin_filter_response_dto.py +112 -0
  200. immich/client/models/plugin_response_dto.py +139 -0
  201. immich/client/models/plugin_trigger_response_dto.py +87 -0
  202. immich/client/models/plugin_trigger_type.py +34 -0
  203. immich/client/models/purchase_response.py +88 -0
  204. immich/client/models/purchase_update.py +92 -0
  205. immich/client/models/queue_command.py +37 -0
  206. immich/client/models/queue_command_dto.py +86 -0
  207. immich/client/models/queue_delete_dto.py +85 -0
  208. immich/client/models/queue_job_response_dto.py +93 -0
  209. immich/client/models/queue_job_status.py +38 -0
  210. immich/client/models/queue_name.py +49 -0
  211. immich/client/models/queue_response_dto.py +97 -0
  212. immich/client/models/queue_response_legacy_dto.py +100 -0
  213. immich/client/models/queue_statistics_dto.py +103 -0
  214. immich/client/models/queue_status_legacy_dto.py +85 -0
  215. immich/client/models/queue_update_dto.py +82 -0
  216. immich/client/models/queues_response_legacy_dto.py +242 -0
  217. immich/client/models/random_search_dto.py +234 -0
  218. immich/client/models/ratings_response.py +84 -0
  219. immich/client/models/ratings_update.py +82 -0
  220. immich/client/models/reaction_level.py +34 -0
  221. immich/client/models/reaction_type.py +34 -0
  222. immich/client/models/reverse_geocoding_state_response_dto.py +101 -0
  223. immich/client/models/search_album_response_dto.py +114 -0
  224. immich/client/models/search_asset_response_dto.py +127 -0
  225. immich/client/models/search_explore_item.py +94 -0
  226. immich/client/models/search_explore_response_dto.py +98 -0
  227. immich/client/models/search_facet_count_response_dto.py +85 -0
  228. immich/client/models/search_facet_response_dto.py +103 -0
  229. immich/client/models/search_response_dto.py +100 -0
  230. immich/client/models/search_statistics_response_dto.py +82 -0
  231. immich/client/models/search_suggestion_type.py +38 -0
  232. immich/client/models/server_about_response_dto.py +156 -0
  233. immich/client/models/server_apk_links_dto.py +97 -0
  234. immich/client/models/server_config_dto.py +118 -0
  235. immich/client/models/server_features_dto.py +130 -0
  236. immich/client/models/server_media_types_response_dto.py +90 -0
  237. immich/client/models/server_ping_response.py +87 -0
  238. immich/client/models/server_stats_response_dto.py +119 -0
  239. immich/client/models/server_storage_response_dto.py +108 -0
  240. immich/client/models/server_theme_dto.py +82 -0
  241. immich/client/models/server_version_history_response_dto.py +91 -0
  242. immich/client/models/server_version_response_dto.py +90 -0
  243. immich/client/models/session_create_dto.py +96 -0
  244. immich/client/models/session_create_response_dto.py +120 -0
  245. immich/client/models/session_response_dto.py +117 -0
  246. immich/client/models/session_unlock_dto.py +85 -0
  247. immich/client/models/session_update_dto.py +84 -0
  248. immich/client/models/set_maintenance_mode_dto.py +83 -0
  249. immich/client/models/shared_link_create_dto.py +142 -0
  250. immich/client/models/shared_link_edit_dto.py +134 -0
  251. immich/client/models/shared_link_response_dto.py +173 -0
  252. immich/client/models/shared_link_type.py +34 -0
  253. immich/client/models/shared_links_response.py +92 -0
  254. immich/client/models/shared_links_update.py +85 -0
  255. immich/client/models/sign_up_dto.py +90 -0
  256. immich/client/models/smart_search_dto.py +245 -0
  257. immich/client/models/source_type.py +35 -0
  258. immich/client/models/stack_create_dto.py +86 -0
  259. immich/client/models/stack_response_dto.py +100 -0
  260. immich/client/models/stack_update_dto.py +83 -0
  261. immich/client/models/statistics_search_dto.py +217 -0
  262. immich/client/models/sync_ack_delete_dto.py +83 -0
  263. immich/client/models/sync_ack_dto.py +84 -0
  264. immich/client/models/sync_ack_set_dto.py +83 -0
  265. immich/client/models/sync_album_delete_v1.py +82 -0
  266. immich/client/models/sync_album_to_asset_delete_v1.py +85 -0
  267. immich/client/models/sync_album_to_asset_v1.py +85 -0
  268. immich/client/models/sync_album_user_delete_v1.py +85 -0
  269. immich/client/models/sync_album_user_v1.py +91 -0
  270. immich/client/models/sync_album_v1.py +122 -0
  271. immich/client/models/sync_asset_delete_v1.py +82 -0
  272. immich/client/models/sync_asset_exif_v1.py +296 -0
  273. immich/client/models/sync_asset_face_delete_v1.py +82 -0
  274. immich/client/models/sync_asset_face_v1.py +120 -0
  275. immich/client/models/sync_asset_metadata_delete_v1.py +86 -0
  276. immich/client/models/sync_asset_metadata_v1.py +91 -0
  277. immich/client/models/sync_asset_v1.py +187 -0
  278. immich/client/models/sync_auth_user_v1.py +154 -0
  279. immich/client/models/sync_entity_type.py +79 -0
  280. immich/client/models/sync_memory_asset_delete_v1.py +85 -0
  281. immich/client/models/sync_memory_asset_v1.py +85 -0
  282. immich/client/models/sync_memory_delete_v1.py +82 -0
  283. immich/client/models/sync_memory_v1.py +143 -0
  284. immich/client/models/sync_partner_delete_v1.py +88 -0
  285. immich/client/models/sync_partner_v1.py +90 -0
  286. immich/client/models/sync_person_delete_v1.py +82 -0
  287. immich/client/models/sync_person_v1.py +131 -0
  288. immich/client/models/sync_request_type.py +52 -0
  289. immich/client/models/sync_stack_delete_v1.py +82 -0
  290. immich/client/models/sync_stack_v1.py +101 -0
  291. immich/client/models/sync_stream_dto.py +86 -0
  292. immich/client/models/sync_user_delete_v1.py +82 -0
  293. immich/client/models/sync_user_metadata_delete_v1.py +84 -0
  294. immich/client/models/sync_user_metadata_v1.py +91 -0
  295. immich/client/models/sync_user_v1.py +118 -0
  296. immich/client/models/system_config_backups_dto.py +92 -0
  297. immich/client/models/system_config_dto.py +302 -0
  298. immich/client/models/system_config_f_fmpeg_dto.py +156 -0
  299. immich/client/models/system_config_faces_dto.py +82 -0
  300. immich/client/models/system_config_generated_fullsize_image_dto.py +92 -0
  301. immich/client/models/system_config_generated_image_dto.py +92 -0
  302. immich/client/models/system_config_image_dto.py +124 -0
  303. immich/client/models/system_config_job_dto.py +194 -0
  304. immich/client/models/system_config_library_dto.py +104 -0
  305. immich/client/models/system_config_library_scan_dto.py +85 -0
  306. immich/client/models/system_config_library_watch_dto.py +82 -0
  307. immich/client/models/system_config_logging_dto.py +86 -0
  308. immich/client/models/system_config_machine_learning_dto.py +147 -0
  309. immich/client/models/system_config_map_dto.py +90 -0
  310. immich/client/models/system_config_metadata_dto.py +92 -0
  311. immich/client/models/system_config_new_version_check_dto.py +82 -0
  312. immich/client/models/system_config_nightly_tasks_dto.py +103 -0
  313. immich/client/models/system_config_notifications_dto.py +92 -0
  314. immich/client/models/system_config_o_auth_dto.py +155 -0
  315. immich/client/models/system_config_password_login_dto.py +82 -0
  316. immich/client/models/system_config_reverse_geocoding_dto.py +82 -0
  317. immich/client/models/system_config_server_dto.py +94 -0
  318. immich/client/models/system_config_smtp_dto.py +100 -0
  319. immich/client/models/system_config_smtp_transport_dto.py +107 -0
  320. immich/client/models/system_config_storage_template_dto.py +94 -0
  321. immich/client/models/system_config_template_emails_dto.py +94 -0
  322. immich/client/models/system_config_template_storage_option_dto.py +109 -0
  323. immich/client/models/system_config_templates_dto.py +94 -0
  324. immich/client/models/system_config_theme_dto.py +82 -0
  325. immich/client/models/system_config_trash_dto.py +86 -0
  326. immich/client/models/system_config_user_dto.py +83 -0
  327. immich/client/models/tag_bulk_assets_dto.py +86 -0
  328. immich/client/models/tag_bulk_assets_response_dto.py +82 -0
  329. immich/client/models/tag_create_dto.py +111 -0
  330. immich/client/models/tag_response_dto.py +107 -0
  331. immich/client/models/tag_update_dto.py +87 -0
  332. immich/client/models/tag_upsert_dto.py +82 -0
  333. immich/client/models/tags_response.py +92 -0
  334. immich/client/models/tags_update.py +85 -0
  335. immich/client/models/template_dto.py +82 -0
  336. immich/client/models/template_response_dto.py +83 -0
  337. immich/client/models/test_email_response_dto.py +82 -0
  338. immich/client/models/time_bucket_asset_response_dto.py +195 -0
  339. immich/client/models/time_buckets_response_dto.py +88 -0
  340. immich/client/models/tone_mapping.py +36 -0
  341. immich/client/models/transcode_hw_accel.py +37 -0
  342. immich/client/models/transcode_policy.py +37 -0
  343. immich/client/models/trash_response_dto.py +82 -0
  344. immich/client/models/update_album_dto.py +106 -0
  345. immich/client/models/update_album_user_dto.py +83 -0
  346. immich/client/models/update_asset_dto.py +135 -0
  347. immich/client/models/update_library_dto.py +95 -0
  348. immich/client/models/usage_by_user_dto.py +117 -0
  349. immich/client/models/user_admin_create_dto.py +136 -0
  350. immich/client/models/user_admin_delete_dto.py +82 -0
  351. immich/client/models/user_admin_response_dto.py +176 -0
  352. immich/client/models/user_admin_update_dto.py +141 -0
  353. immich/client/models/user_avatar_color.py +42 -0
  354. immich/client/models/user_license.py +91 -0
  355. immich/client/models/user_metadata_key.py +35 -0
  356. immich/client/models/user_preferences_response_dto.py +186 -0
  357. immich/client/models/user_preferences_update_dto.py +197 -0
  358. immich/client/models/user_response_dto.py +105 -0
  359. immich/client/models/user_status.py +35 -0
  360. immich/client/models/user_update_me_dto.py +98 -0
  361. immich/client/models/validate_access_token_response_dto.py +82 -0
  362. immich/client/models/validate_library_dto.py +93 -0
  363. immich/client/models/validate_library_import_path_response_dto.py +92 -0
  364. immich/client/models/validate_library_response_dto.py +103 -0
  365. immich/client/models/version_check_state_response_dto.py +98 -0
  366. immich/client/models/video_codec.py +36 -0
  367. immich/client/models/video_container.py +36 -0
  368. immich/client/models/workflow_action_item_dto.py +89 -0
  369. immich/client/models/workflow_action_response_dto.py +105 -0
  370. immich/client/models/workflow_create_dto.py +128 -0
  371. immich/client/models/workflow_filter_item_dto.py +89 -0
  372. immich/client/models/workflow_filter_response_dto.py +105 -0
  373. immich/client/models/workflow_response_dto.py +144 -0
  374. immich/client/models/workflow_update_dto.py +128 -0
  375. immich/client/py.typed +0 -0
  376. immich/client/rest.py +199 -0
  377. immich/client_wrapper/__init__.py +15 -0
  378. immich/client_wrapper/assets_api_wrapped.py +87 -0
  379. immich/client_wrapper/download_api_wrapped.py +111 -0
  380. immich/client_wrapper/users_api_wrapped.py +41 -0
  381. immich/py.typed +0 -0
  382. immich/sdk.py +365 -0
  383. immich/utils.py +100 -0
  384. immich-1.2.1.dist-info/METADATA +166 -0
  385. immich-1.2.1.dist-info/RECORD +387 -0
  386. immich-1.2.1.dist-info/WHEEL +4 -0
  387. immich-1.2.1.dist-info/licenses/LICENSE +9 -0
@@ -0,0 +1,640 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Immich
5
+
6
+ Immich API
7
+
8
+ The version of the OpenAPI document: 2.4.1
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
15
+ from typing import Any, Dict, List, Optional, Tuple, Union
16
+ from typing_extensions import Annotated
17
+
18
+ from datetime import datetime
19
+ from pydantic import StrictBool
20
+ from immich.client.models.map_marker_response_dto import MapMarkerResponseDto
21
+ from immich.client.models.map_reverse_geocode_response_dto import (
22
+ MapReverseGeocodeResponseDto,
23
+ )
24
+
25
+ from immich.client.api_client import ApiClient, RequestSerialized
26
+ from immich.client.api_response import ApiResponse
27
+ from immich.client.rest import RESTResponseType
28
+
29
+
30
+ class MapApi:
31
+ """NOTE: This class is auto generated by OpenAPI Generator
32
+ Ref: https://openapi-generator.tech
33
+
34
+ Do not edit the class manually.
35
+ """
36
+
37
+ def __init__(self, api_client=None) -> None:
38
+ if api_client is None:
39
+ api_client = ApiClient.get_default()
40
+ self.api_client = api_client
41
+
42
+ @validate_call
43
+ async def get_map_markers(
44
+ self,
45
+ file_created_after: Optional[datetime] = None,
46
+ file_created_before: Optional[datetime] = None,
47
+ is_archived: Optional[StrictBool] = None,
48
+ is_favorite: Optional[StrictBool] = None,
49
+ with_partners: Optional[StrictBool] = None,
50
+ with_shared_albums: Optional[StrictBool] = None,
51
+ _request_timeout: Union[
52
+ None,
53
+ Annotated[StrictFloat, Field(gt=0)],
54
+ Tuple[
55
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
56
+ ],
57
+ ] = None,
58
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
59
+ _content_type: Optional[StrictStr] = None,
60
+ _headers: Optional[Dict[StrictStr, Any]] = None,
61
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
62
+ ) -> List[MapMarkerResponseDto]:
63
+ """Retrieve map markers
64
+
65
+ Retrieve a list of latitude and longitude coordinates for every asset with location data.
66
+
67
+ :param file_created_after:
68
+ :type file_created_after: datetime
69
+ :param file_created_before:
70
+ :type file_created_before: datetime
71
+ :param is_archived:
72
+ :type is_archived: bool
73
+ :param is_favorite:
74
+ :type is_favorite: bool
75
+ :param with_partners:
76
+ :type with_partners: bool
77
+ :param with_shared_albums:
78
+ :type with_shared_albums: bool
79
+ :param _request_timeout: timeout setting for this request. If one
80
+ number provided, it will be total request
81
+ timeout. It can also be a pair (tuple) of
82
+ (connection, read) timeouts.
83
+ :type _request_timeout: int, tuple(int, int), optional
84
+ :param _request_auth: set to override the auth_settings for an a single
85
+ request; this effectively ignores the
86
+ authentication in the spec for a single request.
87
+ :type _request_auth: dict, optional
88
+ :param _content_type: force content-type for the request.
89
+ :type _content_type: str, Optional
90
+ :param _headers: set to override the headers for a single
91
+ request; this effectively ignores the headers
92
+ in the spec for a single request.
93
+ :type _headers: dict, optional
94
+ :param _host_index: set to override the host_index for a single
95
+ request; this effectively ignores the host_index
96
+ in the spec for a single request.
97
+ :type _host_index: int, optional
98
+ :return: Returns the result object.
99
+ """ # noqa: E501
100
+
101
+ _param = self._get_map_markers_serialize(
102
+ file_created_after=file_created_after,
103
+ file_created_before=file_created_before,
104
+ is_archived=is_archived,
105
+ is_favorite=is_favorite,
106
+ with_partners=with_partners,
107
+ with_shared_albums=with_shared_albums,
108
+ _request_auth=_request_auth,
109
+ _content_type=_content_type,
110
+ _headers=_headers,
111
+ _host_index=_host_index,
112
+ )
113
+
114
+ _response_types_map: Dict[str, Optional[str]] = {
115
+ "200": "List[MapMarkerResponseDto]",
116
+ }
117
+ response_data = await self.api_client.call_api(
118
+ *_param, _request_timeout=_request_timeout
119
+ )
120
+ await response_data.read()
121
+ return self.api_client.response_deserialize(
122
+ response_data=response_data,
123
+ response_types_map=_response_types_map,
124
+ ).data
125
+
126
+ @validate_call
127
+ async def get_map_markers_with_http_info(
128
+ self,
129
+ file_created_after: Optional[datetime] = None,
130
+ file_created_before: Optional[datetime] = None,
131
+ is_archived: Optional[StrictBool] = None,
132
+ is_favorite: Optional[StrictBool] = None,
133
+ with_partners: Optional[StrictBool] = None,
134
+ with_shared_albums: Optional[StrictBool] = None,
135
+ _request_timeout: Union[
136
+ None,
137
+ Annotated[StrictFloat, Field(gt=0)],
138
+ Tuple[
139
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
140
+ ],
141
+ ] = None,
142
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
143
+ _content_type: Optional[StrictStr] = None,
144
+ _headers: Optional[Dict[StrictStr, Any]] = None,
145
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
146
+ ) -> ApiResponse[List[MapMarkerResponseDto]]:
147
+ """Retrieve map markers
148
+
149
+ Retrieve a list of latitude and longitude coordinates for every asset with location data.
150
+
151
+ :param file_created_after:
152
+ :type file_created_after: datetime
153
+ :param file_created_before:
154
+ :type file_created_before: datetime
155
+ :param is_archived:
156
+ :type is_archived: bool
157
+ :param is_favorite:
158
+ :type is_favorite: bool
159
+ :param with_partners:
160
+ :type with_partners: bool
161
+ :param with_shared_albums:
162
+ :type with_shared_albums: bool
163
+ :param _request_timeout: timeout setting for this request. If one
164
+ number provided, it will be total request
165
+ timeout. It can also be a pair (tuple) of
166
+ (connection, read) timeouts.
167
+ :type _request_timeout: int, tuple(int, int), optional
168
+ :param _request_auth: set to override the auth_settings for an a single
169
+ request; this effectively ignores the
170
+ authentication in the spec for a single request.
171
+ :type _request_auth: dict, optional
172
+ :param _content_type: force content-type for the request.
173
+ :type _content_type: str, Optional
174
+ :param _headers: set to override the headers for a single
175
+ request; this effectively ignores the headers
176
+ in the spec for a single request.
177
+ :type _headers: dict, optional
178
+ :param _host_index: set to override the host_index for a single
179
+ request; this effectively ignores the host_index
180
+ in the spec for a single request.
181
+ :type _host_index: int, optional
182
+ :return: Returns the result object.
183
+ """ # noqa: E501
184
+
185
+ _param = self._get_map_markers_serialize(
186
+ file_created_after=file_created_after,
187
+ file_created_before=file_created_before,
188
+ is_archived=is_archived,
189
+ is_favorite=is_favorite,
190
+ with_partners=with_partners,
191
+ with_shared_albums=with_shared_albums,
192
+ _request_auth=_request_auth,
193
+ _content_type=_content_type,
194
+ _headers=_headers,
195
+ _host_index=_host_index,
196
+ )
197
+
198
+ _response_types_map: Dict[str, Optional[str]] = {
199
+ "200": "List[MapMarkerResponseDto]",
200
+ }
201
+ response_data = await self.api_client.call_api(
202
+ *_param, _request_timeout=_request_timeout
203
+ )
204
+ await response_data.read()
205
+ return self.api_client.response_deserialize(
206
+ response_data=response_data,
207
+ response_types_map=_response_types_map,
208
+ )
209
+
210
+ @validate_call
211
+ async def get_map_markers_without_preload_content(
212
+ self,
213
+ file_created_after: Optional[datetime] = None,
214
+ file_created_before: Optional[datetime] = None,
215
+ is_archived: Optional[StrictBool] = None,
216
+ is_favorite: Optional[StrictBool] = None,
217
+ with_partners: Optional[StrictBool] = None,
218
+ with_shared_albums: Optional[StrictBool] = None,
219
+ _request_timeout: Union[
220
+ None,
221
+ Annotated[StrictFloat, Field(gt=0)],
222
+ Tuple[
223
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
224
+ ],
225
+ ] = None,
226
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
227
+ _content_type: Optional[StrictStr] = None,
228
+ _headers: Optional[Dict[StrictStr, Any]] = None,
229
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
230
+ ) -> RESTResponseType:
231
+ """Retrieve map markers
232
+
233
+ Retrieve a list of latitude and longitude coordinates for every asset with location data.
234
+
235
+ :param file_created_after:
236
+ :type file_created_after: datetime
237
+ :param file_created_before:
238
+ :type file_created_before: datetime
239
+ :param is_archived:
240
+ :type is_archived: bool
241
+ :param is_favorite:
242
+ :type is_favorite: bool
243
+ :param with_partners:
244
+ :type with_partners: bool
245
+ :param with_shared_albums:
246
+ :type with_shared_albums: bool
247
+ :param _request_timeout: timeout setting for this request. If one
248
+ number provided, it will be total request
249
+ timeout. It can also be a pair (tuple) of
250
+ (connection, read) timeouts.
251
+ :type _request_timeout: int, tuple(int, int), optional
252
+ :param _request_auth: set to override the auth_settings for an a single
253
+ request; this effectively ignores the
254
+ authentication in the spec for a single request.
255
+ :type _request_auth: dict, optional
256
+ :param _content_type: force content-type for the request.
257
+ :type _content_type: str, Optional
258
+ :param _headers: set to override the headers for a single
259
+ request; this effectively ignores the headers
260
+ in the spec for a single request.
261
+ :type _headers: dict, optional
262
+ :param _host_index: set to override the host_index for a single
263
+ request; this effectively ignores the host_index
264
+ in the spec for a single request.
265
+ :type _host_index: int, optional
266
+ :return: Returns the result object.
267
+ """ # noqa: E501
268
+
269
+ _param = self._get_map_markers_serialize(
270
+ file_created_after=file_created_after,
271
+ file_created_before=file_created_before,
272
+ is_archived=is_archived,
273
+ is_favorite=is_favorite,
274
+ with_partners=with_partners,
275
+ with_shared_albums=with_shared_albums,
276
+ _request_auth=_request_auth,
277
+ _content_type=_content_type,
278
+ _headers=_headers,
279
+ _host_index=_host_index,
280
+ )
281
+
282
+ _response_types_map: Dict[str, Optional[str]] = {
283
+ "200": "List[MapMarkerResponseDto]",
284
+ }
285
+ response_data = await self.api_client.call_api(
286
+ *_param, _request_timeout=_request_timeout
287
+ )
288
+ return response_data.response
289
+
290
+ def _get_map_markers_serialize(
291
+ self,
292
+ file_created_after,
293
+ file_created_before,
294
+ is_archived,
295
+ is_favorite,
296
+ with_partners,
297
+ with_shared_albums,
298
+ _request_auth,
299
+ _content_type,
300
+ _headers,
301
+ _host_index,
302
+ ) -> RequestSerialized:
303
+ _host = None
304
+
305
+ _collection_formats: Dict[str, str] = {}
306
+
307
+ _path_params: Dict[str, str] = {}
308
+ _query_params: List[Tuple[str, str]] = []
309
+ _header_params: Dict[str, Optional[str]] = _headers or {}
310
+ _form_params: List[Tuple[str, str]] = []
311
+ _files: Dict[
312
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
313
+ ] = {}
314
+ _body_params: Optional[bytes] = None
315
+
316
+ # process the path parameters
317
+ # process the query parameters
318
+ if file_created_after is not None:
319
+ if isinstance(file_created_after, datetime):
320
+ _query_params.append(
321
+ (
322
+ "fileCreatedAfter",
323
+ file_created_after.strftime(
324
+ self.api_client.configuration.datetime_format
325
+ ),
326
+ )
327
+ )
328
+ else:
329
+ _query_params.append(("fileCreatedAfter", file_created_after))
330
+
331
+ if file_created_before is not None:
332
+ if isinstance(file_created_before, datetime):
333
+ _query_params.append(
334
+ (
335
+ "fileCreatedBefore",
336
+ file_created_before.strftime(
337
+ self.api_client.configuration.datetime_format
338
+ ),
339
+ )
340
+ )
341
+ else:
342
+ _query_params.append(("fileCreatedBefore", file_created_before))
343
+
344
+ if is_archived is not None:
345
+ _query_params.append(("isArchived", is_archived))
346
+
347
+ if is_favorite is not None:
348
+ _query_params.append(("isFavorite", is_favorite))
349
+
350
+ if with_partners is not None:
351
+ _query_params.append(("withPartners", with_partners))
352
+
353
+ if with_shared_albums is not None:
354
+ _query_params.append(("withSharedAlbums", with_shared_albums))
355
+
356
+ # process the header parameters
357
+ # process the form parameters
358
+ # process the body parameter
359
+
360
+ # set the HTTP header `Accept`
361
+ if "Accept" not in _header_params:
362
+ _header_params["Accept"] = self.api_client.select_header_accept(
363
+ ["application/json"]
364
+ )
365
+
366
+ # authentication setting
367
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
368
+
369
+ return self.api_client.param_serialize(
370
+ method="GET",
371
+ resource_path="/map/markers",
372
+ path_params=_path_params,
373
+ query_params=_query_params,
374
+ header_params=_header_params,
375
+ body=_body_params,
376
+ post_params=_form_params,
377
+ files=_files,
378
+ auth_settings=_auth_settings,
379
+ collection_formats=_collection_formats,
380
+ _host=_host,
381
+ _request_auth=_request_auth,
382
+ )
383
+
384
+ @validate_call
385
+ async def reverse_geocode(
386
+ self,
387
+ lat: Union[StrictFloat, StrictInt],
388
+ lon: Union[StrictFloat, StrictInt],
389
+ _request_timeout: Union[
390
+ None,
391
+ Annotated[StrictFloat, Field(gt=0)],
392
+ Tuple[
393
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
394
+ ],
395
+ ] = None,
396
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
397
+ _content_type: Optional[StrictStr] = None,
398
+ _headers: Optional[Dict[StrictStr, Any]] = None,
399
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
400
+ ) -> List[MapReverseGeocodeResponseDto]:
401
+ """Reverse geocode coordinates
402
+
403
+ Retrieve location information (e.g., city, country) for given latitude and longitude coordinates.
404
+
405
+ :param lat: (required)
406
+ :type lat: float
407
+ :param lon: (required)
408
+ :type lon: float
409
+ :param _request_timeout: timeout setting for this request. If one
410
+ number provided, it will be total request
411
+ timeout. It can also be a pair (tuple) of
412
+ (connection, read) timeouts.
413
+ :type _request_timeout: int, tuple(int, int), optional
414
+ :param _request_auth: set to override the auth_settings for an a single
415
+ request; this effectively ignores the
416
+ authentication in the spec for a single request.
417
+ :type _request_auth: dict, optional
418
+ :param _content_type: force content-type for the request.
419
+ :type _content_type: str, Optional
420
+ :param _headers: set to override the headers for a single
421
+ request; this effectively ignores the headers
422
+ in the spec for a single request.
423
+ :type _headers: dict, optional
424
+ :param _host_index: set to override the host_index for a single
425
+ request; this effectively ignores the host_index
426
+ in the spec for a single request.
427
+ :type _host_index: int, optional
428
+ :return: Returns the result object.
429
+ """ # noqa: E501
430
+
431
+ _param = self._reverse_geocode_serialize(
432
+ lat=lat,
433
+ lon=lon,
434
+ _request_auth=_request_auth,
435
+ _content_type=_content_type,
436
+ _headers=_headers,
437
+ _host_index=_host_index,
438
+ )
439
+
440
+ _response_types_map: Dict[str, Optional[str]] = {
441
+ "200": "List[MapReverseGeocodeResponseDto]",
442
+ }
443
+ response_data = await self.api_client.call_api(
444
+ *_param, _request_timeout=_request_timeout
445
+ )
446
+ await response_data.read()
447
+ return self.api_client.response_deserialize(
448
+ response_data=response_data,
449
+ response_types_map=_response_types_map,
450
+ ).data
451
+
452
+ @validate_call
453
+ async def reverse_geocode_with_http_info(
454
+ self,
455
+ lat: Union[StrictFloat, StrictInt],
456
+ lon: Union[StrictFloat, StrictInt],
457
+ _request_timeout: Union[
458
+ None,
459
+ Annotated[StrictFloat, Field(gt=0)],
460
+ Tuple[
461
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
462
+ ],
463
+ ] = None,
464
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
465
+ _content_type: Optional[StrictStr] = None,
466
+ _headers: Optional[Dict[StrictStr, Any]] = None,
467
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
468
+ ) -> ApiResponse[List[MapReverseGeocodeResponseDto]]:
469
+ """Reverse geocode coordinates
470
+
471
+ Retrieve location information (e.g., city, country) for given latitude and longitude coordinates.
472
+
473
+ :param lat: (required)
474
+ :type lat: float
475
+ :param lon: (required)
476
+ :type lon: float
477
+ :param _request_timeout: timeout setting for this request. If one
478
+ number provided, it will be total request
479
+ timeout. It can also be a pair (tuple) of
480
+ (connection, read) timeouts.
481
+ :type _request_timeout: int, tuple(int, int), optional
482
+ :param _request_auth: set to override the auth_settings for an a single
483
+ request; this effectively ignores the
484
+ authentication in the spec for a single request.
485
+ :type _request_auth: dict, optional
486
+ :param _content_type: force content-type for the request.
487
+ :type _content_type: str, Optional
488
+ :param _headers: set to override the headers for a single
489
+ request; this effectively ignores the headers
490
+ in the spec for a single request.
491
+ :type _headers: dict, optional
492
+ :param _host_index: set to override the host_index for a single
493
+ request; this effectively ignores the host_index
494
+ in the spec for a single request.
495
+ :type _host_index: int, optional
496
+ :return: Returns the result object.
497
+ """ # noqa: E501
498
+
499
+ _param = self._reverse_geocode_serialize(
500
+ lat=lat,
501
+ lon=lon,
502
+ _request_auth=_request_auth,
503
+ _content_type=_content_type,
504
+ _headers=_headers,
505
+ _host_index=_host_index,
506
+ )
507
+
508
+ _response_types_map: Dict[str, Optional[str]] = {
509
+ "200": "List[MapReverseGeocodeResponseDto]",
510
+ }
511
+ response_data = await self.api_client.call_api(
512
+ *_param, _request_timeout=_request_timeout
513
+ )
514
+ await response_data.read()
515
+ return self.api_client.response_deserialize(
516
+ response_data=response_data,
517
+ response_types_map=_response_types_map,
518
+ )
519
+
520
+ @validate_call
521
+ async def reverse_geocode_without_preload_content(
522
+ self,
523
+ lat: Union[StrictFloat, StrictInt],
524
+ lon: Union[StrictFloat, StrictInt],
525
+ _request_timeout: Union[
526
+ None,
527
+ Annotated[StrictFloat, Field(gt=0)],
528
+ Tuple[
529
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
530
+ ],
531
+ ] = None,
532
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
533
+ _content_type: Optional[StrictStr] = None,
534
+ _headers: Optional[Dict[StrictStr, Any]] = None,
535
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
536
+ ) -> RESTResponseType:
537
+ """Reverse geocode coordinates
538
+
539
+ Retrieve location information (e.g., city, country) for given latitude and longitude coordinates.
540
+
541
+ :param lat: (required)
542
+ :type lat: float
543
+ :param lon: (required)
544
+ :type lon: float
545
+ :param _request_timeout: timeout setting for this request. If one
546
+ number provided, it will be total request
547
+ timeout. It can also be a pair (tuple) of
548
+ (connection, read) timeouts.
549
+ :type _request_timeout: int, tuple(int, int), optional
550
+ :param _request_auth: set to override the auth_settings for an a single
551
+ request; this effectively ignores the
552
+ authentication in the spec for a single request.
553
+ :type _request_auth: dict, optional
554
+ :param _content_type: force content-type for the request.
555
+ :type _content_type: str, Optional
556
+ :param _headers: set to override the headers for a single
557
+ request; this effectively ignores the headers
558
+ in the spec for a single request.
559
+ :type _headers: dict, optional
560
+ :param _host_index: set to override the host_index for a single
561
+ request; this effectively ignores the host_index
562
+ in the spec for a single request.
563
+ :type _host_index: int, optional
564
+ :return: Returns the result object.
565
+ """ # noqa: E501
566
+
567
+ _param = self._reverse_geocode_serialize(
568
+ lat=lat,
569
+ lon=lon,
570
+ _request_auth=_request_auth,
571
+ _content_type=_content_type,
572
+ _headers=_headers,
573
+ _host_index=_host_index,
574
+ )
575
+
576
+ _response_types_map: Dict[str, Optional[str]] = {
577
+ "200": "List[MapReverseGeocodeResponseDto]",
578
+ }
579
+ response_data = await self.api_client.call_api(
580
+ *_param, _request_timeout=_request_timeout
581
+ )
582
+ return response_data.response
583
+
584
+ def _reverse_geocode_serialize(
585
+ self,
586
+ lat,
587
+ lon,
588
+ _request_auth,
589
+ _content_type,
590
+ _headers,
591
+ _host_index,
592
+ ) -> RequestSerialized:
593
+ _host = None
594
+
595
+ _collection_formats: Dict[str, str] = {}
596
+
597
+ _path_params: Dict[str, str] = {}
598
+ _query_params: List[Tuple[str, str]] = []
599
+ _header_params: Dict[str, Optional[str]] = _headers or {}
600
+ _form_params: List[Tuple[str, str]] = []
601
+ _files: Dict[
602
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
603
+ ] = {}
604
+ _body_params: Optional[bytes] = None
605
+
606
+ # process the path parameters
607
+ # process the query parameters
608
+ if lat is not None:
609
+ _query_params.append(("lat", lat))
610
+
611
+ if lon is not None:
612
+ _query_params.append(("lon", lon))
613
+
614
+ # process the header parameters
615
+ # process the form parameters
616
+ # process the body parameter
617
+
618
+ # set the HTTP header `Accept`
619
+ if "Accept" not in _header_params:
620
+ _header_params["Accept"] = self.api_client.select_header_accept(
621
+ ["application/json"]
622
+ )
623
+
624
+ # authentication setting
625
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
626
+
627
+ return self.api_client.param_serialize(
628
+ method="GET",
629
+ resource_path="/map/reverse-geocode",
630
+ path_params=_path_params,
631
+ query_params=_query_params,
632
+ header_params=_header_params,
633
+ body=_body_params,
634
+ post_params=_form_params,
635
+ files=_files,
636
+ auth_settings=_auth_settings,
637
+ collection_formats=_collection_formats,
638
+ _host=_host,
639
+ _request_auth=_request_auth,
640
+ )