immichpy 1.6.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. immichpy/.openapi-generator/FILES +387 -0
  2. immichpy/.openapi-generator/VERSION +1 -0
  3. immichpy/__init__.py +3 -0
  4. immichpy/cli/__main__.py +12 -0
  5. immichpy/cli/commands/activities.py +110 -0
  6. immichpy/cli/commands/albums.py +317 -0
  7. immichpy/cli/commands/api_keys.py +125 -0
  8. immichpy/cli/commands/assets.py +610 -0
  9. immichpy/cli/commands/authentication.py +343 -0
  10. immichpy/cli/commands/authentication_admin.py +34 -0
  11. immichpy/cli/commands/download.py +76 -0
  12. immichpy/cli/commands/duplicates.py +67 -0
  13. immichpy/cli/commands/faces.py +107 -0
  14. immichpy/cli/commands/jobs.py +75 -0
  15. immichpy/cli/commands/libraries.py +183 -0
  16. immichpy/cli/commands/maintenance_admin.py +59 -0
  17. immichpy/cli/commands/map.py +79 -0
  18. immichpy/cli/commands/memories.py +231 -0
  19. immichpy/cli/commands/notifications.py +152 -0
  20. immichpy/cli/commands/notifications_admin.py +127 -0
  21. immichpy/cli/commands/partners.py +108 -0
  22. immichpy/cli/commands/people.py +293 -0
  23. immichpy/cli/commands/plugins.py +46 -0
  24. immichpy/cli/commands/queues.py +115 -0
  25. immichpy/cli/commands/search.py +835 -0
  26. immichpy/cli/commands/server.py +237 -0
  27. immichpy/cli/commands/sessions.py +132 -0
  28. immichpy/cli/commands/shared_links.py +273 -0
  29. immichpy/cli/commands/stacks.py +153 -0
  30. immichpy/cli/commands/sync.py +140 -0
  31. immichpy/cli/commands/system_config.py +681 -0
  32. immichpy/cli/commands/system_metadata.py +91 -0
  33. immichpy/cli/commands/tags.py +191 -0
  34. immichpy/cli/commands/timeline.py +196 -0
  35. immichpy/cli/commands/trash.py +63 -0
  36. immichpy/cli/commands/users.py +406 -0
  37. immichpy/cli/commands/users_admin.py +444 -0
  38. immichpy/cli/commands/views.py +54 -0
  39. immichpy/cli/commands/workflows.py +140 -0
  40. immichpy/cli/consts.py +19 -0
  41. immichpy/cli/main.py +248 -0
  42. immichpy/cli/runtime.py +97 -0
  43. immichpy/cli/types.py +17 -0
  44. immichpy/cli/utils.py +227 -0
  45. immichpy/cli/wrapper/assets.py +223 -0
  46. immichpy/cli/wrapper/config.py +76 -0
  47. immichpy/cli/wrapper/download.py +77 -0
  48. immichpy/cli/wrapper/setup.py +90 -0
  49. immichpy/cli/wrapper/users.py +47 -0
  50. immichpy/client/.openapi-generator/FILES +371 -0
  51. immichpy/client/.openapi-generator/VERSION +1 -0
  52. immichpy/client/.openapi-generator-ignore +48 -0
  53. immichpy/client/__init__.py +0 -0
  54. immichpy/client/consts.py +1 -0
  55. immichpy/client/generated/__init__.py +1344 -0
  56. immichpy/client/generated/api/__init__.py +41 -0
  57. immichpy/client/generated/api/activities_api.py +1092 -0
  58. immichpy/client/generated/api/albums_api.py +3228 -0
  59. immichpy/client/generated/api/api_keys_api.py +1486 -0
  60. immichpy/client/generated/api/assets_api.py +5846 -0
  61. immichpy/client/generated/api/authentication_admin_api.py +254 -0
  62. immichpy/client/generated/api/authentication_api.py +3887 -0
  63. immichpy/client/generated/api/deprecated_api.py +2207 -0
  64. immichpy/client/generated/api/download_api.py +603 -0
  65. immichpy/client/generated/api/duplicates_api.py +743 -0
  66. immichpy/client/generated/api/faces_api.py +1055 -0
  67. immichpy/client/generated/api/jobs_api.py +787 -0
  68. immichpy/client/generated/api/libraries_api.py +2006 -0
  69. immichpy/client/generated/api/maintenance_admin_api.py +535 -0
  70. immichpy/client/generated/api/map_api.py +642 -0
  71. immichpy/client/generated/api/memories_api.py +2250 -0
  72. immichpy/client/generated/api/notifications_admin_api.py +812 -0
  73. immichpy/client/generated/api/notifications_api.py +1570 -0
  74. immichpy/client/generated/api/partners_api.py +1278 -0
  75. immichpy/client/generated/api/people_api.py +2905 -0
  76. immichpy/client/generated/api/plugins_api.py +503 -0
  77. immichpy/client/generated/api/queues_api.py +1292 -0
  78. immichpy/client/generated/api/search_api.py +3200 -0
  79. immichpy/client/generated/api/server_api.py +3474 -0
  80. immichpy/client/generated/api/sessions_api.py +1474 -0
  81. immichpy/client/generated/api/shared_links_api.py +2163 -0
  82. immichpy/client/generated/api/stacks_api.py +1769 -0
  83. immichpy/client/generated/api/sync_api.py +1514 -0
  84. immichpy/client/generated/api/system_config_api.py +967 -0
  85. immichpy/client/generated/api/system_metadata_api.py +966 -0
  86. immichpy/client/generated/api/tags_api.py +2298 -0
  87. immichpy/client/generated/api/timeline_api.py +1195 -0
  88. immichpy/client/generated/api/trash_api.py +739 -0
  89. immichpy/client/generated/api/users_admin_api.py +2613 -0
  90. immichpy/client/generated/api/users_api.py +3583 -0
  91. immichpy/client/generated/api/views_api.py +503 -0
  92. immichpy/client/generated/api/workflows_api.py +1257 -0
  93. immichpy/client/generated/api_client.py +756 -0
  94. immichpy/client/generated/api_response.py +20 -0
  95. immichpy/client/generated/configuration.py +638 -0
  96. immichpy/client/generated/exceptions.py +222 -0
  97. immichpy/client/generated/models/__init__.py +561 -0
  98. immichpy/client/generated/models/activity_create_dto.py +94 -0
  99. immichpy/client/generated/models/activity_response_dto.py +121 -0
  100. immichpy/client/generated/models/activity_statistics_response_dto.py +85 -0
  101. immichpy/client/generated/models/add_users_dto.py +101 -0
  102. immichpy/client/generated/models/admin_onboarding_update_dto.py +82 -0
  103. immichpy/client/generated/models/album_response_dto.py +201 -0
  104. immichpy/client/generated/models/album_statistics_response_dto.py +90 -0
  105. immichpy/client/generated/models/album_user_add_dto.py +87 -0
  106. immichpy/client/generated/models/album_user_create_dto.py +87 -0
  107. immichpy/client/generated/models/album_user_response_dto.py +95 -0
  108. immichpy/client/generated/models/album_user_role.py +34 -0
  109. immichpy/client/generated/models/albums_add_assets_dto.py +86 -0
  110. immichpy/client/generated/models/albums_add_assets_response_dto.py +86 -0
  111. immichpy/client/generated/models/albums_response.py +83 -0
  112. immichpy/client/generated/models/albums_update.py +85 -0
  113. immichpy/client/generated/models/api_key_create_dto.py +87 -0
  114. immichpy/client/generated/models/api_key_create_response_dto.py +94 -0
  115. immichpy/client/generated/models/api_key_response_dto.py +102 -0
  116. immichpy/client/generated/models/api_key_update_dto.py +87 -0
  117. immichpy/client/generated/models/asset_bulk_delete_dto.py +84 -0
  118. immichpy/client/generated/models/asset_bulk_update_dto.py +143 -0
  119. immichpy/client/generated/models/asset_bulk_upload_check_dto.py +100 -0
  120. immichpy/client/generated/models/asset_bulk_upload_check_item.py +85 -0
  121. immichpy/client/generated/models/asset_bulk_upload_check_response_dto.py +101 -0
  122. immichpy/client/generated/models/asset_bulk_upload_check_result.py +126 -0
  123. immichpy/client/generated/models/asset_copy_dto.py +113 -0
  124. immichpy/client/generated/models/asset_delta_sync_dto.py +87 -0
  125. immichpy/client/generated/models/asset_delta_sync_response_dto.py +102 -0
  126. immichpy/client/generated/models/asset_face_create_dto.py +110 -0
  127. immichpy/client/generated/models/asset_face_delete_dto.py +82 -0
  128. immichpy/client/generated/models/asset_face_response_dto.py +125 -0
  129. immichpy/client/generated/models/asset_face_update_dto.py +96 -0
  130. immichpy/client/generated/models/asset_face_update_item.py +86 -0
  131. immichpy/client/generated/models/asset_face_without_person_response_dto.py +111 -0
  132. immichpy/client/generated/models/asset_full_sync_dto.py +95 -0
  133. immichpy/client/generated/models/asset_ids_dto.py +83 -0
  134. immichpy/client/generated/models/asset_ids_response_dto.py +109 -0
  135. immichpy/client/generated/models/asset_job_name.py +36 -0
  136. immichpy/client/generated/models/asset_jobs_dto.py +87 -0
  137. immichpy/client/generated/models/asset_media_response_dto.py +84 -0
  138. immichpy/client/generated/models/asset_media_size.py +35 -0
  139. immichpy/client/generated/models/asset_media_status.py +35 -0
  140. immichpy/client/generated/models/asset_metadata_key.py +33 -0
  141. immichpy/client/generated/models/asset_metadata_response_dto.py +92 -0
  142. immichpy/client/generated/models/asset_metadata_upsert_dto.py +101 -0
  143. immichpy/client/generated/models/asset_metadata_upsert_item_dto.py +84 -0
  144. immichpy/client/generated/models/asset_ocr_response_dto.py +145 -0
  145. immichpy/client/generated/models/asset_order.py +34 -0
  146. immichpy/client/generated/models/asset_response_dto.py +293 -0
  147. immichpy/client/generated/models/asset_stack_response_dto.py +90 -0
  148. immichpy/client/generated/models/asset_stats_response_dto.py +90 -0
  149. immichpy/client/generated/models/asset_type_enum.py +36 -0
  150. immichpy/client/generated/models/asset_visibility.py +36 -0
  151. immichpy/client/generated/models/audio_codec.py +36 -0
  152. immichpy/client/generated/models/auth_status_response_dto.py +100 -0
  153. immichpy/client/generated/models/avatar_update.py +83 -0
  154. immichpy/client/generated/models/bulk_id_error_reason.py +36 -0
  155. immichpy/client/generated/models/bulk_id_response_dto.py +102 -0
  156. immichpy/client/generated/models/bulk_ids_dto.py +83 -0
  157. immichpy/client/generated/models/cast_response.py +88 -0
  158. immichpy/client/generated/models/cast_update.py +82 -0
  159. immichpy/client/generated/models/change_password_dto.py +101 -0
  160. immichpy/client/generated/models/check_existing_assets_dto.py +91 -0
  161. immichpy/client/generated/models/check_existing_assets_response_dto.py +82 -0
  162. immichpy/client/generated/models/clip_config.py +85 -0
  163. immichpy/client/generated/models/colorspace.py +34 -0
  164. immichpy/client/generated/models/contributor_count_response_dto.py +85 -0
  165. immichpy/client/generated/models/cq_mode.py +35 -0
  166. immichpy/client/generated/models/create_album_dto.py +112 -0
  167. immichpy/client/generated/models/create_library_dto.py +103 -0
  168. immichpy/client/generated/models/create_profile_image_response_dto.py +95 -0
  169. immichpy/client/generated/models/database_backup_config.py +94 -0
  170. immichpy/client/generated/models/download_archive_info.py +85 -0
  171. immichpy/client/generated/models/download_info_dto.py +96 -0
  172. immichpy/client/generated/models/download_response.py +90 -0
  173. immichpy/client/generated/models/download_response_dto.py +100 -0
  174. immichpy/client/generated/models/download_update.py +93 -0
  175. immichpy/client/generated/models/duplicate_detection_config.py +89 -0
  176. immichpy/client/generated/models/duplicate_response_dto.py +98 -0
  177. immichpy/client/generated/models/email_notifications_response.py +90 -0
  178. immichpy/client/generated/models/email_notifications_update.py +90 -0
  179. immichpy/client/generated/models/exif_response_dto.py +284 -0
  180. immichpy/client/generated/models/face_dto.py +83 -0
  181. immichpy/client/generated/models/facial_recognition_config.py +107 -0
  182. immichpy/client/generated/models/folders_response.py +92 -0
  183. immichpy/client/generated/models/folders_update.py +85 -0
  184. immichpy/client/generated/models/image_format.py +34 -0
  185. immichpy/client/generated/models/job_create_dto.py +83 -0
  186. immichpy/client/generated/models/job_name.py +87 -0
  187. immichpy/client/generated/models/job_settings_dto.py +83 -0
  188. immichpy/client/generated/models/library_response_dto.py +118 -0
  189. immichpy/client/generated/models/library_stats_response_dto.py +92 -0
  190. immichpy/client/generated/models/license_key_dto.py +98 -0
  191. immichpy/client/generated/models/license_response_dto.py +101 -0
  192. immichpy/client/generated/models/log_level.py +38 -0
  193. immichpy/client/generated/models/login_credential_dto.py +85 -0
  194. immichpy/client/generated/models/login_response_dto.py +109 -0
  195. immichpy/client/generated/models/logout_response_dto.py +85 -0
  196. immichpy/client/generated/models/machine_learning_availability_checks_dto.py +90 -0
  197. immichpy/client/generated/models/maintenance_action.py +34 -0
  198. immichpy/client/generated/models/maintenance_auth_dto.py +82 -0
  199. immichpy/client/generated/models/maintenance_login_dto.py +82 -0
  200. immichpy/client/generated/models/manual_job_name.py +38 -0
  201. immichpy/client/generated/models/map_marker_response_dto.py +111 -0
  202. immichpy/client/generated/models/map_reverse_geocode_response_dto.py +105 -0
  203. immichpy/client/generated/models/memories_response.py +92 -0
  204. immichpy/client/generated/models/memories_update.py +86 -0
  205. immichpy/client/generated/models/memory_create_dto.py +112 -0
  206. immichpy/client/generated/models/memory_response_dto.py +142 -0
  207. immichpy/client/generated/models/memory_search_order.py +35 -0
  208. immichpy/client/generated/models/memory_statistics_response_dto.py +82 -0
  209. immichpy/client/generated/models/memory_type.py +33 -0
  210. immichpy/client/generated/models/memory_update_dto.py +91 -0
  211. immichpy/client/generated/models/merge_person_dto.py +83 -0
  212. immichpy/client/generated/models/metadata_search_dto.py +277 -0
  213. immichpy/client/generated/models/notification_create_dto.py +120 -0
  214. immichpy/client/generated/models/notification_delete_all_dto.py +83 -0
  215. immichpy/client/generated/models/notification_dto.py +112 -0
  216. immichpy/client/generated/models/notification_level.py +36 -0
  217. immichpy/client/generated/models/notification_type.py +38 -0
  218. immichpy/client/generated/models/notification_update_all_dto.py +90 -0
  219. immichpy/client/generated/models/notification_update_dto.py +88 -0
  220. immichpy/client/generated/models/o_auth_authorize_response_dto.py +82 -0
  221. immichpy/client/generated/models/o_auth_callback_dto.py +90 -0
  222. immichpy/client/generated/models/o_auth_config_dto.py +90 -0
  223. immichpy/client/generated/models/o_auth_token_endpoint_auth_method.py +34 -0
  224. immichpy/client/generated/models/ocr_config.py +109 -0
  225. immichpy/client/generated/models/on_this_day_dto.py +86 -0
  226. immichpy/client/generated/models/onboarding_dto.py +82 -0
  227. immichpy/client/generated/models/onboarding_response_dto.py +82 -0
  228. immichpy/client/generated/models/partner_create_dto.py +83 -0
  229. immichpy/client/generated/models/partner_direction.py +34 -0
  230. immichpy/client/generated/models/partner_response_dto.py +108 -0
  231. immichpy/client/generated/models/partner_update_dto.py +82 -0
  232. immichpy/client/generated/models/people_response.py +92 -0
  233. immichpy/client/generated/models/people_response_dto.py +104 -0
  234. immichpy/client/generated/models/people_update.py +85 -0
  235. immichpy/client/generated/models/people_update_dto.py +96 -0
  236. immichpy/client/generated/models/people_update_item.py +128 -0
  237. immichpy/client/generated/models/permission.py +177 -0
  238. immichpy/client/generated/models/person_create_dto.py +117 -0
  239. immichpy/client/generated/models/person_response_dto.py +115 -0
  240. immichpy/client/generated/models/person_statistics_response_dto.py +82 -0
  241. immichpy/client/generated/models/person_update_dto.py +125 -0
  242. immichpy/client/generated/models/person_with_faces_response_dto.py +133 -0
  243. immichpy/client/generated/models/pin_code_change_dto.py +90 -0
  244. immichpy/client/generated/models/pin_code_reset_dto.py +85 -0
  245. immichpy/client/generated/models/pin_code_setup_dto.py +82 -0
  246. immichpy/client/generated/models/places_response_dto.py +100 -0
  247. immichpy/client/generated/models/plugin_action_response_dto.py +112 -0
  248. immichpy/client/generated/models/plugin_context.py +35 -0
  249. immichpy/client/generated/models/plugin_filter_response_dto.py +112 -0
  250. immichpy/client/generated/models/plugin_response_dto.py +143 -0
  251. immichpy/client/generated/models/plugin_trigger_type.py +34 -0
  252. immichpy/client/generated/models/purchase_response.py +88 -0
  253. immichpy/client/generated/models/purchase_update.py +92 -0
  254. immichpy/client/generated/models/queue_command.py +37 -0
  255. immichpy/client/generated/models/queue_command_dto.py +86 -0
  256. immichpy/client/generated/models/queue_delete_dto.py +85 -0
  257. immichpy/client/generated/models/queue_job_response_dto.py +93 -0
  258. immichpy/client/generated/models/queue_job_status.py +38 -0
  259. immichpy/client/generated/models/queue_name.py +49 -0
  260. immichpy/client/generated/models/queue_response_dto.py +97 -0
  261. immichpy/client/generated/models/queue_response_legacy_dto.py +102 -0
  262. immichpy/client/generated/models/queue_statistics_dto.py +103 -0
  263. immichpy/client/generated/models/queue_status_legacy_dto.py +85 -0
  264. immichpy/client/generated/models/queue_update_dto.py +82 -0
  265. immichpy/client/generated/models/queues_response_legacy_dto.py +244 -0
  266. immichpy/client/generated/models/random_search_dto.py +234 -0
  267. immichpy/client/generated/models/ratings_response.py +84 -0
  268. immichpy/client/generated/models/ratings_update.py +82 -0
  269. immichpy/client/generated/models/reaction_level.py +34 -0
  270. immichpy/client/generated/models/reaction_type.py +34 -0
  271. immichpy/client/generated/models/reverse_geocoding_state_response_dto.py +101 -0
  272. immichpy/client/generated/models/search_album_response_dto.py +116 -0
  273. immichpy/client/generated/models/search_asset_response_dto.py +129 -0
  274. immichpy/client/generated/models/search_explore_item.py +94 -0
  275. immichpy/client/generated/models/search_explore_response_dto.py +98 -0
  276. immichpy/client/generated/models/search_facet_count_response_dto.py +85 -0
  277. immichpy/client/generated/models/search_facet_response_dto.py +103 -0
  278. immichpy/client/generated/models/search_response_dto.py +104 -0
  279. immichpy/client/generated/models/search_statistics_response_dto.py +82 -0
  280. immichpy/client/generated/models/search_suggestion_type.py +38 -0
  281. immichpy/client/generated/models/server_about_response_dto.py +156 -0
  282. immichpy/client/generated/models/server_apk_links_dto.py +97 -0
  283. immichpy/client/generated/models/server_config_dto.py +118 -0
  284. immichpy/client/generated/models/server_features_dto.py +130 -0
  285. immichpy/client/generated/models/server_media_types_response_dto.py +90 -0
  286. immichpy/client/generated/models/server_ping_response.py +87 -0
  287. immichpy/client/generated/models/server_stats_response_dto.py +119 -0
  288. immichpy/client/generated/models/server_storage_response_dto.py +108 -0
  289. immichpy/client/generated/models/server_theme_dto.py +82 -0
  290. immichpy/client/generated/models/server_version_history_response_dto.py +91 -0
  291. immichpy/client/generated/models/server_version_response_dto.py +90 -0
  292. immichpy/client/generated/models/session_create_dto.py +96 -0
  293. immichpy/client/generated/models/session_create_response_dto.py +120 -0
  294. immichpy/client/generated/models/session_response_dto.py +117 -0
  295. immichpy/client/generated/models/session_unlock_dto.py +85 -0
  296. immichpy/client/generated/models/session_update_dto.py +84 -0
  297. immichpy/client/generated/models/set_maintenance_mode_dto.py +83 -0
  298. immichpy/client/generated/models/shared_link_create_dto.py +142 -0
  299. immichpy/client/generated/models/shared_link_edit_dto.py +134 -0
  300. immichpy/client/generated/models/shared_link_response_dto.py +173 -0
  301. immichpy/client/generated/models/shared_link_type.py +34 -0
  302. immichpy/client/generated/models/shared_links_response.py +92 -0
  303. immichpy/client/generated/models/shared_links_update.py +85 -0
  304. immichpy/client/generated/models/sign_up_dto.py +90 -0
  305. immichpy/client/generated/models/smart_search_dto.py +245 -0
  306. immichpy/client/generated/models/source_type.py +35 -0
  307. immichpy/client/generated/models/stack_create_dto.py +86 -0
  308. immichpy/client/generated/models/stack_response_dto.py +100 -0
  309. immichpy/client/generated/models/stack_update_dto.py +83 -0
  310. immichpy/client/generated/models/statistics_search_dto.py +217 -0
  311. immichpy/client/generated/models/sync_ack_delete_dto.py +83 -0
  312. immichpy/client/generated/models/sync_ack_dto.py +84 -0
  313. immichpy/client/generated/models/sync_ack_set_dto.py +83 -0
  314. immichpy/client/generated/models/sync_album_delete_v1.py +82 -0
  315. immichpy/client/generated/models/sync_album_to_asset_delete_v1.py +85 -0
  316. immichpy/client/generated/models/sync_album_to_asset_v1.py +85 -0
  317. immichpy/client/generated/models/sync_album_user_delete_v1.py +85 -0
  318. immichpy/client/generated/models/sync_album_user_v1.py +91 -0
  319. immichpy/client/generated/models/sync_album_v1.py +122 -0
  320. immichpy/client/generated/models/sync_asset_delete_v1.py +82 -0
  321. immichpy/client/generated/models/sync_asset_exif_v1.py +296 -0
  322. immichpy/client/generated/models/sync_asset_face_delete_v1.py +82 -0
  323. immichpy/client/generated/models/sync_asset_face_v1.py +120 -0
  324. immichpy/client/generated/models/sync_asset_metadata_delete_v1.py +86 -0
  325. immichpy/client/generated/models/sync_asset_metadata_v1.py +91 -0
  326. immichpy/client/generated/models/sync_asset_v1.py +187 -0
  327. immichpy/client/generated/models/sync_auth_user_v1.py +154 -0
  328. immichpy/client/generated/models/sync_entity_type.py +79 -0
  329. immichpy/client/generated/models/sync_memory_asset_delete_v1.py +85 -0
  330. immichpy/client/generated/models/sync_memory_asset_v1.py +85 -0
  331. immichpy/client/generated/models/sync_memory_delete_v1.py +82 -0
  332. immichpy/client/generated/models/sync_memory_v1.py +143 -0
  333. immichpy/client/generated/models/sync_partner_delete_v1.py +88 -0
  334. immichpy/client/generated/models/sync_partner_v1.py +90 -0
  335. immichpy/client/generated/models/sync_person_delete_v1.py +82 -0
  336. immichpy/client/generated/models/sync_person_v1.py +131 -0
  337. immichpy/client/generated/models/sync_request_type.py +52 -0
  338. immichpy/client/generated/models/sync_stack_delete_v1.py +82 -0
  339. immichpy/client/generated/models/sync_stack_v1.py +101 -0
  340. immichpy/client/generated/models/sync_stream_dto.py +86 -0
  341. immichpy/client/generated/models/sync_user_delete_v1.py +82 -0
  342. immichpy/client/generated/models/sync_user_metadata_delete_v1.py +84 -0
  343. immichpy/client/generated/models/sync_user_metadata_v1.py +91 -0
  344. immichpy/client/generated/models/sync_user_v1.py +118 -0
  345. immichpy/client/generated/models/system_config_backups_dto.py +92 -0
  346. immichpy/client/generated/models/system_config_dto.py +324 -0
  347. immichpy/client/generated/models/system_config_f_fmpeg_dto.py +156 -0
  348. immichpy/client/generated/models/system_config_faces_dto.py +82 -0
  349. immichpy/client/generated/models/system_config_generated_fullsize_image_dto.py +92 -0
  350. immichpy/client/generated/models/system_config_generated_image_dto.py +92 -0
  351. immichpy/client/generated/models/system_config_image_dto.py +124 -0
  352. immichpy/client/generated/models/system_config_job_dto.py +194 -0
  353. immichpy/client/generated/models/system_config_library_dto.py +104 -0
  354. immichpy/client/generated/models/system_config_library_scan_dto.py +85 -0
  355. immichpy/client/generated/models/system_config_library_watch_dto.py +82 -0
  356. immichpy/client/generated/models/system_config_logging_dto.py +86 -0
  357. immichpy/client/generated/models/system_config_machine_learning_dto.py +151 -0
  358. immichpy/client/generated/models/system_config_map_dto.py +90 -0
  359. immichpy/client/generated/models/system_config_metadata_dto.py +94 -0
  360. immichpy/client/generated/models/system_config_new_version_check_dto.py +82 -0
  361. immichpy/client/generated/models/system_config_nightly_tasks_dto.py +103 -0
  362. immichpy/client/generated/models/system_config_notifications_dto.py +92 -0
  363. immichpy/client/generated/models/system_config_o_auth_dto.py +155 -0
  364. immichpy/client/generated/models/system_config_password_login_dto.py +82 -0
  365. immichpy/client/generated/models/system_config_reverse_geocoding_dto.py +82 -0
  366. immichpy/client/generated/models/system_config_server_dto.py +94 -0
  367. immichpy/client/generated/models/system_config_smtp_dto.py +100 -0
  368. immichpy/client/generated/models/system_config_smtp_transport_dto.py +107 -0
  369. immichpy/client/generated/models/system_config_storage_template_dto.py +94 -0
  370. immichpy/client/generated/models/system_config_template_emails_dto.py +94 -0
  371. immichpy/client/generated/models/system_config_template_storage_option_dto.py +109 -0
  372. immichpy/client/generated/models/system_config_templates_dto.py +94 -0
  373. immichpy/client/generated/models/system_config_theme_dto.py +82 -0
  374. immichpy/client/generated/models/system_config_trash_dto.py +86 -0
  375. immichpy/client/generated/models/system_config_user_dto.py +83 -0
  376. immichpy/client/generated/models/tag_bulk_assets_dto.py +86 -0
  377. immichpy/client/generated/models/tag_bulk_assets_response_dto.py +82 -0
  378. immichpy/client/generated/models/tag_create_dto.py +111 -0
  379. immichpy/client/generated/models/tag_response_dto.py +107 -0
  380. immichpy/client/generated/models/tag_update_dto.py +87 -0
  381. immichpy/client/generated/models/tag_upsert_dto.py +82 -0
  382. immichpy/client/generated/models/tags_response.py +92 -0
  383. immichpy/client/generated/models/tags_update.py +85 -0
  384. immichpy/client/generated/models/template_dto.py +82 -0
  385. immichpy/client/generated/models/template_response_dto.py +83 -0
  386. immichpy/client/generated/models/test_email_response_dto.py +82 -0
  387. immichpy/client/generated/models/time_bucket_asset_response_dto.py +195 -0
  388. immichpy/client/generated/models/time_buckets_response_dto.py +88 -0
  389. immichpy/client/generated/models/tone_mapping.py +36 -0
  390. immichpy/client/generated/models/transcode_hw_accel.py +37 -0
  391. immichpy/client/generated/models/transcode_policy.py +37 -0
  392. immichpy/client/generated/models/trash_response_dto.py +82 -0
  393. immichpy/client/generated/models/update_album_dto.py +106 -0
  394. immichpy/client/generated/models/update_album_user_dto.py +83 -0
  395. immichpy/client/generated/models/update_asset_dto.py +135 -0
  396. immichpy/client/generated/models/update_library_dto.py +95 -0
  397. immichpy/client/generated/models/usage_by_user_dto.py +117 -0
  398. immichpy/client/generated/models/user_admin_create_dto.py +136 -0
  399. immichpy/client/generated/models/user_admin_delete_dto.py +82 -0
  400. immichpy/client/generated/models/user_admin_response_dto.py +176 -0
  401. immichpy/client/generated/models/user_admin_update_dto.py +141 -0
  402. immichpy/client/generated/models/user_avatar_color.py +42 -0
  403. immichpy/client/generated/models/user_license.py +91 -0
  404. immichpy/client/generated/models/user_metadata_key.py +35 -0
  405. immichpy/client/generated/models/user_preferences_response_dto.py +188 -0
  406. immichpy/client/generated/models/user_preferences_update_dto.py +199 -0
  407. immichpy/client/generated/models/user_response_dto.py +105 -0
  408. immichpy/client/generated/models/user_status.py +35 -0
  409. immichpy/client/generated/models/user_update_me_dto.py +98 -0
  410. immichpy/client/generated/models/validate_access_token_response_dto.py +82 -0
  411. immichpy/client/generated/models/validate_library_dto.py +93 -0
  412. immichpy/client/generated/models/validate_library_import_path_response_dto.py +92 -0
  413. immichpy/client/generated/models/validate_library_response_dto.py +103 -0
  414. immichpy/client/generated/models/version_check_state_response_dto.py +98 -0
  415. immichpy/client/generated/models/video_codec.py +36 -0
  416. immichpy/client/generated/models/video_container.py +36 -0
  417. immichpy/client/generated/models/workflow_action_item_dto.py +89 -0
  418. immichpy/client/generated/models/workflow_action_response_dto.py +105 -0
  419. immichpy/client/generated/models/workflow_create_dto.py +132 -0
  420. immichpy/client/generated/models/workflow_filter_item_dto.py +89 -0
  421. immichpy/client/generated/models/workflow_filter_response_dto.py +105 -0
  422. immichpy/client/generated/models/workflow_response_dto.py +163 -0
  423. immichpy/client/generated/models/workflow_update_dto.py +128 -0
  424. immichpy/client/generated/py.typed +0 -0
  425. immichpy/client/generated/rest.py +199 -0
  426. immichpy/client/main.py +375 -0
  427. immichpy/client/types.py +65 -0
  428. immichpy/client/utils/download.py +249 -0
  429. immichpy/client/utils/upload.py +462 -0
  430. immichpy/client/wrapper/__init__.py +0 -0
  431. immichpy/client/wrapper/assets_api_wrapped.py +254 -0
  432. immichpy/client/wrapper/download_api_wrapped.py +118 -0
  433. immichpy/client/wrapper/users_api_wrapped.py +54 -0
  434. immichpy/py.typed +0 -0
  435. immichpy-1.6.5.dist-info/METADATA +67 -0
  436. immichpy-1.6.5.dist-info/RECORD +439 -0
  437. immichpy-1.6.5.dist-info/WHEEL +4 -0
  438. immichpy-1.6.5.dist-info/entry_points.txt +3 -0
  439. immichpy-1.6.5.dist-info/licenses/LICENSE +9 -0
@@ -0,0 +1,105 @@
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 __future__ import annotations
15
+ import pprint
16
+ import re # noqa: F401
17
+ import json
18
+
19
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
20
+ from typing import Any, ClassVar, Dict, List, Optional, Union
21
+ from typing import Set
22
+ from typing_extensions import Self
23
+
24
+
25
+ class WorkflowActionResponseDto(BaseModel):
26
+ """
27
+ WorkflowActionResponseDto
28
+ """ # noqa: E501
29
+
30
+ action_config: Optional[Dict[str, Any]] = Field(alias="actionConfig")
31
+ id: StrictStr
32
+ order: Union[StrictFloat, StrictInt]
33
+ plugin_action_id: StrictStr = Field(alias="pluginActionId")
34
+ workflow_id: StrictStr = Field(alias="workflowId")
35
+ __properties: ClassVar[List[str]] = [
36
+ "actionConfig",
37
+ "id",
38
+ "order",
39
+ "pluginActionId",
40
+ "workflowId",
41
+ ]
42
+
43
+ model_config = ConfigDict(
44
+ populate_by_name=True,
45
+ validate_assignment=True,
46
+ protected_namespaces=(),
47
+ )
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.model_dump(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
56
+ return json.dumps(self.to_dict())
57
+
58
+ @classmethod
59
+ def from_json(cls, json_str: str) -> Optional[Self]:
60
+ """Create an instance of WorkflowActionResponseDto from a JSON string"""
61
+ return cls.from_dict(json.loads(json_str))
62
+
63
+ def to_dict(self) -> Dict[str, Any]:
64
+ """Return the dictionary representation of the model using alias.
65
+
66
+ This has the following differences from calling pydantic's
67
+ `self.model_dump(by_alias=True)`:
68
+
69
+ * `None` is only added to the output dict for nullable fields that
70
+ were set at model initialization. Other fields with value `None`
71
+ are ignored.
72
+ """
73
+ excluded_fields: Set[str] = set([])
74
+
75
+ _dict = self.model_dump(
76
+ by_alias=True,
77
+ exclude=excluded_fields,
78
+ exclude_none=True,
79
+ )
80
+ # set to None if action_config (nullable) is None
81
+ # and model_fields_set contains the field
82
+ if self.action_config is None and "action_config" in self.model_fields_set:
83
+ _dict["actionConfig"] = None
84
+
85
+ return _dict
86
+
87
+ @classmethod
88
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
89
+ """Create an instance of WorkflowActionResponseDto from a dict"""
90
+ if obj is None:
91
+ return None
92
+
93
+ if not isinstance(obj, dict):
94
+ return cls.model_validate(obj)
95
+
96
+ _obj = cls.model_validate(
97
+ {
98
+ "actionConfig": obj.get("actionConfig"),
99
+ "id": obj.get("id"),
100
+ "order": obj.get("order"),
101
+ "pluginActionId": obj.get("pluginActionId"),
102
+ "workflowId": obj.get("workflowId"),
103
+ }
104
+ )
105
+ return _obj
@@ -0,0 +1,132 @@
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 __future__ import annotations
15
+ import pprint
16
+ import re # noqa: F401
17
+ import json
18
+
19
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
20
+ from typing import Any, ClassVar, Dict, List, Optional
21
+ from immichpy.client.generated.models.plugin_trigger_type import PluginTriggerType
22
+ from immichpy.client.generated.models.workflow_action_item_dto import (
23
+ WorkflowActionItemDto,
24
+ )
25
+ from immichpy.client.generated.models.workflow_filter_item_dto import (
26
+ WorkflowFilterItemDto,
27
+ )
28
+ from typing import Set
29
+ from typing_extensions import Self
30
+
31
+
32
+ class WorkflowCreateDto(BaseModel):
33
+ """
34
+ WorkflowCreateDto
35
+ """ # noqa: E501
36
+
37
+ actions: List[WorkflowActionItemDto]
38
+ description: Optional[StrictStr] = None
39
+ enabled: Optional[StrictBool] = None
40
+ filters: List[WorkflowFilterItemDto]
41
+ name: StrictStr
42
+ trigger_type: PluginTriggerType = Field(alias="triggerType")
43
+ __properties: ClassVar[List[str]] = [
44
+ "actions",
45
+ "description",
46
+ "enabled",
47
+ "filters",
48
+ "name",
49
+ "triggerType",
50
+ ]
51
+
52
+ model_config = ConfigDict(
53
+ populate_by_name=True,
54
+ validate_assignment=True,
55
+ protected_namespaces=(),
56
+ )
57
+
58
+ def to_str(self) -> str:
59
+ """Returns the string representation of the model using alias"""
60
+ return pprint.pformat(self.model_dump(by_alias=True))
61
+
62
+ def to_json(self) -> str:
63
+ """Returns the JSON representation of the model using alias"""
64
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
65
+ return json.dumps(self.to_dict())
66
+
67
+ @classmethod
68
+ def from_json(cls, json_str: str) -> Optional[Self]:
69
+ """Create an instance of WorkflowCreateDto from a JSON string"""
70
+ return cls.from_dict(json.loads(json_str))
71
+
72
+ def to_dict(self) -> Dict[str, Any]:
73
+ """Return the dictionary representation of the model using alias.
74
+
75
+ This has the following differences from calling pydantic's
76
+ `self.model_dump(by_alias=True)`:
77
+
78
+ * `None` is only added to the output dict for nullable fields that
79
+ were set at model initialization. Other fields with value `None`
80
+ are ignored.
81
+ """
82
+ excluded_fields: Set[str] = set([])
83
+
84
+ _dict = self.model_dump(
85
+ by_alias=True,
86
+ exclude=excluded_fields,
87
+ exclude_none=True,
88
+ )
89
+ # override the default output from pydantic by calling `to_dict()` of each item in actions (list)
90
+ _items = []
91
+ if self.actions:
92
+ for _item_actions in self.actions:
93
+ if _item_actions:
94
+ _items.append(_item_actions.to_dict())
95
+ _dict["actions"] = _items
96
+ # override the default output from pydantic by calling `to_dict()` of each item in filters (list)
97
+ _items = []
98
+ if self.filters:
99
+ for _item_filters in self.filters:
100
+ if _item_filters:
101
+ _items.append(_item_filters.to_dict())
102
+ _dict["filters"] = _items
103
+ return _dict
104
+
105
+ @classmethod
106
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
107
+ """Create an instance of WorkflowCreateDto from a dict"""
108
+ if obj is None:
109
+ return None
110
+
111
+ if not isinstance(obj, dict):
112
+ return cls.model_validate(obj)
113
+
114
+ _obj = cls.model_validate(
115
+ {
116
+ "actions": [
117
+ WorkflowActionItemDto.from_dict(_item) for _item in obj["actions"]
118
+ ]
119
+ if obj.get("actions") is not None
120
+ else None,
121
+ "description": obj.get("description"),
122
+ "enabled": obj.get("enabled"),
123
+ "filters": [
124
+ WorkflowFilterItemDto.from_dict(_item) for _item in obj["filters"]
125
+ ]
126
+ if obj.get("filters") is not None
127
+ else None,
128
+ "name": obj.get("name"),
129
+ "triggerType": obj.get("triggerType"),
130
+ }
131
+ )
132
+ return _obj
@@ -0,0 +1,89 @@
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 __future__ import annotations
15
+ import pprint
16
+ import re # noqa: F401
17
+ import json
18
+
19
+ from pydantic import BaseModel, ConfigDict, Field
20
+ from typing import Any, ClassVar, Dict, List, Optional
21
+ from uuid import UUID
22
+ from typing import Set
23
+ from typing_extensions import Self
24
+
25
+
26
+ class WorkflowFilterItemDto(BaseModel):
27
+ """
28
+ WorkflowFilterItemDto
29
+ """ # noqa: E501
30
+
31
+ filter_config: Optional[Dict[str, Any]] = Field(default=None, alias="filterConfig")
32
+ plugin_filter_id: UUID = Field(alias="pluginFilterId")
33
+ __properties: ClassVar[List[str]] = ["filterConfig", "pluginFilterId"]
34
+
35
+ model_config = ConfigDict(
36
+ populate_by_name=True,
37
+ validate_assignment=True,
38
+ protected_namespaces=(),
39
+ )
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.model_dump(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of WorkflowFilterItemDto from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([])
66
+
67
+ _dict = self.model_dump(
68
+ by_alias=True,
69
+ exclude=excluded_fields,
70
+ exclude_none=True,
71
+ )
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
76
+ """Create an instance of WorkflowFilterItemDto from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return cls.model_validate(obj)
82
+
83
+ _obj = cls.model_validate(
84
+ {
85
+ "filterConfig": obj.get("filterConfig"),
86
+ "pluginFilterId": obj.get("pluginFilterId"),
87
+ }
88
+ )
89
+ return _obj
@@ -0,0 +1,105 @@
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 __future__ import annotations
15
+ import pprint
16
+ import re # noqa: F401
17
+ import json
18
+
19
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
20
+ from typing import Any, ClassVar, Dict, List, Optional, Union
21
+ from typing import Set
22
+ from typing_extensions import Self
23
+
24
+
25
+ class WorkflowFilterResponseDto(BaseModel):
26
+ """
27
+ WorkflowFilterResponseDto
28
+ """ # noqa: E501
29
+
30
+ filter_config: Optional[Dict[str, Any]] = Field(alias="filterConfig")
31
+ id: StrictStr
32
+ order: Union[StrictFloat, StrictInt]
33
+ plugin_filter_id: StrictStr = Field(alias="pluginFilterId")
34
+ workflow_id: StrictStr = Field(alias="workflowId")
35
+ __properties: ClassVar[List[str]] = [
36
+ "filterConfig",
37
+ "id",
38
+ "order",
39
+ "pluginFilterId",
40
+ "workflowId",
41
+ ]
42
+
43
+ model_config = ConfigDict(
44
+ populate_by_name=True,
45
+ validate_assignment=True,
46
+ protected_namespaces=(),
47
+ )
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.model_dump(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
56
+ return json.dumps(self.to_dict())
57
+
58
+ @classmethod
59
+ def from_json(cls, json_str: str) -> Optional[Self]:
60
+ """Create an instance of WorkflowFilterResponseDto from a JSON string"""
61
+ return cls.from_dict(json.loads(json_str))
62
+
63
+ def to_dict(self) -> Dict[str, Any]:
64
+ """Return the dictionary representation of the model using alias.
65
+
66
+ This has the following differences from calling pydantic's
67
+ `self.model_dump(by_alias=True)`:
68
+
69
+ * `None` is only added to the output dict for nullable fields that
70
+ were set at model initialization. Other fields with value `None`
71
+ are ignored.
72
+ """
73
+ excluded_fields: Set[str] = set([])
74
+
75
+ _dict = self.model_dump(
76
+ by_alias=True,
77
+ exclude=excluded_fields,
78
+ exclude_none=True,
79
+ )
80
+ # set to None if filter_config (nullable) is None
81
+ # and model_fields_set contains the field
82
+ if self.filter_config is None and "filter_config" in self.model_fields_set:
83
+ _dict["filterConfig"] = None
84
+
85
+ return _dict
86
+
87
+ @classmethod
88
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
89
+ """Create an instance of WorkflowFilterResponseDto from a dict"""
90
+ if obj is None:
91
+ return None
92
+
93
+ if not isinstance(obj, dict):
94
+ return cls.model_validate(obj)
95
+
96
+ _obj = cls.model_validate(
97
+ {
98
+ "filterConfig": obj.get("filterConfig"),
99
+ "id": obj.get("id"),
100
+ "order": obj.get("order"),
101
+ "pluginFilterId": obj.get("pluginFilterId"),
102
+ "workflowId": obj.get("workflowId"),
103
+ }
104
+ )
105
+ return _obj
@@ -0,0 +1,163 @@
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 __future__ import annotations
15
+ import pprint
16
+ import re # noqa: F401
17
+ import json
18
+
19
+ from pydantic import (
20
+ BaseModel,
21
+ ConfigDict,
22
+ Field,
23
+ StrictBool,
24
+ StrictStr,
25
+ field_validator,
26
+ )
27
+ from typing import Any, ClassVar, Dict, List, Optional
28
+ from immichpy.client.generated.models.workflow_action_response_dto import (
29
+ WorkflowActionResponseDto,
30
+ )
31
+ from immichpy.client.generated.models.workflow_filter_response_dto import (
32
+ WorkflowFilterResponseDto,
33
+ )
34
+ from typing import Set
35
+ from typing_extensions import Self
36
+
37
+
38
+ class WorkflowResponseDto(BaseModel):
39
+ """
40
+ WorkflowResponseDto
41
+ """ # noqa: E501
42
+
43
+ actions: List[WorkflowActionResponseDto]
44
+ created_at: StrictStr = Field(alias="createdAt")
45
+ description: StrictStr
46
+ enabled: StrictBool
47
+ filters: List[WorkflowFilterResponseDto]
48
+ id: StrictStr
49
+ name: Optional[StrictStr]
50
+ owner_id: StrictStr = Field(alias="ownerId")
51
+ trigger_type: StrictStr = Field(alias="triggerType")
52
+ __properties: ClassVar[List[str]] = [
53
+ "actions",
54
+ "createdAt",
55
+ "description",
56
+ "enabled",
57
+ "filters",
58
+ "id",
59
+ "name",
60
+ "ownerId",
61
+ "triggerType",
62
+ ]
63
+
64
+ @field_validator("trigger_type")
65
+ def trigger_type_validate_enum(cls, value):
66
+ """Validates the enum"""
67
+ if value not in set(["AssetCreate", "PersonRecognized"]):
68
+ raise ValueError(
69
+ "must be one of enum values ('AssetCreate', 'PersonRecognized')"
70
+ )
71
+ return value
72
+
73
+ model_config = ConfigDict(
74
+ populate_by_name=True,
75
+ validate_assignment=True,
76
+ protected_namespaces=(),
77
+ )
78
+
79
+ def to_str(self) -> str:
80
+ """Returns the string representation of the model using alias"""
81
+ return pprint.pformat(self.model_dump(by_alias=True))
82
+
83
+ def to_json(self) -> str:
84
+ """Returns the JSON representation of the model using alias"""
85
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
86
+ return json.dumps(self.to_dict())
87
+
88
+ @classmethod
89
+ def from_json(cls, json_str: str) -> Optional[Self]:
90
+ """Create an instance of WorkflowResponseDto from a JSON string"""
91
+ return cls.from_dict(json.loads(json_str))
92
+
93
+ def to_dict(self) -> Dict[str, Any]:
94
+ """Return the dictionary representation of the model using alias.
95
+
96
+ This has the following differences from calling pydantic's
97
+ `self.model_dump(by_alias=True)`:
98
+
99
+ * `None` is only added to the output dict for nullable fields that
100
+ were set at model initialization. Other fields with value `None`
101
+ are ignored.
102
+ """
103
+ excluded_fields: Set[str] = set([])
104
+
105
+ _dict = self.model_dump(
106
+ by_alias=True,
107
+ exclude=excluded_fields,
108
+ exclude_none=True,
109
+ )
110
+ # override the default output from pydantic by calling `to_dict()` of each item in actions (list)
111
+ _items = []
112
+ if self.actions:
113
+ for _item_actions in self.actions:
114
+ if _item_actions:
115
+ _items.append(_item_actions.to_dict())
116
+ _dict["actions"] = _items
117
+ # override the default output from pydantic by calling `to_dict()` of each item in filters (list)
118
+ _items = []
119
+ if self.filters:
120
+ for _item_filters in self.filters:
121
+ if _item_filters:
122
+ _items.append(_item_filters.to_dict())
123
+ _dict["filters"] = _items
124
+ # set to None if name (nullable) is None
125
+ # and model_fields_set contains the field
126
+ if self.name is None and "name" in self.model_fields_set:
127
+ _dict["name"] = None
128
+
129
+ return _dict
130
+
131
+ @classmethod
132
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
133
+ """Create an instance of WorkflowResponseDto from a dict"""
134
+ if obj is None:
135
+ return None
136
+
137
+ if not isinstance(obj, dict):
138
+ return cls.model_validate(obj)
139
+
140
+ _obj = cls.model_validate(
141
+ {
142
+ "actions": [
143
+ WorkflowActionResponseDto.from_dict(_item)
144
+ for _item in obj["actions"]
145
+ ]
146
+ if obj.get("actions") is not None
147
+ else None,
148
+ "createdAt": obj.get("createdAt"),
149
+ "description": obj.get("description"),
150
+ "enabled": obj.get("enabled"),
151
+ "filters": [
152
+ WorkflowFilterResponseDto.from_dict(_item)
153
+ for _item in obj["filters"]
154
+ ]
155
+ if obj.get("filters") is not None
156
+ else None,
157
+ "id": obj.get("id"),
158
+ "name": obj.get("name"),
159
+ "ownerId": obj.get("ownerId"),
160
+ "triggerType": obj.get("triggerType"),
161
+ }
162
+ )
163
+ return _obj