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,1053 @@
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 uuid import UUID
19
+ from immich.client.models.asset_face_create_dto import AssetFaceCreateDto
20
+ from immich.client.models.asset_face_delete_dto import AssetFaceDeleteDto
21
+ from immich.client.models.asset_face_response_dto import AssetFaceResponseDto
22
+ from immich.client.models.face_dto import FaceDto
23
+ from immich.client.models.person_response_dto import PersonResponseDto
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 FacesApi:
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 create_face(
44
+ self,
45
+ asset_face_create_dto: AssetFaceCreateDto,
46
+ _request_timeout: Union[
47
+ None,
48
+ Annotated[StrictFloat, Field(gt=0)],
49
+ Tuple[
50
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
51
+ ],
52
+ ] = None,
53
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
54
+ _content_type: Optional[StrictStr] = None,
55
+ _headers: Optional[Dict[StrictStr, Any]] = None,
56
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
57
+ ) -> None:
58
+ """Create a face
59
+
60
+ Create a new face that has not been discovered by facial recognition. The content of the bounding box is considered a face.
61
+
62
+ :param asset_face_create_dto: (required)
63
+ :type asset_face_create_dto: AssetFaceCreateDto
64
+ :param _request_timeout: timeout setting for this request. If one
65
+ number provided, it will be total request
66
+ timeout. It can also be a pair (tuple) of
67
+ (connection, read) timeouts.
68
+ :type _request_timeout: int, tuple(int, int), optional
69
+ :param _request_auth: set to override the auth_settings for an a single
70
+ request; this effectively ignores the
71
+ authentication in the spec for a single request.
72
+ :type _request_auth: dict, optional
73
+ :param _content_type: force content-type for the request.
74
+ :type _content_type: str, Optional
75
+ :param _headers: set to override the headers for a single
76
+ request; this effectively ignores the headers
77
+ in the spec for a single request.
78
+ :type _headers: dict, optional
79
+ :param _host_index: set to override the host_index for a single
80
+ request; this effectively ignores the host_index
81
+ in the spec for a single request.
82
+ :type _host_index: int, optional
83
+ :return: Returns the result object.
84
+ """ # noqa: E501
85
+
86
+ _param = self._create_face_serialize(
87
+ asset_face_create_dto=asset_face_create_dto,
88
+ _request_auth=_request_auth,
89
+ _content_type=_content_type,
90
+ _headers=_headers,
91
+ _host_index=_host_index,
92
+ )
93
+
94
+ _response_types_map: Dict[str, Optional[str]] = {
95
+ "201": None,
96
+ }
97
+ response_data = await self.api_client.call_api(
98
+ *_param, _request_timeout=_request_timeout
99
+ )
100
+ await response_data.read()
101
+ return self.api_client.response_deserialize(
102
+ response_data=response_data,
103
+ response_types_map=_response_types_map,
104
+ ).data
105
+
106
+ @validate_call
107
+ async def create_face_with_http_info(
108
+ self,
109
+ asset_face_create_dto: AssetFaceCreateDto,
110
+ _request_timeout: Union[
111
+ None,
112
+ Annotated[StrictFloat, Field(gt=0)],
113
+ Tuple[
114
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
115
+ ],
116
+ ] = None,
117
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
118
+ _content_type: Optional[StrictStr] = None,
119
+ _headers: Optional[Dict[StrictStr, Any]] = None,
120
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
121
+ ) -> ApiResponse[None]:
122
+ """Create a face
123
+
124
+ Create a new face that has not been discovered by facial recognition. The content of the bounding box is considered a face.
125
+
126
+ :param asset_face_create_dto: (required)
127
+ :type asset_face_create_dto: AssetFaceCreateDto
128
+ :param _request_timeout: timeout setting for this request. If one
129
+ number provided, it will be total request
130
+ timeout. It can also be a pair (tuple) of
131
+ (connection, read) timeouts.
132
+ :type _request_timeout: int, tuple(int, int), optional
133
+ :param _request_auth: set to override the auth_settings for an a single
134
+ request; this effectively ignores the
135
+ authentication in the spec for a single request.
136
+ :type _request_auth: dict, optional
137
+ :param _content_type: force content-type for the request.
138
+ :type _content_type: str, Optional
139
+ :param _headers: set to override the headers for a single
140
+ request; this effectively ignores the headers
141
+ in the spec for a single request.
142
+ :type _headers: dict, optional
143
+ :param _host_index: set to override the host_index for a single
144
+ request; this effectively ignores the host_index
145
+ in the spec for a single request.
146
+ :type _host_index: int, optional
147
+ :return: Returns the result object.
148
+ """ # noqa: E501
149
+
150
+ _param = self._create_face_serialize(
151
+ asset_face_create_dto=asset_face_create_dto,
152
+ _request_auth=_request_auth,
153
+ _content_type=_content_type,
154
+ _headers=_headers,
155
+ _host_index=_host_index,
156
+ )
157
+
158
+ _response_types_map: Dict[str, Optional[str]] = {
159
+ "201": None,
160
+ }
161
+ response_data = await self.api_client.call_api(
162
+ *_param, _request_timeout=_request_timeout
163
+ )
164
+ await response_data.read()
165
+ return self.api_client.response_deserialize(
166
+ response_data=response_data,
167
+ response_types_map=_response_types_map,
168
+ )
169
+
170
+ @validate_call
171
+ async def create_face_without_preload_content(
172
+ self,
173
+ asset_face_create_dto: AssetFaceCreateDto,
174
+ _request_timeout: Union[
175
+ None,
176
+ Annotated[StrictFloat, Field(gt=0)],
177
+ Tuple[
178
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
179
+ ],
180
+ ] = None,
181
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
182
+ _content_type: Optional[StrictStr] = None,
183
+ _headers: Optional[Dict[StrictStr, Any]] = None,
184
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
185
+ ) -> RESTResponseType:
186
+ """Create a face
187
+
188
+ Create a new face that has not been discovered by facial recognition. The content of the bounding box is considered a face.
189
+
190
+ :param asset_face_create_dto: (required)
191
+ :type asset_face_create_dto: AssetFaceCreateDto
192
+ :param _request_timeout: timeout setting for this request. If one
193
+ number provided, it will be total request
194
+ timeout. It can also be a pair (tuple) of
195
+ (connection, read) timeouts.
196
+ :type _request_timeout: int, tuple(int, int), optional
197
+ :param _request_auth: set to override the auth_settings for an a single
198
+ request; this effectively ignores the
199
+ authentication in the spec for a single request.
200
+ :type _request_auth: dict, optional
201
+ :param _content_type: force content-type for the request.
202
+ :type _content_type: str, Optional
203
+ :param _headers: set to override the headers for a single
204
+ request; this effectively ignores the headers
205
+ in the spec for a single request.
206
+ :type _headers: dict, optional
207
+ :param _host_index: set to override the host_index for a single
208
+ request; this effectively ignores the host_index
209
+ in the spec for a single request.
210
+ :type _host_index: int, optional
211
+ :return: Returns the result object.
212
+ """ # noqa: E501
213
+
214
+ _param = self._create_face_serialize(
215
+ asset_face_create_dto=asset_face_create_dto,
216
+ _request_auth=_request_auth,
217
+ _content_type=_content_type,
218
+ _headers=_headers,
219
+ _host_index=_host_index,
220
+ )
221
+
222
+ _response_types_map: Dict[str, Optional[str]] = {
223
+ "201": None,
224
+ }
225
+ response_data = await self.api_client.call_api(
226
+ *_param, _request_timeout=_request_timeout
227
+ )
228
+ return response_data.response
229
+
230
+ def _create_face_serialize(
231
+ self,
232
+ asset_face_create_dto,
233
+ _request_auth,
234
+ _content_type,
235
+ _headers,
236
+ _host_index,
237
+ ) -> RequestSerialized:
238
+ _host = None
239
+
240
+ _collection_formats: Dict[str, str] = {}
241
+
242
+ _path_params: Dict[str, str] = {}
243
+ _query_params: List[Tuple[str, str]] = []
244
+ _header_params: Dict[str, Optional[str]] = _headers or {}
245
+ _form_params: List[Tuple[str, str]] = []
246
+ _files: Dict[
247
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
248
+ ] = {}
249
+ _body_params: Optional[bytes] = None
250
+
251
+ # process the path parameters
252
+ # process the query parameters
253
+ # process the header parameters
254
+ # process the form parameters
255
+ # process the body parameter
256
+ if asset_face_create_dto is not None:
257
+ _body_params = asset_face_create_dto
258
+
259
+ # set the HTTP header `Content-Type`
260
+ if _content_type:
261
+ _header_params["Content-Type"] = _content_type
262
+ else:
263
+ _default_content_type = self.api_client.select_header_content_type(
264
+ ["application/json"]
265
+ )
266
+ if _default_content_type is not None:
267
+ _header_params["Content-Type"] = _default_content_type
268
+
269
+ # authentication setting
270
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
271
+
272
+ return self.api_client.param_serialize(
273
+ method="POST",
274
+ resource_path="/faces",
275
+ path_params=_path_params,
276
+ query_params=_query_params,
277
+ header_params=_header_params,
278
+ body=_body_params,
279
+ post_params=_form_params,
280
+ files=_files,
281
+ auth_settings=_auth_settings,
282
+ collection_formats=_collection_formats,
283
+ _host=_host,
284
+ _request_auth=_request_auth,
285
+ )
286
+
287
+ @validate_call
288
+ async def delete_face(
289
+ self,
290
+ id: UUID,
291
+ asset_face_delete_dto: AssetFaceDeleteDto,
292
+ _request_timeout: Union[
293
+ None,
294
+ Annotated[StrictFloat, Field(gt=0)],
295
+ Tuple[
296
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
297
+ ],
298
+ ] = None,
299
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
300
+ _content_type: Optional[StrictStr] = None,
301
+ _headers: Optional[Dict[StrictStr, Any]] = None,
302
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
303
+ ) -> None:
304
+ """Delete a face
305
+
306
+ Delete a face identified by the id. Optionally can be force deleted.
307
+
308
+ :param id: (required)
309
+ :type id: UUID
310
+ :param asset_face_delete_dto: (required)
311
+ :type asset_face_delete_dto: AssetFaceDeleteDto
312
+ :param _request_timeout: timeout setting for this request. If one
313
+ number provided, it will be total request
314
+ timeout. It can also be a pair (tuple) of
315
+ (connection, read) timeouts.
316
+ :type _request_timeout: int, tuple(int, int), optional
317
+ :param _request_auth: set to override the auth_settings for an a single
318
+ request; this effectively ignores the
319
+ authentication in the spec for a single request.
320
+ :type _request_auth: dict, optional
321
+ :param _content_type: force content-type for the request.
322
+ :type _content_type: str, Optional
323
+ :param _headers: set to override the headers for a single
324
+ request; this effectively ignores the headers
325
+ in the spec for a single request.
326
+ :type _headers: dict, optional
327
+ :param _host_index: set to override the host_index for a single
328
+ request; this effectively ignores the host_index
329
+ in the spec for a single request.
330
+ :type _host_index: int, optional
331
+ :return: Returns the result object.
332
+ """ # noqa: E501
333
+
334
+ _param = self._delete_face_serialize(
335
+ id=id,
336
+ asset_face_delete_dto=asset_face_delete_dto,
337
+ _request_auth=_request_auth,
338
+ _content_type=_content_type,
339
+ _headers=_headers,
340
+ _host_index=_host_index,
341
+ )
342
+
343
+ _response_types_map: Dict[str, Optional[str]] = {
344
+ "204": None,
345
+ }
346
+ response_data = await self.api_client.call_api(
347
+ *_param, _request_timeout=_request_timeout
348
+ )
349
+ await response_data.read()
350
+ return self.api_client.response_deserialize(
351
+ response_data=response_data,
352
+ response_types_map=_response_types_map,
353
+ ).data
354
+
355
+ @validate_call
356
+ async def delete_face_with_http_info(
357
+ self,
358
+ id: UUID,
359
+ asset_face_delete_dto: AssetFaceDeleteDto,
360
+ _request_timeout: Union[
361
+ None,
362
+ Annotated[StrictFloat, Field(gt=0)],
363
+ Tuple[
364
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
365
+ ],
366
+ ] = None,
367
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
368
+ _content_type: Optional[StrictStr] = None,
369
+ _headers: Optional[Dict[StrictStr, Any]] = None,
370
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
371
+ ) -> ApiResponse[None]:
372
+ """Delete a face
373
+
374
+ Delete a face identified by the id. Optionally can be force deleted.
375
+
376
+ :param id: (required)
377
+ :type id: UUID
378
+ :param asset_face_delete_dto: (required)
379
+ :type asset_face_delete_dto: AssetFaceDeleteDto
380
+ :param _request_timeout: timeout setting for this request. If one
381
+ number provided, it will be total request
382
+ timeout. It can also be a pair (tuple) of
383
+ (connection, read) timeouts.
384
+ :type _request_timeout: int, tuple(int, int), optional
385
+ :param _request_auth: set to override the auth_settings for an a single
386
+ request; this effectively ignores the
387
+ authentication in the spec for a single request.
388
+ :type _request_auth: dict, optional
389
+ :param _content_type: force content-type for the request.
390
+ :type _content_type: str, Optional
391
+ :param _headers: set to override the headers for a single
392
+ request; this effectively ignores the headers
393
+ in the spec for a single request.
394
+ :type _headers: dict, optional
395
+ :param _host_index: set to override the host_index for a single
396
+ request; this effectively ignores the host_index
397
+ in the spec for a single request.
398
+ :type _host_index: int, optional
399
+ :return: Returns the result object.
400
+ """ # noqa: E501
401
+
402
+ _param = self._delete_face_serialize(
403
+ id=id,
404
+ asset_face_delete_dto=asset_face_delete_dto,
405
+ _request_auth=_request_auth,
406
+ _content_type=_content_type,
407
+ _headers=_headers,
408
+ _host_index=_host_index,
409
+ )
410
+
411
+ _response_types_map: Dict[str, Optional[str]] = {
412
+ "204": None,
413
+ }
414
+ response_data = await self.api_client.call_api(
415
+ *_param, _request_timeout=_request_timeout
416
+ )
417
+ await response_data.read()
418
+ return self.api_client.response_deserialize(
419
+ response_data=response_data,
420
+ response_types_map=_response_types_map,
421
+ )
422
+
423
+ @validate_call
424
+ async def delete_face_without_preload_content(
425
+ self,
426
+ id: UUID,
427
+ asset_face_delete_dto: AssetFaceDeleteDto,
428
+ _request_timeout: Union[
429
+ None,
430
+ Annotated[StrictFloat, Field(gt=0)],
431
+ Tuple[
432
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
433
+ ],
434
+ ] = None,
435
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
436
+ _content_type: Optional[StrictStr] = None,
437
+ _headers: Optional[Dict[StrictStr, Any]] = None,
438
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
439
+ ) -> RESTResponseType:
440
+ """Delete a face
441
+
442
+ Delete a face identified by the id. Optionally can be force deleted.
443
+
444
+ :param id: (required)
445
+ :type id: UUID
446
+ :param asset_face_delete_dto: (required)
447
+ :type asset_face_delete_dto: AssetFaceDeleteDto
448
+ :param _request_timeout: timeout setting for this request. If one
449
+ number provided, it will be total request
450
+ timeout. It can also be a pair (tuple) of
451
+ (connection, read) timeouts.
452
+ :type _request_timeout: int, tuple(int, int), optional
453
+ :param _request_auth: set to override the auth_settings for an a single
454
+ request; this effectively ignores the
455
+ authentication in the spec for a single request.
456
+ :type _request_auth: dict, optional
457
+ :param _content_type: force content-type for the request.
458
+ :type _content_type: str, Optional
459
+ :param _headers: set to override the headers for a single
460
+ request; this effectively ignores the headers
461
+ in the spec for a single request.
462
+ :type _headers: dict, optional
463
+ :param _host_index: set to override the host_index for a single
464
+ request; this effectively ignores the host_index
465
+ in the spec for a single request.
466
+ :type _host_index: int, optional
467
+ :return: Returns the result object.
468
+ """ # noqa: E501
469
+
470
+ _param = self._delete_face_serialize(
471
+ id=id,
472
+ asset_face_delete_dto=asset_face_delete_dto,
473
+ _request_auth=_request_auth,
474
+ _content_type=_content_type,
475
+ _headers=_headers,
476
+ _host_index=_host_index,
477
+ )
478
+
479
+ _response_types_map: Dict[str, Optional[str]] = {
480
+ "204": None,
481
+ }
482
+ response_data = await self.api_client.call_api(
483
+ *_param, _request_timeout=_request_timeout
484
+ )
485
+ return response_data.response
486
+
487
+ def _delete_face_serialize(
488
+ self,
489
+ id,
490
+ asset_face_delete_dto,
491
+ _request_auth,
492
+ _content_type,
493
+ _headers,
494
+ _host_index,
495
+ ) -> RequestSerialized:
496
+ _host = None
497
+
498
+ _collection_formats: Dict[str, str] = {}
499
+
500
+ _path_params: Dict[str, str] = {}
501
+ _query_params: List[Tuple[str, str]] = []
502
+ _header_params: Dict[str, Optional[str]] = _headers or {}
503
+ _form_params: List[Tuple[str, str]] = []
504
+ _files: Dict[
505
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
506
+ ] = {}
507
+ _body_params: Optional[bytes] = None
508
+
509
+ # process the path parameters
510
+ if id is not None:
511
+ _path_params["id"] = id
512
+ # process the query parameters
513
+ # process the header parameters
514
+ # process the form parameters
515
+ # process the body parameter
516
+ if asset_face_delete_dto is not None:
517
+ _body_params = asset_face_delete_dto
518
+
519
+ # set the HTTP header `Content-Type`
520
+ if _content_type:
521
+ _header_params["Content-Type"] = _content_type
522
+ else:
523
+ _default_content_type = self.api_client.select_header_content_type(
524
+ ["application/json"]
525
+ )
526
+ if _default_content_type is not None:
527
+ _header_params["Content-Type"] = _default_content_type
528
+
529
+ # authentication setting
530
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
531
+
532
+ return self.api_client.param_serialize(
533
+ method="DELETE",
534
+ resource_path="/faces/{id}",
535
+ path_params=_path_params,
536
+ query_params=_query_params,
537
+ header_params=_header_params,
538
+ body=_body_params,
539
+ post_params=_form_params,
540
+ files=_files,
541
+ auth_settings=_auth_settings,
542
+ collection_formats=_collection_formats,
543
+ _host=_host,
544
+ _request_auth=_request_auth,
545
+ )
546
+
547
+ @validate_call
548
+ async def get_faces(
549
+ self,
550
+ id: UUID,
551
+ _request_timeout: Union[
552
+ None,
553
+ Annotated[StrictFloat, Field(gt=0)],
554
+ Tuple[
555
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
556
+ ],
557
+ ] = None,
558
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
559
+ _content_type: Optional[StrictStr] = None,
560
+ _headers: Optional[Dict[StrictStr, Any]] = None,
561
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
562
+ ) -> List[AssetFaceResponseDto]:
563
+ """Retrieve faces for asset
564
+
565
+ Retrieve all faces belonging to an asset.
566
+
567
+ :param id: (required)
568
+ :type id: UUID
569
+ :param _request_timeout: timeout setting for this request. If one
570
+ number provided, it will be total request
571
+ timeout. It can also be a pair (tuple) of
572
+ (connection, read) timeouts.
573
+ :type _request_timeout: int, tuple(int, int), optional
574
+ :param _request_auth: set to override the auth_settings for an a single
575
+ request; this effectively ignores the
576
+ authentication in the spec for a single request.
577
+ :type _request_auth: dict, optional
578
+ :param _content_type: force content-type for the request.
579
+ :type _content_type: str, Optional
580
+ :param _headers: set to override the headers for a single
581
+ request; this effectively ignores the headers
582
+ in the spec for a single request.
583
+ :type _headers: dict, optional
584
+ :param _host_index: set to override the host_index for a single
585
+ request; this effectively ignores the host_index
586
+ in the spec for a single request.
587
+ :type _host_index: int, optional
588
+ :return: Returns the result object.
589
+ """ # noqa: E501
590
+
591
+ _param = self._get_faces_serialize(
592
+ id=id,
593
+ _request_auth=_request_auth,
594
+ _content_type=_content_type,
595
+ _headers=_headers,
596
+ _host_index=_host_index,
597
+ )
598
+
599
+ _response_types_map: Dict[str, Optional[str]] = {
600
+ "200": "List[AssetFaceResponseDto]",
601
+ }
602
+ response_data = await self.api_client.call_api(
603
+ *_param, _request_timeout=_request_timeout
604
+ )
605
+ await response_data.read()
606
+ return self.api_client.response_deserialize(
607
+ response_data=response_data,
608
+ response_types_map=_response_types_map,
609
+ ).data
610
+
611
+ @validate_call
612
+ async def get_faces_with_http_info(
613
+ self,
614
+ id: UUID,
615
+ _request_timeout: Union[
616
+ None,
617
+ Annotated[StrictFloat, Field(gt=0)],
618
+ Tuple[
619
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
620
+ ],
621
+ ] = None,
622
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
623
+ _content_type: Optional[StrictStr] = None,
624
+ _headers: Optional[Dict[StrictStr, Any]] = None,
625
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
626
+ ) -> ApiResponse[List[AssetFaceResponseDto]]:
627
+ """Retrieve faces for asset
628
+
629
+ Retrieve all faces belonging to an asset.
630
+
631
+ :param id: (required)
632
+ :type id: UUID
633
+ :param _request_timeout: timeout setting for this request. If one
634
+ number provided, it will be total request
635
+ timeout. It can also be a pair (tuple) of
636
+ (connection, read) timeouts.
637
+ :type _request_timeout: int, tuple(int, int), optional
638
+ :param _request_auth: set to override the auth_settings for an a single
639
+ request; this effectively ignores the
640
+ authentication in the spec for a single request.
641
+ :type _request_auth: dict, optional
642
+ :param _content_type: force content-type for the request.
643
+ :type _content_type: str, Optional
644
+ :param _headers: set to override the headers for a single
645
+ request; this effectively ignores the headers
646
+ in the spec for a single request.
647
+ :type _headers: dict, optional
648
+ :param _host_index: set to override the host_index for a single
649
+ request; this effectively ignores the host_index
650
+ in the spec for a single request.
651
+ :type _host_index: int, optional
652
+ :return: Returns the result object.
653
+ """ # noqa: E501
654
+
655
+ _param = self._get_faces_serialize(
656
+ id=id,
657
+ _request_auth=_request_auth,
658
+ _content_type=_content_type,
659
+ _headers=_headers,
660
+ _host_index=_host_index,
661
+ )
662
+
663
+ _response_types_map: Dict[str, Optional[str]] = {
664
+ "200": "List[AssetFaceResponseDto]",
665
+ }
666
+ response_data = await self.api_client.call_api(
667
+ *_param, _request_timeout=_request_timeout
668
+ )
669
+ await response_data.read()
670
+ return self.api_client.response_deserialize(
671
+ response_data=response_data,
672
+ response_types_map=_response_types_map,
673
+ )
674
+
675
+ @validate_call
676
+ async def get_faces_without_preload_content(
677
+ self,
678
+ id: UUID,
679
+ _request_timeout: Union[
680
+ None,
681
+ Annotated[StrictFloat, Field(gt=0)],
682
+ Tuple[
683
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
684
+ ],
685
+ ] = None,
686
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
687
+ _content_type: Optional[StrictStr] = None,
688
+ _headers: Optional[Dict[StrictStr, Any]] = None,
689
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
690
+ ) -> RESTResponseType:
691
+ """Retrieve faces for asset
692
+
693
+ Retrieve all faces belonging to an asset.
694
+
695
+ :param id: (required)
696
+ :type id: UUID
697
+ :param _request_timeout: timeout setting for this request. If one
698
+ number provided, it will be total request
699
+ timeout. It can also be a pair (tuple) of
700
+ (connection, read) timeouts.
701
+ :type _request_timeout: int, tuple(int, int), optional
702
+ :param _request_auth: set to override the auth_settings for an a single
703
+ request; this effectively ignores the
704
+ authentication in the spec for a single request.
705
+ :type _request_auth: dict, optional
706
+ :param _content_type: force content-type for the request.
707
+ :type _content_type: str, Optional
708
+ :param _headers: set to override the headers for a single
709
+ request; this effectively ignores the headers
710
+ in the spec for a single request.
711
+ :type _headers: dict, optional
712
+ :param _host_index: set to override the host_index for a single
713
+ request; this effectively ignores the host_index
714
+ in the spec for a single request.
715
+ :type _host_index: int, optional
716
+ :return: Returns the result object.
717
+ """ # noqa: E501
718
+
719
+ _param = self._get_faces_serialize(
720
+ id=id,
721
+ _request_auth=_request_auth,
722
+ _content_type=_content_type,
723
+ _headers=_headers,
724
+ _host_index=_host_index,
725
+ )
726
+
727
+ _response_types_map: Dict[str, Optional[str]] = {
728
+ "200": "List[AssetFaceResponseDto]",
729
+ }
730
+ response_data = await self.api_client.call_api(
731
+ *_param, _request_timeout=_request_timeout
732
+ )
733
+ return response_data.response
734
+
735
+ def _get_faces_serialize(
736
+ self,
737
+ id,
738
+ _request_auth,
739
+ _content_type,
740
+ _headers,
741
+ _host_index,
742
+ ) -> RequestSerialized:
743
+ _host = None
744
+
745
+ _collection_formats: Dict[str, str] = {}
746
+
747
+ _path_params: Dict[str, str] = {}
748
+ _query_params: List[Tuple[str, str]] = []
749
+ _header_params: Dict[str, Optional[str]] = _headers or {}
750
+ _form_params: List[Tuple[str, str]] = []
751
+ _files: Dict[
752
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
753
+ ] = {}
754
+ _body_params: Optional[bytes] = None
755
+
756
+ # process the path parameters
757
+ # process the query parameters
758
+ if id is not None:
759
+ _query_params.append(("id", id))
760
+
761
+ # process the header parameters
762
+ # process the form parameters
763
+ # process the body parameter
764
+
765
+ # set the HTTP header `Accept`
766
+ if "Accept" not in _header_params:
767
+ _header_params["Accept"] = self.api_client.select_header_accept(
768
+ ["application/json"]
769
+ )
770
+
771
+ # authentication setting
772
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
773
+
774
+ return self.api_client.param_serialize(
775
+ method="GET",
776
+ resource_path="/faces",
777
+ path_params=_path_params,
778
+ query_params=_query_params,
779
+ header_params=_header_params,
780
+ body=_body_params,
781
+ post_params=_form_params,
782
+ files=_files,
783
+ auth_settings=_auth_settings,
784
+ collection_formats=_collection_formats,
785
+ _host=_host,
786
+ _request_auth=_request_auth,
787
+ )
788
+
789
+ @validate_call
790
+ async def reassign_faces_by_id(
791
+ self,
792
+ id: UUID,
793
+ face_dto: FaceDto,
794
+ _request_timeout: Union[
795
+ None,
796
+ Annotated[StrictFloat, Field(gt=0)],
797
+ Tuple[
798
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
799
+ ],
800
+ ] = None,
801
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
802
+ _content_type: Optional[StrictStr] = None,
803
+ _headers: Optional[Dict[StrictStr, Any]] = None,
804
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
805
+ ) -> PersonResponseDto:
806
+ """Re-assign a face to another person
807
+
808
+ Re-assign the face provided in the body to the person identified by the id in the path parameter.
809
+
810
+ :param id: (required)
811
+ :type id: UUID
812
+ :param face_dto: (required)
813
+ :type face_dto: FaceDto
814
+ :param _request_timeout: timeout setting for this request. If one
815
+ number provided, it will be total request
816
+ timeout. It can also be a pair (tuple) of
817
+ (connection, read) timeouts.
818
+ :type _request_timeout: int, tuple(int, int), optional
819
+ :param _request_auth: set to override the auth_settings for an a single
820
+ request; this effectively ignores the
821
+ authentication in the spec for a single request.
822
+ :type _request_auth: dict, optional
823
+ :param _content_type: force content-type for the request.
824
+ :type _content_type: str, Optional
825
+ :param _headers: set to override the headers for a single
826
+ request; this effectively ignores the headers
827
+ in the spec for a single request.
828
+ :type _headers: dict, optional
829
+ :param _host_index: set to override the host_index for a single
830
+ request; this effectively ignores the host_index
831
+ in the spec for a single request.
832
+ :type _host_index: int, optional
833
+ :return: Returns the result object.
834
+ """ # noqa: E501
835
+
836
+ _param = self._reassign_faces_by_id_serialize(
837
+ id=id,
838
+ face_dto=face_dto,
839
+ _request_auth=_request_auth,
840
+ _content_type=_content_type,
841
+ _headers=_headers,
842
+ _host_index=_host_index,
843
+ )
844
+
845
+ _response_types_map: Dict[str, Optional[str]] = {
846
+ "200": "PersonResponseDto",
847
+ }
848
+ response_data = await self.api_client.call_api(
849
+ *_param, _request_timeout=_request_timeout
850
+ )
851
+ await response_data.read()
852
+ return self.api_client.response_deserialize(
853
+ response_data=response_data,
854
+ response_types_map=_response_types_map,
855
+ ).data
856
+
857
+ @validate_call
858
+ async def reassign_faces_by_id_with_http_info(
859
+ self,
860
+ id: UUID,
861
+ face_dto: FaceDto,
862
+ _request_timeout: Union[
863
+ None,
864
+ Annotated[StrictFloat, Field(gt=0)],
865
+ Tuple[
866
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
867
+ ],
868
+ ] = None,
869
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
870
+ _content_type: Optional[StrictStr] = None,
871
+ _headers: Optional[Dict[StrictStr, Any]] = None,
872
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
873
+ ) -> ApiResponse[PersonResponseDto]:
874
+ """Re-assign a face to another person
875
+
876
+ Re-assign the face provided in the body to the person identified by the id in the path parameter.
877
+
878
+ :param id: (required)
879
+ :type id: UUID
880
+ :param face_dto: (required)
881
+ :type face_dto: FaceDto
882
+ :param _request_timeout: timeout setting for this request. If one
883
+ number provided, it will be total request
884
+ timeout. It can also be a pair (tuple) of
885
+ (connection, read) timeouts.
886
+ :type _request_timeout: int, tuple(int, int), optional
887
+ :param _request_auth: set to override the auth_settings for an a single
888
+ request; this effectively ignores the
889
+ authentication in the spec for a single request.
890
+ :type _request_auth: dict, optional
891
+ :param _content_type: force content-type for the request.
892
+ :type _content_type: str, Optional
893
+ :param _headers: set to override the headers for a single
894
+ request; this effectively ignores the headers
895
+ in the spec for a single request.
896
+ :type _headers: dict, optional
897
+ :param _host_index: set to override the host_index for a single
898
+ request; this effectively ignores the host_index
899
+ in the spec for a single request.
900
+ :type _host_index: int, optional
901
+ :return: Returns the result object.
902
+ """ # noqa: E501
903
+
904
+ _param = self._reassign_faces_by_id_serialize(
905
+ id=id,
906
+ face_dto=face_dto,
907
+ _request_auth=_request_auth,
908
+ _content_type=_content_type,
909
+ _headers=_headers,
910
+ _host_index=_host_index,
911
+ )
912
+
913
+ _response_types_map: Dict[str, Optional[str]] = {
914
+ "200": "PersonResponseDto",
915
+ }
916
+ response_data = await self.api_client.call_api(
917
+ *_param, _request_timeout=_request_timeout
918
+ )
919
+ await response_data.read()
920
+ return self.api_client.response_deserialize(
921
+ response_data=response_data,
922
+ response_types_map=_response_types_map,
923
+ )
924
+
925
+ @validate_call
926
+ async def reassign_faces_by_id_without_preload_content(
927
+ self,
928
+ id: UUID,
929
+ face_dto: FaceDto,
930
+ _request_timeout: Union[
931
+ None,
932
+ Annotated[StrictFloat, Field(gt=0)],
933
+ Tuple[
934
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
935
+ ],
936
+ ] = None,
937
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
938
+ _content_type: Optional[StrictStr] = None,
939
+ _headers: Optional[Dict[StrictStr, Any]] = None,
940
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
941
+ ) -> RESTResponseType:
942
+ """Re-assign a face to another person
943
+
944
+ Re-assign the face provided in the body to the person identified by the id in the path parameter.
945
+
946
+ :param id: (required)
947
+ :type id: UUID
948
+ :param face_dto: (required)
949
+ :type face_dto: FaceDto
950
+ :param _request_timeout: timeout setting for this request. If one
951
+ number provided, it will be total request
952
+ timeout. It can also be a pair (tuple) of
953
+ (connection, read) timeouts.
954
+ :type _request_timeout: int, tuple(int, int), optional
955
+ :param _request_auth: set to override the auth_settings for an a single
956
+ request; this effectively ignores the
957
+ authentication in the spec for a single request.
958
+ :type _request_auth: dict, optional
959
+ :param _content_type: force content-type for the request.
960
+ :type _content_type: str, Optional
961
+ :param _headers: set to override the headers for a single
962
+ request; this effectively ignores the headers
963
+ in the spec for a single request.
964
+ :type _headers: dict, optional
965
+ :param _host_index: set to override the host_index for a single
966
+ request; this effectively ignores the host_index
967
+ in the spec for a single request.
968
+ :type _host_index: int, optional
969
+ :return: Returns the result object.
970
+ """ # noqa: E501
971
+
972
+ _param = self._reassign_faces_by_id_serialize(
973
+ id=id,
974
+ face_dto=face_dto,
975
+ _request_auth=_request_auth,
976
+ _content_type=_content_type,
977
+ _headers=_headers,
978
+ _host_index=_host_index,
979
+ )
980
+
981
+ _response_types_map: Dict[str, Optional[str]] = {
982
+ "200": "PersonResponseDto",
983
+ }
984
+ response_data = await self.api_client.call_api(
985
+ *_param, _request_timeout=_request_timeout
986
+ )
987
+ return response_data.response
988
+
989
+ def _reassign_faces_by_id_serialize(
990
+ self,
991
+ id,
992
+ face_dto,
993
+ _request_auth,
994
+ _content_type,
995
+ _headers,
996
+ _host_index,
997
+ ) -> RequestSerialized:
998
+ _host = None
999
+
1000
+ _collection_formats: Dict[str, str] = {}
1001
+
1002
+ _path_params: Dict[str, str] = {}
1003
+ _query_params: List[Tuple[str, str]] = []
1004
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1005
+ _form_params: List[Tuple[str, str]] = []
1006
+ _files: Dict[
1007
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1008
+ ] = {}
1009
+ _body_params: Optional[bytes] = None
1010
+
1011
+ # process the path parameters
1012
+ if id is not None:
1013
+ _path_params["id"] = id
1014
+ # process the query parameters
1015
+ # process the header parameters
1016
+ # process the form parameters
1017
+ # process the body parameter
1018
+ if face_dto is not None:
1019
+ _body_params = face_dto
1020
+
1021
+ # set the HTTP header `Accept`
1022
+ if "Accept" not in _header_params:
1023
+ _header_params["Accept"] = self.api_client.select_header_accept(
1024
+ ["application/json"]
1025
+ )
1026
+
1027
+ # set the HTTP header `Content-Type`
1028
+ if _content_type:
1029
+ _header_params["Content-Type"] = _content_type
1030
+ else:
1031
+ _default_content_type = self.api_client.select_header_content_type(
1032
+ ["application/json"]
1033
+ )
1034
+ if _default_content_type is not None:
1035
+ _header_params["Content-Type"] = _default_content_type
1036
+
1037
+ # authentication setting
1038
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
1039
+
1040
+ return self.api_client.param_serialize(
1041
+ method="PUT",
1042
+ resource_path="/faces/{id}",
1043
+ path_params=_path_params,
1044
+ query_params=_query_params,
1045
+ header_params=_header_params,
1046
+ body=_body_params,
1047
+ post_params=_form_params,
1048
+ files=_files,
1049
+ auth_settings=_auth_settings,
1050
+ collection_formats=_collection_formats,
1051
+ _host=_host,
1052
+ _request_auth=_request_auth,
1053
+ )