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,2004 @@
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.create_library_dto import CreateLibraryDto
20
+ from immich.client.models.library_response_dto import LibraryResponseDto
21
+ from immich.client.models.library_stats_response_dto import LibraryStatsResponseDto
22
+ from immich.client.models.update_library_dto import UpdateLibraryDto
23
+ from immich.client.models.validate_library_dto import ValidateLibraryDto
24
+ from immich.client.models.validate_library_response_dto import (
25
+ ValidateLibraryResponseDto,
26
+ )
27
+
28
+ from immich.client.api_client import ApiClient, RequestSerialized
29
+ from immich.client.api_response import ApiResponse
30
+ from immich.client.rest import RESTResponseType
31
+
32
+
33
+ class LibrariesApi:
34
+ """NOTE: This class is auto generated by OpenAPI Generator
35
+ Ref: https://openapi-generator.tech
36
+
37
+ Do not edit the class manually.
38
+ """
39
+
40
+ def __init__(self, api_client=None) -> None:
41
+ if api_client is None:
42
+ api_client = ApiClient.get_default()
43
+ self.api_client = api_client
44
+
45
+ @validate_call
46
+ async def create_library(
47
+ self,
48
+ create_library_dto: CreateLibraryDto,
49
+ _request_timeout: Union[
50
+ None,
51
+ Annotated[StrictFloat, Field(gt=0)],
52
+ Tuple[
53
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
54
+ ],
55
+ ] = None,
56
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
57
+ _content_type: Optional[StrictStr] = None,
58
+ _headers: Optional[Dict[StrictStr, Any]] = None,
59
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
60
+ ) -> LibraryResponseDto:
61
+ """Create a library
62
+
63
+ Create a new external library.
64
+
65
+ :param create_library_dto: (required)
66
+ :type create_library_dto: CreateLibraryDto
67
+ :param _request_timeout: timeout setting for this request. If one
68
+ number provided, it will be total request
69
+ timeout. It can also be a pair (tuple) of
70
+ (connection, read) timeouts.
71
+ :type _request_timeout: int, tuple(int, int), optional
72
+ :param _request_auth: set to override the auth_settings for an a single
73
+ request; this effectively ignores the
74
+ authentication in the spec for a single request.
75
+ :type _request_auth: dict, optional
76
+ :param _content_type: force content-type for the request.
77
+ :type _content_type: str, Optional
78
+ :param _headers: set to override the headers for a single
79
+ request; this effectively ignores the headers
80
+ in the spec for a single request.
81
+ :type _headers: dict, optional
82
+ :param _host_index: set to override the host_index for a single
83
+ request; this effectively ignores the host_index
84
+ in the spec for a single request.
85
+ :type _host_index: int, optional
86
+ :return: Returns the result object.
87
+ """ # noqa: E501
88
+
89
+ _param = self._create_library_serialize(
90
+ create_library_dto=create_library_dto,
91
+ _request_auth=_request_auth,
92
+ _content_type=_content_type,
93
+ _headers=_headers,
94
+ _host_index=_host_index,
95
+ )
96
+
97
+ _response_types_map: Dict[str, Optional[str]] = {
98
+ "201": "LibraryResponseDto",
99
+ }
100
+ response_data = await self.api_client.call_api(
101
+ *_param, _request_timeout=_request_timeout
102
+ )
103
+ await response_data.read()
104
+ return self.api_client.response_deserialize(
105
+ response_data=response_data,
106
+ response_types_map=_response_types_map,
107
+ ).data
108
+
109
+ @validate_call
110
+ async def create_library_with_http_info(
111
+ self,
112
+ create_library_dto: CreateLibraryDto,
113
+ _request_timeout: Union[
114
+ None,
115
+ Annotated[StrictFloat, Field(gt=0)],
116
+ Tuple[
117
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
118
+ ],
119
+ ] = None,
120
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
121
+ _content_type: Optional[StrictStr] = None,
122
+ _headers: Optional[Dict[StrictStr, Any]] = None,
123
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
124
+ ) -> ApiResponse[LibraryResponseDto]:
125
+ """Create a library
126
+
127
+ Create a new external library.
128
+
129
+ :param create_library_dto: (required)
130
+ :type create_library_dto: CreateLibraryDto
131
+ :param _request_timeout: timeout setting for this request. If one
132
+ number provided, it will be total request
133
+ timeout. It can also be a pair (tuple) of
134
+ (connection, read) timeouts.
135
+ :type _request_timeout: int, tuple(int, int), optional
136
+ :param _request_auth: set to override the auth_settings for an a single
137
+ request; this effectively ignores the
138
+ authentication in the spec for a single request.
139
+ :type _request_auth: dict, optional
140
+ :param _content_type: force content-type for the request.
141
+ :type _content_type: str, Optional
142
+ :param _headers: set to override the headers for a single
143
+ request; this effectively ignores the headers
144
+ in the spec for a single request.
145
+ :type _headers: dict, optional
146
+ :param _host_index: set to override the host_index for a single
147
+ request; this effectively ignores the host_index
148
+ in the spec for a single request.
149
+ :type _host_index: int, optional
150
+ :return: Returns the result object.
151
+ """ # noqa: E501
152
+
153
+ _param = self._create_library_serialize(
154
+ create_library_dto=create_library_dto,
155
+ _request_auth=_request_auth,
156
+ _content_type=_content_type,
157
+ _headers=_headers,
158
+ _host_index=_host_index,
159
+ )
160
+
161
+ _response_types_map: Dict[str, Optional[str]] = {
162
+ "201": "LibraryResponseDto",
163
+ }
164
+ response_data = await self.api_client.call_api(
165
+ *_param, _request_timeout=_request_timeout
166
+ )
167
+ await response_data.read()
168
+ return self.api_client.response_deserialize(
169
+ response_data=response_data,
170
+ response_types_map=_response_types_map,
171
+ )
172
+
173
+ @validate_call
174
+ async def create_library_without_preload_content(
175
+ self,
176
+ create_library_dto: CreateLibraryDto,
177
+ _request_timeout: Union[
178
+ None,
179
+ Annotated[StrictFloat, Field(gt=0)],
180
+ Tuple[
181
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
182
+ ],
183
+ ] = None,
184
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
185
+ _content_type: Optional[StrictStr] = None,
186
+ _headers: Optional[Dict[StrictStr, Any]] = None,
187
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
188
+ ) -> RESTResponseType:
189
+ """Create a library
190
+
191
+ Create a new external library.
192
+
193
+ :param create_library_dto: (required)
194
+ :type create_library_dto: CreateLibraryDto
195
+ :param _request_timeout: timeout setting for this request. If one
196
+ number provided, it will be total request
197
+ timeout. It can also be a pair (tuple) of
198
+ (connection, read) timeouts.
199
+ :type _request_timeout: int, tuple(int, int), optional
200
+ :param _request_auth: set to override the auth_settings for an a single
201
+ request; this effectively ignores the
202
+ authentication in the spec for a single request.
203
+ :type _request_auth: dict, optional
204
+ :param _content_type: force content-type for the request.
205
+ :type _content_type: str, Optional
206
+ :param _headers: set to override the headers for a single
207
+ request; this effectively ignores the headers
208
+ in the spec for a single request.
209
+ :type _headers: dict, optional
210
+ :param _host_index: set to override the host_index for a single
211
+ request; this effectively ignores the host_index
212
+ in the spec for a single request.
213
+ :type _host_index: int, optional
214
+ :return: Returns the result object.
215
+ """ # noqa: E501
216
+
217
+ _param = self._create_library_serialize(
218
+ create_library_dto=create_library_dto,
219
+ _request_auth=_request_auth,
220
+ _content_type=_content_type,
221
+ _headers=_headers,
222
+ _host_index=_host_index,
223
+ )
224
+
225
+ _response_types_map: Dict[str, Optional[str]] = {
226
+ "201": "LibraryResponseDto",
227
+ }
228
+ response_data = await self.api_client.call_api(
229
+ *_param, _request_timeout=_request_timeout
230
+ )
231
+ return response_data.response
232
+
233
+ def _create_library_serialize(
234
+ self,
235
+ create_library_dto,
236
+ _request_auth,
237
+ _content_type,
238
+ _headers,
239
+ _host_index,
240
+ ) -> RequestSerialized:
241
+ _host = None
242
+
243
+ _collection_formats: Dict[str, str] = {}
244
+
245
+ _path_params: Dict[str, str] = {}
246
+ _query_params: List[Tuple[str, str]] = []
247
+ _header_params: Dict[str, Optional[str]] = _headers or {}
248
+ _form_params: List[Tuple[str, str]] = []
249
+ _files: Dict[
250
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
251
+ ] = {}
252
+ _body_params: Optional[bytes] = None
253
+
254
+ # process the path parameters
255
+ # process the query parameters
256
+ # process the header parameters
257
+ # process the form parameters
258
+ # process the body parameter
259
+ if create_library_dto is not None:
260
+ _body_params = create_library_dto
261
+
262
+ # set the HTTP header `Accept`
263
+ if "Accept" not in _header_params:
264
+ _header_params["Accept"] = self.api_client.select_header_accept(
265
+ ["application/json"]
266
+ )
267
+
268
+ # set the HTTP header `Content-Type`
269
+ if _content_type:
270
+ _header_params["Content-Type"] = _content_type
271
+ else:
272
+ _default_content_type = self.api_client.select_header_content_type(
273
+ ["application/json"]
274
+ )
275
+ if _default_content_type is not None:
276
+ _header_params["Content-Type"] = _default_content_type
277
+
278
+ # authentication setting
279
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
280
+
281
+ return self.api_client.param_serialize(
282
+ method="POST",
283
+ resource_path="/libraries",
284
+ path_params=_path_params,
285
+ query_params=_query_params,
286
+ header_params=_header_params,
287
+ body=_body_params,
288
+ post_params=_form_params,
289
+ files=_files,
290
+ auth_settings=_auth_settings,
291
+ collection_formats=_collection_formats,
292
+ _host=_host,
293
+ _request_auth=_request_auth,
294
+ )
295
+
296
+ @validate_call
297
+ async def delete_library(
298
+ self,
299
+ id: UUID,
300
+ _request_timeout: Union[
301
+ None,
302
+ Annotated[StrictFloat, Field(gt=0)],
303
+ Tuple[
304
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
305
+ ],
306
+ ] = None,
307
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
308
+ _content_type: Optional[StrictStr] = None,
309
+ _headers: Optional[Dict[StrictStr, Any]] = None,
310
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
311
+ ) -> None:
312
+ """Delete a library
313
+
314
+ Delete an external library by its ID.
315
+
316
+ :param id: (required)
317
+ :type id: UUID
318
+ :param _request_timeout: timeout setting for this request. If one
319
+ number provided, it will be total request
320
+ timeout. It can also be a pair (tuple) of
321
+ (connection, read) timeouts.
322
+ :type _request_timeout: int, tuple(int, int), optional
323
+ :param _request_auth: set to override the auth_settings for an a single
324
+ request; this effectively ignores the
325
+ authentication in the spec for a single request.
326
+ :type _request_auth: dict, optional
327
+ :param _content_type: force content-type for the request.
328
+ :type _content_type: str, Optional
329
+ :param _headers: set to override the headers for a single
330
+ request; this effectively ignores the headers
331
+ in the spec for a single request.
332
+ :type _headers: dict, optional
333
+ :param _host_index: set to override the host_index for a single
334
+ request; this effectively ignores the host_index
335
+ in the spec for a single request.
336
+ :type _host_index: int, optional
337
+ :return: Returns the result object.
338
+ """ # noqa: E501
339
+
340
+ _param = self._delete_library_serialize(
341
+ id=id,
342
+ _request_auth=_request_auth,
343
+ _content_type=_content_type,
344
+ _headers=_headers,
345
+ _host_index=_host_index,
346
+ )
347
+
348
+ _response_types_map: Dict[str, Optional[str]] = {
349
+ "204": None,
350
+ }
351
+ response_data = await self.api_client.call_api(
352
+ *_param, _request_timeout=_request_timeout
353
+ )
354
+ await response_data.read()
355
+ return self.api_client.response_deserialize(
356
+ response_data=response_data,
357
+ response_types_map=_response_types_map,
358
+ ).data
359
+
360
+ @validate_call
361
+ async def delete_library_with_http_info(
362
+ self,
363
+ id: UUID,
364
+ _request_timeout: Union[
365
+ None,
366
+ Annotated[StrictFloat, Field(gt=0)],
367
+ Tuple[
368
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
369
+ ],
370
+ ] = None,
371
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
372
+ _content_type: Optional[StrictStr] = None,
373
+ _headers: Optional[Dict[StrictStr, Any]] = None,
374
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
375
+ ) -> ApiResponse[None]:
376
+ """Delete a library
377
+
378
+ Delete an external library by its ID.
379
+
380
+ :param id: (required)
381
+ :type id: UUID
382
+ :param _request_timeout: timeout setting for this request. If one
383
+ number provided, it will be total request
384
+ timeout. It can also be a pair (tuple) of
385
+ (connection, read) timeouts.
386
+ :type _request_timeout: int, tuple(int, int), optional
387
+ :param _request_auth: set to override the auth_settings for an a single
388
+ request; this effectively ignores the
389
+ authentication in the spec for a single request.
390
+ :type _request_auth: dict, optional
391
+ :param _content_type: force content-type for the request.
392
+ :type _content_type: str, Optional
393
+ :param _headers: set to override the headers for a single
394
+ request; this effectively ignores the headers
395
+ in the spec for a single request.
396
+ :type _headers: dict, optional
397
+ :param _host_index: set to override the host_index for a single
398
+ request; this effectively ignores the host_index
399
+ in the spec for a single request.
400
+ :type _host_index: int, optional
401
+ :return: Returns the result object.
402
+ """ # noqa: E501
403
+
404
+ _param = self._delete_library_serialize(
405
+ id=id,
406
+ _request_auth=_request_auth,
407
+ _content_type=_content_type,
408
+ _headers=_headers,
409
+ _host_index=_host_index,
410
+ )
411
+
412
+ _response_types_map: Dict[str, Optional[str]] = {
413
+ "204": None,
414
+ }
415
+ response_data = await self.api_client.call_api(
416
+ *_param, _request_timeout=_request_timeout
417
+ )
418
+ await response_data.read()
419
+ return self.api_client.response_deserialize(
420
+ response_data=response_data,
421
+ response_types_map=_response_types_map,
422
+ )
423
+
424
+ @validate_call
425
+ async def delete_library_without_preload_content(
426
+ self,
427
+ id: UUID,
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 library
441
+
442
+ Delete an external library by its ID.
443
+
444
+ :param id: (required)
445
+ :type id: UUID
446
+ :param _request_timeout: timeout setting for this request. If one
447
+ number provided, it will be total request
448
+ timeout. It can also be a pair (tuple) of
449
+ (connection, read) timeouts.
450
+ :type _request_timeout: int, tuple(int, int), optional
451
+ :param _request_auth: set to override the auth_settings for an a single
452
+ request; this effectively ignores the
453
+ authentication in the spec for a single request.
454
+ :type _request_auth: dict, optional
455
+ :param _content_type: force content-type for the request.
456
+ :type _content_type: str, Optional
457
+ :param _headers: set to override the headers for a single
458
+ request; this effectively ignores the headers
459
+ in the spec for a single request.
460
+ :type _headers: dict, optional
461
+ :param _host_index: set to override the host_index for a single
462
+ request; this effectively ignores the host_index
463
+ in the spec for a single request.
464
+ :type _host_index: int, optional
465
+ :return: Returns the result object.
466
+ """ # noqa: E501
467
+
468
+ _param = self._delete_library_serialize(
469
+ id=id,
470
+ _request_auth=_request_auth,
471
+ _content_type=_content_type,
472
+ _headers=_headers,
473
+ _host_index=_host_index,
474
+ )
475
+
476
+ _response_types_map: Dict[str, Optional[str]] = {
477
+ "204": None,
478
+ }
479
+ response_data = await self.api_client.call_api(
480
+ *_param, _request_timeout=_request_timeout
481
+ )
482
+ return response_data.response
483
+
484
+ def _delete_library_serialize(
485
+ self,
486
+ id,
487
+ _request_auth,
488
+ _content_type,
489
+ _headers,
490
+ _host_index,
491
+ ) -> RequestSerialized:
492
+ _host = None
493
+
494
+ _collection_formats: Dict[str, str] = {}
495
+
496
+ _path_params: Dict[str, str] = {}
497
+ _query_params: List[Tuple[str, str]] = []
498
+ _header_params: Dict[str, Optional[str]] = _headers or {}
499
+ _form_params: List[Tuple[str, str]] = []
500
+ _files: Dict[
501
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
502
+ ] = {}
503
+ _body_params: Optional[bytes] = None
504
+
505
+ # process the path parameters
506
+ if id is not None:
507
+ _path_params["id"] = id
508
+ # process the query parameters
509
+ # process the header parameters
510
+ # process the form parameters
511
+ # process the body parameter
512
+
513
+ # authentication setting
514
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
515
+
516
+ return self.api_client.param_serialize(
517
+ method="DELETE",
518
+ resource_path="/libraries/{id}",
519
+ path_params=_path_params,
520
+ query_params=_query_params,
521
+ header_params=_header_params,
522
+ body=_body_params,
523
+ post_params=_form_params,
524
+ files=_files,
525
+ auth_settings=_auth_settings,
526
+ collection_formats=_collection_formats,
527
+ _host=_host,
528
+ _request_auth=_request_auth,
529
+ )
530
+
531
+ @validate_call
532
+ async def get_all_libraries(
533
+ self,
534
+ _request_timeout: Union[
535
+ None,
536
+ Annotated[StrictFloat, Field(gt=0)],
537
+ Tuple[
538
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
539
+ ],
540
+ ] = None,
541
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
542
+ _content_type: Optional[StrictStr] = None,
543
+ _headers: Optional[Dict[StrictStr, Any]] = None,
544
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
545
+ ) -> List[LibraryResponseDto]:
546
+ """Retrieve libraries
547
+
548
+ Retrieve a list of external libraries.
549
+
550
+ :param _request_timeout: timeout setting for this request. If one
551
+ number provided, it will be total request
552
+ timeout. It can also be a pair (tuple) of
553
+ (connection, read) timeouts.
554
+ :type _request_timeout: int, tuple(int, int), optional
555
+ :param _request_auth: set to override the auth_settings for an a single
556
+ request; this effectively ignores the
557
+ authentication in the spec for a single request.
558
+ :type _request_auth: dict, optional
559
+ :param _content_type: force content-type for the request.
560
+ :type _content_type: str, Optional
561
+ :param _headers: set to override the headers for a single
562
+ request; this effectively ignores the headers
563
+ in the spec for a single request.
564
+ :type _headers: dict, optional
565
+ :param _host_index: set to override the host_index for a single
566
+ request; this effectively ignores the host_index
567
+ in the spec for a single request.
568
+ :type _host_index: int, optional
569
+ :return: Returns the result object.
570
+ """ # noqa: E501
571
+
572
+ _param = self._get_all_libraries_serialize(
573
+ _request_auth=_request_auth,
574
+ _content_type=_content_type,
575
+ _headers=_headers,
576
+ _host_index=_host_index,
577
+ )
578
+
579
+ _response_types_map: Dict[str, Optional[str]] = {
580
+ "200": "List[LibraryResponseDto]",
581
+ }
582
+ response_data = await self.api_client.call_api(
583
+ *_param, _request_timeout=_request_timeout
584
+ )
585
+ await response_data.read()
586
+ return self.api_client.response_deserialize(
587
+ response_data=response_data,
588
+ response_types_map=_response_types_map,
589
+ ).data
590
+
591
+ @validate_call
592
+ async def get_all_libraries_with_http_info(
593
+ self,
594
+ _request_timeout: Union[
595
+ None,
596
+ Annotated[StrictFloat, Field(gt=0)],
597
+ Tuple[
598
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
599
+ ],
600
+ ] = None,
601
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
602
+ _content_type: Optional[StrictStr] = None,
603
+ _headers: Optional[Dict[StrictStr, Any]] = None,
604
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
605
+ ) -> ApiResponse[List[LibraryResponseDto]]:
606
+ """Retrieve libraries
607
+
608
+ Retrieve a list of external libraries.
609
+
610
+ :param _request_timeout: timeout setting for this request. If one
611
+ number provided, it will be total request
612
+ timeout. It can also be a pair (tuple) of
613
+ (connection, read) timeouts.
614
+ :type _request_timeout: int, tuple(int, int), optional
615
+ :param _request_auth: set to override the auth_settings for an a single
616
+ request; this effectively ignores the
617
+ authentication in the spec for a single request.
618
+ :type _request_auth: dict, optional
619
+ :param _content_type: force content-type for the request.
620
+ :type _content_type: str, Optional
621
+ :param _headers: set to override the headers for a single
622
+ request; this effectively ignores the headers
623
+ in the spec for a single request.
624
+ :type _headers: dict, optional
625
+ :param _host_index: set to override the host_index for a single
626
+ request; this effectively ignores the host_index
627
+ in the spec for a single request.
628
+ :type _host_index: int, optional
629
+ :return: Returns the result object.
630
+ """ # noqa: E501
631
+
632
+ _param = self._get_all_libraries_serialize(
633
+ _request_auth=_request_auth,
634
+ _content_type=_content_type,
635
+ _headers=_headers,
636
+ _host_index=_host_index,
637
+ )
638
+
639
+ _response_types_map: Dict[str, Optional[str]] = {
640
+ "200": "List[LibraryResponseDto]",
641
+ }
642
+ response_data = await self.api_client.call_api(
643
+ *_param, _request_timeout=_request_timeout
644
+ )
645
+ await response_data.read()
646
+ return self.api_client.response_deserialize(
647
+ response_data=response_data,
648
+ response_types_map=_response_types_map,
649
+ )
650
+
651
+ @validate_call
652
+ async def get_all_libraries_without_preload_content(
653
+ self,
654
+ _request_timeout: Union[
655
+ None,
656
+ Annotated[StrictFloat, Field(gt=0)],
657
+ Tuple[
658
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
659
+ ],
660
+ ] = None,
661
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
662
+ _content_type: Optional[StrictStr] = None,
663
+ _headers: Optional[Dict[StrictStr, Any]] = None,
664
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
665
+ ) -> RESTResponseType:
666
+ """Retrieve libraries
667
+
668
+ Retrieve a list of external libraries.
669
+
670
+ :param _request_timeout: timeout setting for this request. If one
671
+ number provided, it will be total request
672
+ timeout. It can also be a pair (tuple) of
673
+ (connection, read) timeouts.
674
+ :type _request_timeout: int, tuple(int, int), optional
675
+ :param _request_auth: set to override the auth_settings for an a single
676
+ request; this effectively ignores the
677
+ authentication in the spec for a single request.
678
+ :type _request_auth: dict, optional
679
+ :param _content_type: force content-type for the request.
680
+ :type _content_type: str, Optional
681
+ :param _headers: set to override the headers for a single
682
+ request; this effectively ignores the headers
683
+ in the spec for a single request.
684
+ :type _headers: dict, optional
685
+ :param _host_index: set to override the host_index for a single
686
+ request; this effectively ignores the host_index
687
+ in the spec for a single request.
688
+ :type _host_index: int, optional
689
+ :return: Returns the result object.
690
+ """ # noqa: E501
691
+
692
+ _param = self._get_all_libraries_serialize(
693
+ _request_auth=_request_auth,
694
+ _content_type=_content_type,
695
+ _headers=_headers,
696
+ _host_index=_host_index,
697
+ )
698
+
699
+ _response_types_map: Dict[str, Optional[str]] = {
700
+ "200": "List[LibraryResponseDto]",
701
+ }
702
+ response_data = await self.api_client.call_api(
703
+ *_param, _request_timeout=_request_timeout
704
+ )
705
+ return response_data.response
706
+
707
+ def _get_all_libraries_serialize(
708
+ self,
709
+ _request_auth,
710
+ _content_type,
711
+ _headers,
712
+ _host_index,
713
+ ) -> RequestSerialized:
714
+ _host = None
715
+
716
+ _collection_formats: Dict[str, str] = {}
717
+
718
+ _path_params: Dict[str, str] = {}
719
+ _query_params: List[Tuple[str, str]] = []
720
+ _header_params: Dict[str, Optional[str]] = _headers or {}
721
+ _form_params: List[Tuple[str, str]] = []
722
+ _files: Dict[
723
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
724
+ ] = {}
725
+ _body_params: Optional[bytes] = None
726
+
727
+ # process the path parameters
728
+ # process the query parameters
729
+ # process the header parameters
730
+ # process the form parameters
731
+ # process the body parameter
732
+
733
+ # set the HTTP header `Accept`
734
+ if "Accept" not in _header_params:
735
+ _header_params["Accept"] = self.api_client.select_header_accept(
736
+ ["application/json"]
737
+ )
738
+
739
+ # authentication setting
740
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
741
+
742
+ return self.api_client.param_serialize(
743
+ method="GET",
744
+ resource_path="/libraries",
745
+ path_params=_path_params,
746
+ query_params=_query_params,
747
+ header_params=_header_params,
748
+ body=_body_params,
749
+ post_params=_form_params,
750
+ files=_files,
751
+ auth_settings=_auth_settings,
752
+ collection_formats=_collection_formats,
753
+ _host=_host,
754
+ _request_auth=_request_auth,
755
+ )
756
+
757
+ @validate_call
758
+ async def get_library(
759
+ self,
760
+ id: UUID,
761
+ _request_timeout: Union[
762
+ None,
763
+ Annotated[StrictFloat, Field(gt=0)],
764
+ Tuple[
765
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
766
+ ],
767
+ ] = None,
768
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
769
+ _content_type: Optional[StrictStr] = None,
770
+ _headers: Optional[Dict[StrictStr, Any]] = None,
771
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
772
+ ) -> LibraryResponseDto:
773
+ """Retrieve a library
774
+
775
+ Retrieve an external library by its ID.
776
+
777
+ :param id: (required)
778
+ :type id: UUID
779
+ :param _request_timeout: timeout setting for this request. If one
780
+ number provided, it will be total request
781
+ timeout. It can also be a pair (tuple) of
782
+ (connection, read) timeouts.
783
+ :type _request_timeout: int, tuple(int, int), optional
784
+ :param _request_auth: set to override the auth_settings for an a single
785
+ request; this effectively ignores the
786
+ authentication in the spec for a single request.
787
+ :type _request_auth: dict, optional
788
+ :param _content_type: force content-type for the request.
789
+ :type _content_type: str, Optional
790
+ :param _headers: set to override the headers for a single
791
+ request; this effectively ignores the headers
792
+ in the spec for a single request.
793
+ :type _headers: dict, optional
794
+ :param _host_index: set to override the host_index for a single
795
+ request; this effectively ignores the host_index
796
+ in the spec for a single request.
797
+ :type _host_index: int, optional
798
+ :return: Returns the result object.
799
+ """ # noqa: E501
800
+
801
+ _param = self._get_library_serialize(
802
+ id=id,
803
+ _request_auth=_request_auth,
804
+ _content_type=_content_type,
805
+ _headers=_headers,
806
+ _host_index=_host_index,
807
+ )
808
+
809
+ _response_types_map: Dict[str, Optional[str]] = {
810
+ "200": "LibraryResponseDto",
811
+ }
812
+ response_data = await self.api_client.call_api(
813
+ *_param, _request_timeout=_request_timeout
814
+ )
815
+ await response_data.read()
816
+ return self.api_client.response_deserialize(
817
+ response_data=response_data,
818
+ response_types_map=_response_types_map,
819
+ ).data
820
+
821
+ @validate_call
822
+ async def get_library_with_http_info(
823
+ self,
824
+ id: UUID,
825
+ _request_timeout: Union[
826
+ None,
827
+ Annotated[StrictFloat, Field(gt=0)],
828
+ Tuple[
829
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
830
+ ],
831
+ ] = None,
832
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
833
+ _content_type: Optional[StrictStr] = None,
834
+ _headers: Optional[Dict[StrictStr, Any]] = None,
835
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
836
+ ) -> ApiResponse[LibraryResponseDto]:
837
+ """Retrieve a library
838
+
839
+ Retrieve an external library by its ID.
840
+
841
+ :param id: (required)
842
+ :type id: UUID
843
+ :param _request_timeout: timeout setting for this request. If one
844
+ number provided, it will be total request
845
+ timeout. It can also be a pair (tuple) of
846
+ (connection, read) timeouts.
847
+ :type _request_timeout: int, tuple(int, int), optional
848
+ :param _request_auth: set to override the auth_settings for an a single
849
+ request; this effectively ignores the
850
+ authentication in the spec for a single request.
851
+ :type _request_auth: dict, optional
852
+ :param _content_type: force content-type for the request.
853
+ :type _content_type: str, Optional
854
+ :param _headers: set to override the headers for a single
855
+ request; this effectively ignores the headers
856
+ in the spec for a single request.
857
+ :type _headers: dict, optional
858
+ :param _host_index: set to override the host_index for a single
859
+ request; this effectively ignores the host_index
860
+ in the spec for a single request.
861
+ :type _host_index: int, optional
862
+ :return: Returns the result object.
863
+ """ # noqa: E501
864
+
865
+ _param = self._get_library_serialize(
866
+ id=id,
867
+ _request_auth=_request_auth,
868
+ _content_type=_content_type,
869
+ _headers=_headers,
870
+ _host_index=_host_index,
871
+ )
872
+
873
+ _response_types_map: Dict[str, Optional[str]] = {
874
+ "200": "LibraryResponseDto",
875
+ }
876
+ response_data = await self.api_client.call_api(
877
+ *_param, _request_timeout=_request_timeout
878
+ )
879
+ await response_data.read()
880
+ return self.api_client.response_deserialize(
881
+ response_data=response_data,
882
+ response_types_map=_response_types_map,
883
+ )
884
+
885
+ @validate_call
886
+ async def get_library_without_preload_content(
887
+ self,
888
+ id: UUID,
889
+ _request_timeout: Union[
890
+ None,
891
+ Annotated[StrictFloat, Field(gt=0)],
892
+ Tuple[
893
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
894
+ ],
895
+ ] = None,
896
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
897
+ _content_type: Optional[StrictStr] = None,
898
+ _headers: Optional[Dict[StrictStr, Any]] = None,
899
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
900
+ ) -> RESTResponseType:
901
+ """Retrieve a library
902
+
903
+ Retrieve an external library by its ID.
904
+
905
+ :param id: (required)
906
+ :type id: UUID
907
+ :param _request_timeout: timeout setting for this request. If one
908
+ number provided, it will be total request
909
+ timeout. It can also be a pair (tuple) of
910
+ (connection, read) timeouts.
911
+ :type _request_timeout: int, tuple(int, int), optional
912
+ :param _request_auth: set to override the auth_settings for an a single
913
+ request; this effectively ignores the
914
+ authentication in the spec for a single request.
915
+ :type _request_auth: dict, optional
916
+ :param _content_type: force content-type for the request.
917
+ :type _content_type: str, Optional
918
+ :param _headers: set to override the headers for a single
919
+ request; this effectively ignores the headers
920
+ in the spec for a single request.
921
+ :type _headers: dict, optional
922
+ :param _host_index: set to override the host_index for a single
923
+ request; this effectively ignores the host_index
924
+ in the spec for a single request.
925
+ :type _host_index: int, optional
926
+ :return: Returns the result object.
927
+ """ # noqa: E501
928
+
929
+ _param = self._get_library_serialize(
930
+ id=id,
931
+ _request_auth=_request_auth,
932
+ _content_type=_content_type,
933
+ _headers=_headers,
934
+ _host_index=_host_index,
935
+ )
936
+
937
+ _response_types_map: Dict[str, Optional[str]] = {
938
+ "200": "LibraryResponseDto",
939
+ }
940
+ response_data = await self.api_client.call_api(
941
+ *_param, _request_timeout=_request_timeout
942
+ )
943
+ return response_data.response
944
+
945
+ def _get_library_serialize(
946
+ self,
947
+ id,
948
+ _request_auth,
949
+ _content_type,
950
+ _headers,
951
+ _host_index,
952
+ ) -> RequestSerialized:
953
+ _host = None
954
+
955
+ _collection_formats: Dict[str, str] = {}
956
+
957
+ _path_params: Dict[str, str] = {}
958
+ _query_params: List[Tuple[str, str]] = []
959
+ _header_params: Dict[str, Optional[str]] = _headers or {}
960
+ _form_params: List[Tuple[str, str]] = []
961
+ _files: Dict[
962
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
963
+ ] = {}
964
+ _body_params: Optional[bytes] = None
965
+
966
+ # process the path parameters
967
+ if id is not None:
968
+ _path_params["id"] = id
969
+ # process the query parameters
970
+ # process the header parameters
971
+ # process the form parameters
972
+ # process the body parameter
973
+
974
+ # set the HTTP header `Accept`
975
+ if "Accept" not in _header_params:
976
+ _header_params["Accept"] = self.api_client.select_header_accept(
977
+ ["application/json"]
978
+ )
979
+
980
+ # authentication setting
981
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
982
+
983
+ return self.api_client.param_serialize(
984
+ method="GET",
985
+ resource_path="/libraries/{id}",
986
+ path_params=_path_params,
987
+ query_params=_query_params,
988
+ header_params=_header_params,
989
+ body=_body_params,
990
+ post_params=_form_params,
991
+ files=_files,
992
+ auth_settings=_auth_settings,
993
+ collection_formats=_collection_formats,
994
+ _host=_host,
995
+ _request_auth=_request_auth,
996
+ )
997
+
998
+ @validate_call
999
+ async def get_library_statistics(
1000
+ self,
1001
+ id: UUID,
1002
+ _request_timeout: Union[
1003
+ None,
1004
+ Annotated[StrictFloat, Field(gt=0)],
1005
+ Tuple[
1006
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1007
+ ],
1008
+ ] = None,
1009
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1010
+ _content_type: Optional[StrictStr] = None,
1011
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1012
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1013
+ ) -> LibraryStatsResponseDto:
1014
+ """Retrieve library statistics
1015
+
1016
+ Retrieve statistics for a specific external library, including number of videos, images, and storage usage.
1017
+
1018
+ :param id: (required)
1019
+ :type id: UUID
1020
+ :param _request_timeout: timeout setting for this request. If one
1021
+ number provided, it will be total request
1022
+ timeout. It can also be a pair (tuple) of
1023
+ (connection, read) timeouts.
1024
+ :type _request_timeout: int, tuple(int, int), optional
1025
+ :param _request_auth: set to override the auth_settings for an a single
1026
+ request; this effectively ignores the
1027
+ authentication in the spec for a single request.
1028
+ :type _request_auth: dict, optional
1029
+ :param _content_type: force content-type for the request.
1030
+ :type _content_type: str, Optional
1031
+ :param _headers: set to override the headers for a single
1032
+ request; this effectively ignores the headers
1033
+ in the spec for a single request.
1034
+ :type _headers: dict, optional
1035
+ :param _host_index: set to override the host_index for a single
1036
+ request; this effectively ignores the host_index
1037
+ in the spec for a single request.
1038
+ :type _host_index: int, optional
1039
+ :return: Returns the result object.
1040
+ """ # noqa: E501
1041
+
1042
+ _param = self._get_library_statistics_serialize(
1043
+ id=id,
1044
+ _request_auth=_request_auth,
1045
+ _content_type=_content_type,
1046
+ _headers=_headers,
1047
+ _host_index=_host_index,
1048
+ )
1049
+
1050
+ _response_types_map: Dict[str, Optional[str]] = {
1051
+ "200": "LibraryStatsResponseDto",
1052
+ }
1053
+ response_data = await self.api_client.call_api(
1054
+ *_param, _request_timeout=_request_timeout
1055
+ )
1056
+ await response_data.read()
1057
+ return self.api_client.response_deserialize(
1058
+ response_data=response_data,
1059
+ response_types_map=_response_types_map,
1060
+ ).data
1061
+
1062
+ @validate_call
1063
+ async def get_library_statistics_with_http_info(
1064
+ self,
1065
+ id: UUID,
1066
+ _request_timeout: Union[
1067
+ None,
1068
+ Annotated[StrictFloat, Field(gt=0)],
1069
+ Tuple[
1070
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1071
+ ],
1072
+ ] = None,
1073
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1074
+ _content_type: Optional[StrictStr] = None,
1075
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1076
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1077
+ ) -> ApiResponse[LibraryStatsResponseDto]:
1078
+ """Retrieve library statistics
1079
+
1080
+ Retrieve statistics for a specific external library, including number of videos, images, and storage usage.
1081
+
1082
+ :param id: (required)
1083
+ :type id: UUID
1084
+ :param _request_timeout: timeout setting for this request. If one
1085
+ number provided, it will be total request
1086
+ timeout. It can also be a pair (tuple) of
1087
+ (connection, read) timeouts.
1088
+ :type _request_timeout: int, tuple(int, int), optional
1089
+ :param _request_auth: set to override the auth_settings for an a single
1090
+ request; this effectively ignores the
1091
+ authentication in the spec for a single request.
1092
+ :type _request_auth: dict, optional
1093
+ :param _content_type: force content-type for the request.
1094
+ :type _content_type: str, Optional
1095
+ :param _headers: set to override the headers for a single
1096
+ request; this effectively ignores the headers
1097
+ in the spec for a single request.
1098
+ :type _headers: dict, optional
1099
+ :param _host_index: set to override the host_index for a single
1100
+ request; this effectively ignores the host_index
1101
+ in the spec for a single request.
1102
+ :type _host_index: int, optional
1103
+ :return: Returns the result object.
1104
+ """ # noqa: E501
1105
+
1106
+ _param = self._get_library_statistics_serialize(
1107
+ id=id,
1108
+ _request_auth=_request_auth,
1109
+ _content_type=_content_type,
1110
+ _headers=_headers,
1111
+ _host_index=_host_index,
1112
+ )
1113
+
1114
+ _response_types_map: Dict[str, Optional[str]] = {
1115
+ "200": "LibraryStatsResponseDto",
1116
+ }
1117
+ response_data = await self.api_client.call_api(
1118
+ *_param, _request_timeout=_request_timeout
1119
+ )
1120
+ await response_data.read()
1121
+ return self.api_client.response_deserialize(
1122
+ response_data=response_data,
1123
+ response_types_map=_response_types_map,
1124
+ )
1125
+
1126
+ @validate_call
1127
+ async def get_library_statistics_without_preload_content(
1128
+ self,
1129
+ id: UUID,
1130
+ _request_timeout: Union[
1131
+ None,
1132
+ Annotated[StrictFloat, Field(gt=0)],
1133
+ Tuple[
1134
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1135
+ ],
1136
+ ] = None,
1137
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1138
+ _content_type: Optional[StrictStr] = None,
1139
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1140
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1141
+ ) -> RESTResponseType:
1142
+ """Retrieve library statistics
1143
+
1144
+ Retrieve statistics for a specific external library, including number of videos, images, and storage usage.
1145
+
1146
+ :param id: (required)
1147
+ :type id: UUID
1148
+ :param _request_timeout: timeout setting for this request. If one
1149
+ number provided, it will be total request
1150
+ timeout. It can also be a pair (tuple) of
1151
+ (connection, read) timeouts.
1152
+ :type _request_timeout: int, tuple(int, int), optional
1153
+ :param _request_auth: set to override the auth_settings for an a single
1154
+ request; this effectively ignores the
1155
+ authentication in the spec for a single request.
1156
+ :type _request_auth: dict, optional
1157
+ :param _content_type: force content-type for the request.
1158
+ :type _content_type: str, Optional
1159
+ :param _headers: set to override the headers for a single
1160
+ request; this effectively ignores the headers
1161
+ in the spec for a single request.
1162
+ :type _headers: dict, optional
1163
+ :param _host_index: set to override the host_index for a single
1164
+ request; this effectively ignores the host_index
1165
+ in the spec for a single request.
1166
+ :type _host_index: int, optional
1167
+ :return: Returns the result object.
1168
+ """ # noqa: E501
1169
+
1170
+ _param = self._get_library_statistics_serialize(
1171
+ id=id,
1172
+ _request_auth=_request_auth,
1173
+ _content_type=_content_type,
1174
+ _headers=_headers,
1175
+ _host_index=_host_index,
1176
+ )
1177
+
1178
+ _response_types_map: Dict[str, Optional[str]] = {
1179
+ "200": "LibraryStatsResponseDto",
1180
+ }
1181
+ response_data = await self.api_client.call_api(
1182
+ *_param, _request_timeout=_request_timeout
1183
+ )
1184
+ return response_data.response
1185
+
1186
+ def _get_library_statistics_serialize(
1187
+ self,
1188
+ id,
1189
+ _request_auth,
1190
+ _content_type,
1191
+ _headers,
1192
+ _host_index,
1193
+ ) -> RequestSerialized:
1194
+ _host = None
1195
+
1196
+ _collection_formats: Dict[str, str] = {}
1197
+
1198
+ _path_params: Dict[str, str] = {}
1199
+ _query_params: List[Tuple[str, str]] = []
1200
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1201
+ _form_params: List[Tuple[str, str]] = []
1202
+ _files: Dict[
1203
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1204
+ ] = {}
1205
+ _body_params: Optional[bytes] = None
1206
+
1207
+ # process the path parameters
1208
+ if id is not None:
1209
+ _path_params["id"] = id
1210
+ # process the query parameters
1211
+ # process the header parameters
1212
+ # process the form parameters
1213
+ # process the body parameter
1214
+
1215
+ # set the HTTP header `Accept`
1216
+ if "Accept" not in _header_params:
1217
+ _header_params["Accept"] = self.api_client.select_header_accept(
1218
+ ["application/json"]
1219
+ )
1220
+
1221
+ # authentication setting
1222
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
1223
+
1224
+ return self.api_client.param_serialize(
1225
+ method="GET",
1226
+ resource_path="/libraries/{id}/statistics",
1227
+ path_params=_path_params,
1228
+ query_params=_query_params,
1229
+ header_params=_header_params,
1230
+ body=_body_params,
1231
+ post_params=_form_params,
1232
+ files=_files,
1233
+ auth_settings=_auth_settings,
1234
+ collection_formats=_collection_formats,
1235
+ _host=_host,
1236
+ _request_auth=_request_auth,
1237
+ )
1238
+
1239
+ @validate_call
1240
+ async def scan_library(
1241
+ self,
1242
+ id: UUID,
1243
+ _request_timeout: Union[
1244
+ None,
1245
+ Annotated[StrictFloat, Field(gt=0)],
1246
+ Tuple[
1247
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1248
+ ],
1249
+ ] = None,
1250
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1251
+ _content_type: Optional[StrictStr] = None,
1252
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1253
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1254
+ ) -> None:
1255
+ """Scan a library
1256
+
1257
+ Queue a scan for the external library to find and import new assets.
1258
+
1259
+ :param id: (required)
1260
+ :type id: UUID
1261
+ :param _request_timeout: timeout setting for this request. If one
1262
+ number provided, it will be total request
1263
+ timeout. It can also be a pair (tuple) of
1264
+ (connection, read) timeouts.
1265
+ :type _request_timeout: int, tuple(int, int), optional
1266
+ :param _request_auth: set to override the auth_settings for an a single
1267
+ request; this effectively ignores the
1268
+ authentication in the spec for a single request.
1269
+ :type _request_auth: dict, optional
1270
+ :param _content_type: force content-type for the request.
1271
+ :type _content_type: str, Optional
1272
+ :param _headers: set to override the headers for a single
1273
+ request; this effectively ignores the headers
1274
+ in the spec for a single request.
1275
+ :type _headers: dict, optional
1276
+ :param _host_index: set to override the host_index for a single
1277
+ request; this effectively ignores the host_index
1278
+ in the spec for a single request.
1279
+ :type _host_index: int, optional
1280
+ :return: Returns the result object.
1281
+ """ # noqa: E501
1282
+
1283
+ _param = self._scan_library_serialize(
1284
+ id=id,
1285
+ _request_auth=_request_auth,
1286
+ _content_type=_content_type,
1287
+ _headers=_headers,
1288
+ _host_index=_host_index,
1289
+ )
1290
+
1291
+ _response_types_map: Dict[str, Optional[str]] = {
1292
+ "204": None,
1293
+ }
1294
+ response_data = await self.api_client.call_api(
1295
+ *_param, _request_timeout=_request_timeout
1296
+ )
1297
+ await response_data.read()
1298
+ return self.api_client.response_deserialize(
1299
+ response_data=response_data,
1300
+ response_types_map=_response_types_map,
1301
+ ).data
1302
+
1303
+ @validate_call
1304
+ async def scan_library_with_http_info(
1305
+ self,
1306
+ id: UUID,
1307
+ _request_timeout: Union[
1308
+ None,
1309
+ Annotated[StrictFloat, Field(gt=0)],
1310
+ Tuple[
1311
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1312
+ ],
1313
+ ] = None,
1314
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1315
+ _content_type: Optional[StrictStr] = None,
1316
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1317
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1318
+ ) -> ApiResponse[None]:
1319
+ """Scan a library
1320
+
1321
+ Queue a scan for the external library to find and import new assets.
1322
+
1323
+ :param id: (required)
1324
+ :type id: UUID
1325
+ :param _request_timeout: timeout setting for this request. If one
1326
+ number provided, it will be total request
1327
+ timeout. It can also be a pair (tuple) of
1328
+ (connection, read) timeouts.
1329
+ :type _request_timeout: int, tuple(int, int), optional
1330
+ :param _request_auth: set to override the auth_settings for an a single
1331
+ request; this effectively ignores the
1332
+ authentication in the spec for a single request.
1333
+ :type _request_auth: dict, optional
1334
+ :param _content_type: force content-type for the request.
1335
+ :type _content_type: str, Optional
1336
+ :param _headers: set to override the headers for a single
1337
+ request; this effectively ignores the headers
1338
+ in the spec for a single request.
1339
+ :type _headers: dict, optional
1340
+ :param _host_index: set to override the host_index for a single
1341
+ request; this effectively ignores the host_index
1342
+ in the spec for a single request.
1343
+ :type _host_index: int, optional
1344
+ :return: Returns the result object.
1345
+ """ # noqa: E501
1346
+
1347
+ _param = self._scan_library_serialize(
1348
+ id=id,
1349
+ _request_auth=_request_auth,
1350
+ _content_type=_content_type,
1351
+ _headers=_headers,
1352
+ _host_index=_host_index,
1353
+ )
1354
+
1355
+ _response_types_map: Dict[str, Optional[str]] = {
1356
+ "204": None,
1357
+ }
1358
+ response_data = await self.api_client.call_api(
1359
+ *_param, _request_timeout=_request_timeout
1360
+ )
1361
+ await response_data.read()
1362
+ return self.api_client.response_deserialize(
1363
+ response_data=response_data,
1364
+ response_types_map=_response_types_map,
1365
+ )
1366
+
1367
+ @validate_call
1368
+ async def scan_library_without_preload_content(
1369
+ self,
1370
+ id: UUID,
1371
+ _request_timeout: Union[
1372
+ None,
1373
+ Annotated[StrictFloat, Field(gt=0)],
1374
+ Tuple[
1375
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1376
+ ],
1377
+ ] = None,
1378
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1379
+ _content_type: Optional[StrictStr] = None,
1380
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1381
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1382
+ ) -> RESTResponseType:
1383
+ """Scan a library
1384
+
1385
+ Queue a scan for the external library to find and import new assets.
1386
+
1387
+ :param id: (required)
1388
+ :type id: UUID
1389
+ :param _request_timeout: timeout setting for this request. If one
1390
+ number provided, it will be total request
1391
+ timeout. It can also be a pair (tuple) of
1392
+ (connection, read) timeouts.
1393
+ :type _request_timeout: int, tuple(int, int), optional
1394
+ :param _request_auth: set to override the auth_settings for an a single
1395
+ request; this effectively ignores the
1396
+ authentication in the spec for a single request.
1397
+ :type _request_auth: dict, optional
1398
+ :param _content_type: force content-type for the request.
1399
+ :type _content_type: str, Optional
1400
+ :param _headers: set to override the headers for a single
1401
+ request; this effectively ignores the headers
1402
+ in the spec for a single request.
1403
+ :type _headers: dict, optional
1404
+ :param _host_index: set to override the host_index for a single
1405
+ request; this effectively ignores the host_index
1406
+ in the spec for a single request.
1407
+ :type _host_index: int, optional
1408
+ :return: Returns the result object.
1409
+ """ # noqa: E501
1410
+
1411
+ _param = self._scan_library_serialize(
1412
+ id=id,
1413
+ _request_auth=_request_auth,
1414
+ _content_type=_content_type,
1415
+ _headers=_headers,
1416
+ _host_index=_host_index,
1417
+ )
1418
+
1419
+ _response_types_map: Dict[str, Optional[str]] = {
1420
+ "204": None,
1421
+ }
1422
+ response_data = await self.api_client.call_api(
1423
+ *_param, _request_timeout=_request_timeout
1424
+ )
1425
+ return response_data.response
1426
+
1427
+ def _scan_library_serialize(
1428
+ self,
1429
+ id,
1430
+ _request_auth,
1431
+ _content_type,
1432
+ _headers,
1433
+ _host_index,
1434
+ ) -> RequestSerialized:
1435
+ _host = None
1436
+
1437
+ _collection_formats: Dict[str, str] = {}
1438
+
1439
+ _path_params: Dict[str, str] = {}
1440
+ _query_params: List[Tuple[str, str]] = []
1441
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1442
+ _form_params: List[Tuple[str, str]] = []
1443
+ _files: Dict[
1444
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1445
+ ] = {}
1446
+ _body_params: Optional[bytes] = None
1447
+
1448
+ # process the path parameters
1449
+ if id is not None:
1450
+ _path_params["id"] = id
1451
+ # process the query parameters
1452
+ # process the header parameters
1453
+ # process the form parameters
1454
+ # process the body parameter
1455
+
1456
+ # authentication setting
1457
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
1458
+
1459
+ return self.api_client.param_serialize(
1460
+ method="POST",
1461
+ resource_path="/libraries/{id}/scan",
1462
+ path_params=_path_params,
1463
+ query_params=_query_params,
1464
+ header_params=_header_params,
1465
+ body=_body_params,
1466
+ post_params=_form_params,
1467
+ files=_files,
1468
+ auth_settings=_auth_settings,
1469
+ collection_formats=_collection_formats,
1470
+ _host=_host,
1471
+ _request_auth=_request_auth,
1472
+ )
1473
+
1474
+ @validate_call
1475
+ async def update_library(
1476
+ self,
1477
+ id: UUID,
1478
+ update_library_dto: UpdateLibraryDto,
1479
+ _request_timeout: Union[
1480
+ None,
1481
+ Annotated[StrictFloat, Field(gt=0)],
1482
+ Tuple[
1483
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1484
+ ],
1485
+ ] = None,
1486
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1487
+ _content_type: Optional[StrictStr] = None,
1488
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1489
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1490
+ ) -> LibraryResponseDto:
1491
+ """Update a library
1492
+
1493
+ Update an existing external library.
1494
+
1495
+ :param id: (required)
1496
+ :type id: UUID
1497
+ :param update_library_dto: (required)
1498
+ :type update_library_dto: UpdateLibraryDto
1499
+ :param _request_timeout: timeout setting for this request. If one
1500
+ number provided, it will be total request
1501
+ timeout. It can also be a pair (tuple) of
1502
+ (connection, read) timeouts.
1503
+ :type _request_timeout: int, tuple(int, int), optional
1504
+ :param _request_auth: set to override the auth_settings for an a single
1505
+ request; this effectively ignores the
1506
+ authentication in the spec for a single request.
1507
+ :type _request_auth: dict, optional
1508
+ :param _content_type: force content-type for the request.
1509
+ :type _content_type: str, Optional
1510
+ :param _headers: set to override the headers for a single
1511
+ request; this effectively ignores the headers
1512
+ in the spec for a single request.
1513
+ :type _headers: dict, optional
1514
+ :param _host_index: set to override the host_index for a single
1515
+ request; this effectively ignores the host_index
1516
+ in the spec for a single request.
1517
+ :type _host_index: int, optional
1518
+ :return: Returns the result object.
1519
+ """ # noqa: E501
1520
+
1521
+ _param = self._update_library_serialize(
1522
+ id=id,
1523
+ update_library_dto=update_library_dto,
1524
+ _request_auth=_request_auth,
1525
+ _content_type=_content_type,
1526
+ _headers=_headers,
1527
+ _host_index=_host_index,
1528
+ )
1529
+
1530
+ _response_types_map: Dict[str, Optional[str]] = {
1531
+ "200": "LibraryResponseDto",
1532
+ }
1533
+ response_data = await self.api_client.call_api(
1534
+ *_param, _request_timeout=_request_timeout
1535
+ )
1536
+ await response_data.read()
1537
+ return self.api_client.response_deserialize(
1538
+ response_data=response_data,
1539
+ response_types_map=_response_types_map,
1540
+ ).data
1541
+
1542
+ @validate_call
1543
+ async def update_library_with_http_info(
1544
+ self,
1545
+ id: UUID,
1546
+ update_library_dto: UpdateLibraryDto,
1547
+ _request_timeout: Union[
1548
+ None,
1549
+ Annotated[StrictFloat, Field(gt=0)],
1550
+ Tuple[
1551
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1552
+ ],
1553
+ ] = None,
1554
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1555
+ _content_type: Optional[StrictStr] = None,
1556
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1557
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1558
+ ) -> ApiResponse[LibraryResponseDto]:
1559
+ """Update a library
1560
+
1561
+ Update an existing external library.
1562
+
1563
+ :param id: (required)
1564
+ :type id: UUID
1565
+ :param update_library_dto: (required)
1566
+ :type update_library_dto: UpdateLibraryDto
1567
+ :param _request_timeout: timeout setting for this request. If one
1568
+ number provided, it will be total request
1569
+ timeout. It can also be a pair (tuple) of
1570
+ (connection, read) timeouts.
1571
+ :type _request_timeout: int, tuple(int, int), optional
1572
+ :param _request_auth: set to override the auth_settings for an a single
1573
+ request; this effectively ignores the
1574
+ authentication in the spec for a single request.
1575
+ :type _request_auth: dict, optional
1576
+ :param _content_type: force content-type for the request.
1577
+ :type _content_type: str, Optional
1578
+ :param _headers: set to override the headers for a single
1579
+ request; this effectively ignores the headers
1580
+ in the spec for a single request.
1581
+ :type _headers: dict, optional
1582
+ :param _host_index: set to override the host_index for a single
1583
+ request; this effectively ignores the host_index
1584
+ in the spec for a single request.
1585
+ :type _host_index: int, optional
1586
+ :return: Returns the result object.
1587
+ """ # noqa: E501
1588
+
1589
+ _param = self._update_library_serialize(
1590
+ id=id,
1591
+ update_library_dto=update_library_dto,
1592
+ _request_auth=_request_auth,
1593
+ _content_type=_content_type,
1594
+ _headers=_headers,
1595
+ _host_index=_host_index,
1596
+ )
1597
+
1598
+ _response_types_map: Dict[str, Optional[str]] = {
1599
+ "200": "LibraryResponseDto",
1600
+ }
1601
+ response_data = await self.api_client.call_api(
1602
+ *_param, _request_timeout=_request_timeout
1603
+ )
1604
+ await response_data.read()
1605
+ return self.api_client.response_deserialize(
1606
+ response_data=response_data,
1607
+ response_types_map=_response_types_map,
1608
+ )
1609
+
1610
+ @validate_call
1611
+ async def update_library_without_preload_content(
1612
+ self,
1613
+ id: UUID,
1614
+ update_library_dto: UpdateLibraryDto,
1615
+ _request_timeout: Union[
1616
+ None,
1617
+ Annotated[StrictFloat, Field(gt=0)],
1618
+ Tuple[
1619
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1620
+ ],
1621
+ ] = None,
1622
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1623
+ _content_type: Optional[StrictStr] = None,
1624
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1625
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1626
+ ) -> RESTResponseType:
1627
+ """Update a library
1628
+
1629
+ Update an existing external library.
1630
+
1631
+ :param id: (required)
1632
+ :type id: UUID
1633
+ :param update_library_dto: (required)
1634
+ :type update_library_dto: UpdateLibraryDto
1635
+ :param _request_timeout: timeout setting for this request. If one
1636
+ number provided, it will be total request
1637
+ timeout. It can also be a pair (tuple) of
1638
+ (connection, read) timeouts.
1639
+ :type _request_timeout: int, tuple(int, int), optional
1640
+ :param _request_auth: set to override the auth_settings for an a single
1641
+ request; this effectively ignores the
1642
+ authentication in the spec for a single request.
1643
+ :type _request_auth: dict, optional
1644
+ :param _content_type: force content-type for the request.
1645
+ :type _content_type: str, Optional
1646
+ :param _headers: set to override the headers for a single
1647
+ request; this effectively ignores the headers
1648
+ in the spec for a single request.
1649
+ :type _headers: dict, optional
1650
+ :param _host_index: set to override the host_index for a single
1651
+ request; this effectively ignores the host_index
1652
+ in the spec for a single request.
1653
+ :type _host_index: int, optional
1654
+ :return: Returns the result object.
1655
+ """ # noqa: E501
1656
+
1657
+ _param = self._update_library_serialize(
1658
+ id=id,
1659
+ update_library_dto=update_library_dto,
1660
+ _request_auth=_request_auth,
1661
+ _content_type=_content_type,
1662
+ _headers=_headers,
1663
+ _host_index=_host_index,
1664
+ )
1665
+
1666
+ _response_types_map: Dict[str, Optional[str]] = {
1667
+ "200": "LibraryResponseDto",
1668
+ }
1669
+ response_data = await self.api_client.call_api(
1670
+ *_param, _request_timeout=_request_timeout
1671
+ )
1672
+ return response_data.response
1673
+
1674
+ def _update_library_serialize(
1675
+ self,
1676
+ id,
1677
+ update_library_dto,
1678
+ _request_auth,
1679
+ _content_type,
1680
+ _headers,
1681
+ _host_index,
1682
+ ) -> RequestSerialized:
1683
+ _host = None
1684
+
1685
+ _collection_formats: Dict[str, str] = {}
1686
+
1687
+ _path_params: Dict[str, str] = {}
1688
+ _query_params: List[Tuple[str, str]] = []
1689
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1690
+ _form_params: List[Tuple[str, str]] = []
1691
+ _files: Dict[
1692
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1693
+ ] = {}
1694
+ _body_params: Optional[bytes] = None
1695
+
1696
+ # process the path parameters
1697
+ if id is not None:
1698
+ _path_params["id"] = id
1699
+ # process the query parameters
1700
+ # process the header parameters
1701
+ # process the form parameters
1702
+ # process the body parameter
1703
+ if update_library_dto is not None:
1704
+ _body_params = update_library_dto
1705
+
1706
+ # set the HTTP header `Accept`
1707
+ if "Accept" not in _header_params:
1708
+ _header_params["Accept"] = self.api_client.select_header_accept(
1709
+ ["application/json"]
1710
+ )
1711
+
1712
+ # set the HTTP header `Content-Type`
1713
+ if _content_type:
1714
+ _header_params["Content-Type"] = _content_type
1715
+ else:
1716
+ _default_content_type = self.api_client.select_header_content_type(
1717
+ ["application/json"]
1718
+ )
1719
+ if _default_content_type is not None:
1720
+ _header_params["Content-Type"] = _default_content_type
1721
+
1722
+ # authentication setting
1723
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
1724
+
1725
+ return self.api_client.param_serialize(
1726
+ method="PUT",
1727
+ resource_path="/libraries/{id}",
1728
+ path_params=_path_params,
1729
+ query_params=_query_params,
1730
+ header_params=_header_params,
1731
+ body=_body_params,
1732
+ post_params=_form_params,
1733
+ files=_files,
1734
+ auth_settings=_auth_settings,
1735
+ collection_formats=_collection_formats,
1736
+ _host=_host,
1737
+ _request_auth=_request_auth,
1738
+ )
1739
+
1740
+ @validate_call
1741
+ async def validate(
1742
+ self,
1743
+ id: UUID,
1744
+ validate_library_dto: ValidateLibraryDto,
1745
+ _request_timeout: Union[
1746
+ None,
1747
+ Annotated[StrictFloat, Field(gt=0)],
1748
+ Tuple[
1749
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1750
+ ],
1751
+ ] = None,
1752
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1753
+ _content_type: Optional[StrictStr] = None,
1754
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1755
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1756
+ ) -> ValidateLibraryResponseDto:
1757
+ """Validate library settings
1758
+
1759
+ Validate the settings of an external library.
1760
+
1761
+ :param id: (required)
1762
+ :type id: UUID
1763
+ :param validate_library_dto: (required)
1764
+ :type validate_library_dto: ValidateLibraryDto
1765
+ :param _request_timeout: timeout setting for this request. If one
1766
+ number provided, it will be total request
1767
+ timeout. It can also be a pair (tuple) of
1768
+ (connection, read) timeouts.
1769
+ :type _request_timeout: int, tuple(int, int), optional
1770
+ :param _request_auth: set to override the auth_settings for an a single
1771
+ request; this effectively ignores the
1772
+ authentication in the spec for a single request.
1773
+ :type _request_auth: dict, optional
1774
+ :param _content_type: force content-type for the request.
1775
+ :type _content_type: str, Optional
1776
+ :param _headers: set to override the headers for a single
1777
+ request; this effectively ignores the headers
1778
+ in the spec for a single request.
1779
+ :type _headers: dict, optional
1780
+ :param _host_index: set to override the host_index for a single
1781
+ request; this effectively ignores the host_index
1782
+ in the spec for a single request.
1783
+ :type _host_index: int, optional
1784
+ :return: Returns the result object.
1785
+ """ # noqa: E501
1786
+
1787
+ _param = self._validate_serialize(
1788
+ id=id,
1789
+ validate_library_dto=validate_library_dto,
1790
+ _request_auth=_request_auth,
1791
+ _content_type=_content_type,
1792
+ _headers=_headers,
1793
+ _host_index=_host_index,
1794
+ )
1795
+
1796
+ _response_types_map: Dict[str, Optional[str]] = {
1797
+ "200": "ValidateLibraryResponseDto",
1798
+ }
1799
+ response_data = await self.api_client.call_api(
1800
+ *_param, _request_timeout=_request_timeout
1801
+ )
1802
+ await response_data.read()
1803
+ return self.api_client.response_deserialize(
1804
+ response_data=response_data,
1805
+ response_types_map=_response_types_map,
1806
+ ).data
1807
+
1808
+ @validate_call
1809
+ async def validate_with_http_info(
1810
+ self,
1811
+ id: UUID,
1812
+ validate_library_dto: ValidateLibraryDto,
1813
+ _request_timeout: Union[
1814
+ None,
1815
+ Annotated[StrictFloat, Field(gt=0)],
1816
+ Tuple[
1817
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1818
+ ],
1819
+ ] = None,
1820
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1821
+ _content_type: Optional[StrictStr] = None,
1822
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1823
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1824
+ ) -> ApiResponse[ValidateLibraryResponseDto]:
1825
+ """Validate library settings
1826
+
1827
+ Validate the settings of an external library.
1828
+
1829
+ :param id: (required)
1830
+ :type id: UUID
1831
+ :param validate_library_dto: (required)
1832
+ :type validate_library_dto: ValidateLibraryDto
1833
+ :param _request_timeout: timeout setting for this request. If one
1834
+ number provided, it will be total request
1835
+ timeout. It can also be a pair (tuple) of
1836
+ (connection, read) timeouts.
1837
+ :type _request_timeout: int, tuple(int, int), optional
1838
+ :param _request_auth: set to override the auth_settings for an a single
1839
+ request; this effectively ignores the
1840
+ authentication in the spec for a single request.
1841
+ :type _request_auth: dict, optional
1842
+ :param _content_type: force content-type for the request.
1843
+ :type _content_type: str, Optional
1844
+ :param _headers: set to override the headers for a single
1845
+ request; this effectively ignores the headers
1846
+ in the spec for a single request.
1847
+ :type _headers: dict, optional
1848
+ :param _host_index: set to override the host_index for a single
1849
+ request; this effectively ignores the host_index
1850
+ in the spec for a single request.
1851
+ :type _host_index: int, optional
1852
+ :return: Returns the result object.
1853
+ """ # noqa: E501
1854
+
1855
+ _param = self._validate_serialize(
1856
+ id=id,
1857
+ validate_library_dto=validate_library_dto,
1858
+ _request_auth=_request_auth,
1859
+ _content_type=_content_type,
1860
+ _headers=_headers,
1861
+ _host_index=_host_index,
1862
+ )
1863
+
1864
+ _response_types_map: Dict[str, Optional[str]] = {
1865
+ "200": "ValidateLibraryResponseDto",
1866
+ }
1867
+ response_data = await self.api_client.call_api(
1868
+ *_param, _request_timeout=_request_timeout
1869
+ )
1870
+ await response_data.read()
1871
+ return self.api_client.response_deserialize(
1872
+ response_data=response_data,
1873
+ response_types_map=_response_types_map,
1874
+ )
1875
+
1876
+ @validate_call
1877
+ async def validate_without_preload_content(
1878
+ self,
1879
+ id: UUID,
1880
+ validate_library_dto: ValidateLibraryDto,
1881
+ _request_timeout: Union[
1882
+ None,
1883
+ Annotated[StrictFloat, Field(gt=0)],
1884
+ Tuple[
1885
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1886
+ ],
1887
+ ] = None,
1888
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1889
+ _content_type: Optional[StrictStr] = None,
1890
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1891
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1892
+ ) -> RESTResponseType:
1893
+ """Validate library settings
1894
+
1895
+ Validate the settings of an external library.
1896
+
1897
+ :param id: (required)
1898
+ :type id: UUID
1899
+ :param validate_library_dto: (required)
1900
+ :type validate_library_dto: ValidateLibraryDto
1901
+ :param _request_timeout: timeout setting for this request. If one
1902
+ number provided, it will be total request
1903
+ timeout. It can also be a pair (tuple) of
1904
+ (connection, read) timeouts.
1905
+ :type _request_timeout: int, tuple(int, int), optional
1906
+ :param _request_auth: set to override the auth_settings for an a single
1907
+ request; this effectively ignores the
1908
+ authentication in the spec for a single request.
1909
+ :type _request_auth: dict, optional
1910
+ :param _content_type: force content-type for the request.
1911
+ :type _content_type: str, Optional
1912
+ :param _headers: set to override the headers for a single
1913
+ request; this effectively ignores the headers
1914
+ in the spec for a single request.
1915
+ :type _headers: dict, optional
1916
+ :param _host_index: set to override the host_index for a single
1917
+ request; this effectively ignores the host_index
1918
+ in the spec for a single request.
1919
+ :type _host_index: int, optional
1920
+ :return: Returns the result object.
1921
+ """ # noqa: E501
1922
+
1923
+ _param = self._validate_serialize(
1924
+ id=id,
1925
+ validate_library_dto=validate_library_dto,
1926
+ _request_auth=_request_auth,
1927
+ _content_type=_content_type,
1928
+ _headers=_headers,
1929
+ _host_index=_host_index,
1930
+ )
1931
+
1932
+ _response_types_map: Dict[str, Optional[str]] = {
1933
+ "200": "ValidateLibraryResponseDto",
1934
+ }
1935
+ response_data = await self.api_client.call_api(
1936
+ *_param, _request_timeout=_request_timeout
1937
+ )
1938
+ return response_data.response
1939
+
1940
+ def _validate_serialize(
1941
+ self,
1942
+ id,
1943
+ validate_library_dto,
1944
+ _request_auth,
1945
+ _content_type,
1946
+ _headers,
1947
+ _host_index,
1948
+ ) -> RequestSerialized:
1949
+ _host = None
1950
+
1951
+ _collection_formats: Dict[str, str] = {}
1952
+
1953
+ _path_params: Dict[str, str] = {}
1954
+ _query_params: List[Tuple[str, str]] = []
1955
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1956
+ _form_params: List[Tuple[str, str]] = []
1957
+ _files: Dict[
1958
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1959
+ ] = {}
1960
+ _body_params: Optional[bytes] = None
1961
+
1962
+ # process the path parameters
1963
+ if id is not None:
1964
+ _path_params["id"] = id
1965
+ # process the query parameters
1966
+ # process the header parameters
1967
+ # process the form parameters
1968
+ # process the body parameter
1969
+ if validate_library_dto is not None:
1970
+ _body_params = validate_library_dto
1971
+
1972
+ # set the HTTP header `Accept`
1973
+ if "Accept" not in _header_params:
1974
+ _header_params["Accept"] = self.api_client.select_header_accept(
1975
+ ["application/json"]
1976
+ )
1977
+
1978
+ # set the HTTP header `Content-Type`
1979
+ if _content_type:
1980
+ _header_params["Content-Type"] = _content_type
1981
+ else:
1982
+ _default_content_type = self.api_client.select_header_content_type(
1983
+ ["application/json"]
1984
+ )
1985
+ if _default_content_type is not None:
1986
+ _header_params["Content-Type"] = _default_content_type
1987
+
1988
+ # authentication setting
1989
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
1990
+
1991
+ return self.api_client.param_serialize(
1992
+ method="POST",
1993
+ resource_path="/libraries/{id}/validate",
1994
+ path_params=_path_params,
1995
+ query_params=_query_params,
1996
+ header_params=_header_params,
1997
+ body=_body_params,
1998
+ post_params=_form_params,
1999
+ files=_files,
2000
+ auth_settings=_auth_settings,
2001
+ collection_formats=_collection_formats,
2002
+ _host=_host,
2003
+ _request_auth=_request_auth,
2004
+ )