immichpy 1.6.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. immichpy/.openapi-generator/FILES +387 -0
  2. immichpy/.openapi-generator/VERSION +1 -0
  3. immichpy/__init__.py +3 -0
  4. immichpy/cli/__main__.py +12 -0
  5. immichpy/cli/commands/activities.py +110 -0
  6. immichpy/cli/commands/albums.py +317 -0
  7. immichpy/cli/commands/api_keys.py +125 -0
  8. immichpy/cli/commands/assets.py +610 -0
  9. immichpy/cli/commands/authentication.py +343 -0
  10. immichpy/cli/commands/authentication_admin.py +34 -0
  11. immichpy/cli/commands/download.py +76 -0
  12. immichpy/cli/commands/duplicates.py +67 -0
  13. immichpy/cli/commands/faces.py +107 -0
  14. immichpy/cli/commands/jobs.py +75 -0
  15. immichpy/cli/commands/libraries.py +183 -0
  16. immichpy/cli/commands/maintenance_admin.py +59 -0
  17. immichpy/cli/commands/map.py +79 -0
  18. immichpy/cli/commands/memories.py +231 -0
  19. immichpy/cli/commands/notifications.py +152 -0
  20. immichpy/cli/commands/notifications_admin.py +127 -0
  21. immichpy/cli/commands/partners.py +108 -0
  22. immichpy/cli/commands/people.py +293 -0
  23. immichpy/cli/commands/plugins.py +46 -0
  24. immichpy/cli/commands/queues.py +115 -0
  25. immichpy/cli/commands/search.py +835 -0
  26. immichpy/cli/commands/server.py +237 -0
  27. immichpy/cli/commands/sessions.py +132 -0
  28. immichpy/cli/commands/shared_links.py +273 -0
  29. immichpy/cli/commands/stacks.py +153 -0
  30. immichpy/cli/commands/sync.py +140 -0
  31. immichpy/cli/commands/system_config.py +681 -0
  32. immichpy/cli/commands/system_metadata.py +91 -0
  33. immichpy/cli/commands/tags.py +191 -0
  34. immichpy/cli/commands/timeline.py +196 -0
  35. immichpy/cli/commands/trash.py +63 -0
  36. immichpy/cli/commands/users.py +406 -0
  37. immichpy/cli/commands/users_admin.py +444 -0
  38. immichpy/cli/commands/views.py +54 -0
  39. immichpy/cli/commands/workflows.py +140 -0
  40. immichpy/cli/consts.py +19 -0
  41. immichpy/cli/main.py +248 -0
  42. immichpy/cli/runtime.py +97 -0
  43. immichpy/cli/types.py +17 -0
  44. immichpy/cli/utils.py +227 -0
  45. immichpy/cli/wrapper/assets.py +223 -0
  46. immichpy/cli/wrapper/config.py +76 -0
  47. immichpy/cli/wrapper/download.py +77 -0
  48. immichpy/cli/wrapper/setup.py +90 -0
  49. immichpy/cli/wrapper/users.py +47 -0
  50. immichpy/client/.openapi-generator/FILES +371 -0
  51. immichpy/client/.openapi-generator/VERSION +1 -0
  52. immichpy/client/.openapi-generator-ignore +48 -0
  53. immichpy/client/__init__.py +0 -0
  54. immichpy/client/consts.py +1 -0
  55. immichpy/client/generated/__init__.py +1344 -0
  56. immichpy/client/generated/api/__init__.py +41 -0
  57. immichpy/client/generated/api/activities_api.py +1092 -0
  58. immichpy/client/generated/api/albums_api.py +3228 -0
  59. immichpy/client/generated/api/api_keys_api.py +1486 -0
  60. immichpy/client/generated/api/assets_api.py +5846 -0
  61. immichpy/client/generated/api/authentication_admin_api.py +254 -0
  62. immichpy/client/generated/api/authentication_api.py +3887 -0
  63. immichpy/client/generated/api/deprecated_api.py +2207 -0
  64. immichpy/client/generated/api/download_api.py +603 -0
  65. immichpy/client/generated/api/duplicates_api.py +743 -0
  66. immichpy/client/generated/api/faces_api.py +1055 -0
  67. immichpy/client/generated/api/jobs_api.py +787 -0
  68. immichpy/client/generated/api/libraries_api.py +2006 -0
  69. immichpy/client/generated/api/maintenance_admin_api.py +535 -0
  70. immichpy/client/generated/api/map_api.py +642 -0
  71. immichpy/client/generated/api/memories_api.py +2250 -0
  72. immichpy/client/generated/api/notifications_admin_api.py +812 -0
  73. immichpy/client/generated/api/notifications_api.py +1570 -0
  74. immichpy/client/generated/api/partners_api.py +1278 -0
  75. immichpy/client/generated/api/people_api.py +2905 -0
  76. immichpy/client/generated/api/plugins_api.py +503 -0
  77. immichpy/client/generated/api/queues_api.py +1292 -0
  78. immichpy/client/generated/api/search_api.py +3200 -0
  79. immichpy/client/generated/api/server_api.py +3474 -0
  80. immichpy/client/generated/api/sessions_api.py +1474 -0
  81. immichpy/client/generated/api/shared_links_api.py +2163 -0
  82. immichpy/client/generated/api/stacks_api.py +1769 -0
  83. immichpy/client/generated/api/sync_api.py +1514 -0
  84. immichpy/client/generated/api/system_config_api.py +967 -0
  85. immichpy/client/generated/api/system_metadata_api.py +966 -0
  86. immichpy/client/generated/api/tags_api.py +2298 -0
  87. immichpy/client/generated/api/timeline_api.py +1195 -0
  88. immichpy/client/generated/api/trash_api.py +739 -0
  89. immichpy/client/generated/api/users_admin_api.py +2613 -0
  90. immichpy/client/generated/api/users_api.py +3583 -0
  91. immichpy/client/generated/api/views_api.py +503 -0
  92. immichpy/client/generated/api/workflows_api.py +1257 -0
  93. immichpy/client/generated/api_client.py +756 -0
  94. immichpy/client/generated/api_response.py +20 -0
  95. immichpy/client/generated/configuration.py +638 -0
  96. immichpy/client/generated/exceptions.py +222 -0
  97. immichpy/client/generated/models/__init__.py +561 -0
  98. immichpy/client/generated/models/activity_create_dto.py +94 -0
  99. immichpy/client/generated/models/activity_response_dto.py +121 -0
  100. immichpy/client/generated/models/activity_statistics_response_dto.py +85 -0
  101. immichpy/client/generated/models/add_users_dto.py +101 -0
  102. immichpy/client/generated/models/admin_onboarding_update_dto.py +82 -0
  103. immichpy/client/generated/models/album_response_dto.py +201 -0
  104. immichpy/client/generated/models/album_statistics_response_dto.py +90 -0
  105. immichpy/client/generated/models/album_user_add_dto.py +87 -0
  106. immichpy/client/generated/models/album_user_create_dto.py +87 -0
  107. immichpy/client/generated/models/album_user_response_dto.py +95 -0
  108. immichpy/client/generated/models/album_user_role.py +34 -0
  109. immichpy/client/generated/models/albums_add_assets_dto.py +86 -0
  110. immichpy/client/generated/models/albums_add_assets_response_dto.py +86 -0
  111. immichpy/client/generated/models/albums_response.py +83 -0
  112. immichpy/client/generated/models/albums_update.py +85 -0
  113. immichpy/client/generated/models/api_key_create_dto.py +87 -0
  114. immichpy/client/generated/models/api_key_create_response_dto.py +94 -0
  115. immichpy/client/generated/models/api_key_response_dto.py +102 -0
  116. immichpy/client/generated/models/api_key_update_dto.py +87 -0
  117. immichpy/client/generated/models/asset_bulk_delete_dto.py +84 -0
  118. immichpy/client/generated/models/asset_bulk_update_dto.py +143 -0
  119. immichpy/client/generated/models/asset_bulk_upload_check_dto.py +100 -0
  120. immichpy/client/generated/models/asset_bulk_upload_check_item.py +85 -0
  121. immichpy/client/generated/models/asset_bulk_upload_check_response_dto.py +101 -0
  122. immichpy/client/generated/models/asset_bulk_upload_check_result.py +126 -0
  123. immichpy/client/generated/models/asset_copy_dto.py +113 -0
  124. immichpy/client/generated/models/asset_delta_sync_dto.py +87 -0
  125. immichpy/client/generated/models/asset_delta_sync_response_dto.py +102 -0
  126. immichpy/client/generated/models/asset_face_create_dto.py +110 -0
  127. immichpy/client/generated/models/asset_face_delete_dto.py +82 -0
  128. immichpy/client/generated/models/asset_face_response_dto.py +125 -0
  129. immichpy/client/generated/models/asset_face_update_dto.py +96 -0
  130. immichpy/client/generated/models/asset_face_update_item.py +86 -0
  131. immichpy/client/generated/models/asset_face_without_person_response_dto.py +111 -0
  132. immichpy/client/generated/models/asset_full_sync_dto.py +95 -0
  133. immichpy/client/generated/models/asset_ids_dto.py +83 -0
  134. immichpy/client/generated/models/asset_ids_response_dto.py +109 -0
  135. immichpy/client/generated/models/asset_job_name.py +36 -0
  136. immichpy/client/generated/models/asset_jobs_dto.py +87 -0
  137. immichpy/client/generated/models/asset_media_response_dto.py +84 -0
  138. immichpy/client/generated/models/asset_media_size.py +35 -0
  139. immichpy/client/generated/models/asset_media_status.py +35 -0
  140. immichpy/client/generated/models/asset_metadata_key.py +33 -0
  141. immichpy/client/generated/models/asset_metadata_response_dto.py +92 -0
  142. immichpy/client/generated/models/asset_metadata_upsert_dto.py +101 -0
  143. immichpy/client/generated/models/asset_metadata_upsert_item_dto.py +84 -0
  144. immichpy/client/generated/models/asset_ocr_response_dto.py +145 -0
  145. immichpy/client/generated/models/asset_order.py +34 -0
  146. immichpy/client/generated/models/asset_response_dto.py +293 -0
  147. immichpy/client/generated/models/asset_stack_response_dto.py +90 -0
  148. immichpy/client/generated/models/asset_stats_response_dto.py +90 -0
  149. immichpy/client/generated/models/asset_type_enum.py +36 -0
  150. immichpy/client/generated/models/asset_visibility.py +36 -0
  151. immichpy/client/generated/models/audio_codec.py +36 -0
  152. immichpy/client/generated/models/auth_status_response_dto.py +100 -0
  153. immichpy/client/generated/models/avatar_update.py +83 -0
  154. immichpy/client/generated/models/bulk_id_error_reason.py +36 -0
  155. immichpy/client/generated/models/bulk_id_response_dto.py +102 -0
  156. immichpy/client/generated/models/bulk_ids_dto.py +83 -0
  157. immichpy/client/generated/models/cast_response.py +88 -0
  158. immichpy/client/generated/models/cast_update.py +82 -0
  159. immichpy/client/generated/models/change_password_dto.py +101 -0
  160. immichpy/client/generated/models/check_existing_assets_dto.py +91 -0
  161. immichpy/client/generated/models/check_existing_assets_response_dto.py +82 -0
  162. immichpy/client/generated/models/clip_config.py +85 -0
  163. immichpy/client/generated/models/colorspace.py +34 -0
  164. immichpy/client/generated/models/contributor_count_response_dto.py +85 -0
  165. immichpy/client/generated/models/cq_mode.py +35 -0
  166. immichpy/client/generated/models/create_album_dto.py +112 -0
  167. immichpy/client/generated/models/create_library_dto.py +103 -0
  168. immichpy/client/generated/models/create_profile_image_response_dto.py +95 -0
  169. immichpy/client/generated/models/database_backup_config.py +94 -0
  170. immichpy/client/generated/models/download_archive_info.py +85 -0
  171. immichpy/client/generated/models/download_info_dto.py +96 -0
  172. immichpy/client/generated/models/download_response.py +90 -0
  173. immichpy/client/generated/models/download_response_dto.py +100 -0
  174. immichpy/client/generated/models/download_update.py +93 -0
  175. immichpy/client/generated/models/duplicate_detection_config.py +89 -0
  176. immichpy/client/generated/models/duplicate_response_dto.py +98 -0
  177. immichpy/client/generated/models/email_notifications_response.py +90 -0
  178. immichpy/client/generated/models/email_notifications_update.py +90 -0
  179. immichpy/client/generated/models/exif_response_dto.py +284 -0
  180. immichpy/client/generated/models/face_dto.py +83 -0
  181. immichpy/client/generated/models/facial_recognition_config.py +107 -0
  182. immichpy/client/generated/models/folders_response.py +92 -0
  183. immichpy/client/generated/models/folders_update.py +85 -0
  184. immichpy/client/generated/models/image_format.py +34 -0
  185. immichpy/client/generated/models/job_create_dto.py +83 -0
  186. immichpy/client/generated/models/job_name.py +87 -0
  187. immichpy/client/generated/models/job_settings_dto.py +83 -0
  188. immichpy/client/generated/models/library_response_dto.py +118 -0
  189. immichpy/client/generated/models/library_stats_response_dto.py +92 -0
  190. immichpy/client/generated/models/license_key_dto.py +98 -0
  191. immichpy/client/generated/models/license_response_dto.py +101 -0
  192. immichpy/client/generated/models/log_level.py +38 -0
  193. immichpy/client/generated/models/login_credential_dto.py +85 -0
  194. immichpy/client/generated/models/login_response_dto.py +109 -0
  195. immichpy/client/generated/models/logout_response_dto.py +85 -0
  196. immichpy/client/generated/models/machine_learning_availability_checks_dto.py +90 -0
  197. immichpy/client/generated/models/maintenance_action.py +34 -0
  198. immichpy/client/generated/models/maintenance_auth_dto.py +82 -0
  199. immichpy/client/generated/models/maintenance_login_dto.py +82 -0
  200. immichpy/client/generated/models/manual_job_name.py +38 -0
  201. immichpy/client/generated/models/map_marker_response_dto.py +111 -0
  202. immichpy/client/generated/models/map_reverse_geocode_response_dto.py +105 -0
  203. immichpy/client/generated/models/memories_response.py +92 -0
  204. immichpy/client/generated/models/memories_update.py +86 -0
  205. immichpy/client/generated/models/memory_create_dto.py +112 -0
  206. immichpy/client/generated/models/memory_response_dto.py +142 -0
  207. immichpy/client/generated/models/memory_search_order.py +35 -0
  208. immichpy/client/generated/models/memory_statistics_response_dto.py +82 -0
  209. immichpy/client/generated/models/memory_type.py +33 -0
  210. immichpy/client/generated/models/memory_update_dto.py +91 -0
  211. immichpy/client/generated/models/merge_person_dto.py +83 -0
  212. immichpy/client/generated/models/metadata_search_dto.py +277 -0
  213. immichpy/client/generated/models/notification_create_dto.py +120 -0
  214. immichpy/client/generated/models/notification_delete_all_dto.py +83 -0
  215. immichpy/client/generated/models/notification_dto.py +112 -0
  216. immichpy/client/generated/models/notification_level.py +36 -0
  217. immichpy/client/generated/models/notification_type.py +38 -0
  218. immichpy/client/generated/models/notification_update_all_dto.py +90 -0
  219. immichpy/client/generated/models/notification_update_dto.py +88 -0
  220. immichpy/client/generated/models/o_auth_authorize_response_dto.py +82 -0
  221. immichpy/client/generated/models/o_auth_callback_dto.py +90 -0
  222. immichpy/client/generated/models/o_auth_config_dto.py +90 -0
  223. immichpy/client/generated/models/o_auth_token_endpoint_auth_method.py +34 -0
  224. immichpy/client/generated/models/ocr_config.py +109 -0
  225. immichpy/client/generated/models/on_this_day_dto.py +86 -0
  226. immichpy/client/generated/models/onboarding_dto.py +82 -0
  227. immichpy/client/generated/models/onboarding_response_dto.py +82 -0
  228. immichpy/client/generated/models/partner_create_dto.py +83 -0
  229. immichpy/client/generated/models/partner_direction.py +34 -0
  230. immichpy/client/generated/models/partner_response_dto.py +108 -0
  231. immichpy/client/generated/models/partner_update_dto.py +82 -0
  232. immichpy/client/generated/models/people_response.py +92 -0
  233. immichpy/client/generated/models/people_response_dto.py +104 -0
  234. immichpy/client/generated/models/people_update.py +85 -0
  235. immichpy/client/generated/models/people_update_dto.py +96 -0
  236. immichpy/client/generated/models/people_update_item.py +128 -0
  237. immichpy/client/generated/models/permission.py +177 -0
  238. immichpy/client/generated/models/person_create_dto.py +117 -0
  239. immichpy/client/generated/models/person_response_dto.py +115 -0
  240. immichpy/client/generated/models/person_statistics_response_dto.py +82 -0
  241. immichpy/client/generated/models/person_update_dto.py +125 -0
  242. immichpy/client/generated/models/person_with_faces_response_dto.py +133 -0
  243. immichpy/client/generated/models/pin_code_change_dto.py +90 -0
  244. immichpy/client/generated/models/pin_code_reset_dto.py +85 -0
  245. immichpy/client/generated/models/pin_code_setup_dto.py +82 -0
  246. immichpy/client/generated/models/places_response_dto.py +100 -0
  247. immichpy/client/generated/models/plugin_action_response_dto.py +112 -0
  248. immichpy/client/generated/models/plugin_context.py +35 -0
  249. immichpy/client/generated/models/plugin_filter_response_dto.py +112 -0
  250. immichpy/client/generated/models/plugin_response_dto.py +143 -0
  251. immichpy/client/generated/models/plugin_trigger_type.py +34 -0
  252. immichpy/client/generated/models/purchase_response.py +88 -0
  253. immichpy/client/generated/models/purchase_update.py +92 -0
  254. immichpy/client/generated/models/queue_command.py +37 -0
  255. immichpy/client/generated/models/queue_command_dto.py +86 -0
  256. immichpy/client/generated/models/queue_delete_dto.py +85 -0
  257. immichpy/client/generated/models/queue_job_response_dto.py +93 -0
  258. immichpy/client/generated/models/queue_job_status.py +38 -0
  259. immichpy/client/generated/models/queue_name.py +49 -0
  260. immichpy/client/generated/models/queue_response_dto.py +97 -0
  261. immichpy/client/generated/models/queue_response_legacy_dto.py +102 -0
  262. immichpy/client/generated/models/queue_statistics_dto.py +103 -0
  263. immichpy/client/generated/models/queue_status_legacy_dto.py +85 -0
  264. immichpy/client/generated/models/queue_update_dto.py +82 -0
  265. immichpy/client/generated/models/queues_response_legacy_dto.py +244 -0
  266. immichpy/client/generated/models/random_search_dto.py +234 -0
  267. immichpy/client/generated/models/ratings_response.py +84 -0
  268. immichpy/client/generated/models/ratings_update.py +82 -0
  269. immichpy/client/generated/models/reaction_level.py +34 -0
  270. immichpy/client/generated/models/reaction_type.py +34 -0
  271. immichpy/client/generated/models/reverse_geocoding_state_response_dto.py +101 -0
  272. immichpy/client/generated/models/search_album_response_dto.py +116 -0
  273. immichpy/client/generated/models/search_asset_response_dto.py +129 -0
  274. immichpy/client/generated/models/search_explore_item.py +94 -0
  275. immichpy/client/generated/models/search_explore_response_dto.py +98 -0
  276. immichpy/client/generated/models/search_facet_count_response_dto.py +85 -0
  277. immichpy/client/generated/models/search_facet_response_dto.py +103 -0
  278. immichpy/client/generated/models/search_response_dto.py +104 -0
  279. immichpy/client/generated/models/search_statistics_response_dto.py +82 -0
  280. immichpy/client/generated/models/search_suggestion_type.py +38 -0
  281. immichpy/client/generated/models/server_about_response_dto.py +156 -0
  282. immichpy/client/generated/models/server_apk_links_dto.py +97 -0
  283. immichpy/client/generated/models/server_config_dto.py +118 -0
  284. immichpy/client/generated/models/server_features_dto.py +130 -0
  285. immichpy/client/generated/models/server_media_types_response_dto.py +90 -0
  286. immichpy/client/generated/models/server_ping_response.py +87 -0
  287. immichpy/client/generated/models/server_stats_response_dto.py +119 -0
  288. immichpy/client/generated/models/server_storage_response_dto.py +108 -0
  289. immichpy/client/generated/models/server_theme_dto.py +82 -0
  290. immichpy/client/generated/models/server_version_history_response_dto.py +91 -0
  291. immichpy/client/generated/models/server_version_response_dto.py +90 -0
  292. immichpy/client/generated/models/session_create_dto.py +96 -0
  293. immichpy/client/generated/models/session_create_response_dto.py +120 -0
  294. immichpy/client/generated/models/session_response_dto.py +117 -0
  295. immichpy/client/generated/models/session_unlock_dto.py +85 -0
  296. immichpy/client/generated/models/session_update_dto.py +84 -0
  297. immichpy/client/generated/models/set_maintenance_mode_dto.py +83 -0
  298. immichpy/client/generated/models/shared_link_create_dto.py +142 -0
  299. immichpy/client/generated/models/shared_link_edit_dto.py +134 -0
  300. immichpy/client/generated/models/shared_link_response_dto.py +173 -0
  301. immichpy/client/generated/models/shared_link_type.py +34 -0
  302. immichpy/client/generated/models/shared_links_response.py +92 -0
  303. immichpy/client/generated/models/shared_links_update.py +85 -0
  304. immichpy/client/generated/models/sign_up_dto.py +90 -0
  305. immichpy/client/generated/models/smart_search_dto.py +245 -0
  306. immichpy/client/generated/models/source_type.py +35 -0
  307. immichpy/client/generated/models/stack_create_dto.py +86 -0
  308. immichpy/client/generated/models/stack_response_dto.py +100 -0
  309. immichpy/client/generated/models/stack_update_dto.py +83 -0
  310. immichpy/client/generated/models/statistics_search_dto.py +217 -0
  311. immichpy/client/generated/models/sync_ack_delete_dto.py +83 -0
  312. immichpy/client/generated/models/sync_ack_dto.py +84 -0
  313. immichpy/client/generated/models/sync_ack_set_dto.py +83 -0
  314. immichpy/client/generated/models/sync_album_delete_v1.py +82 -0
  315. immichpy/client/generated/models/sync_album_to_asset_delete_v1.py +85 -0
  316. immichpy/client/generated/models/sync_album_to_asset_v1.py +85 -0
  317. immichpy/client/generated/models/sync_album_user_delete_v1.py +85 -0
  318. immichpy/client/generated/models/sync_album_user_v1.py +91 -0
  319. immichpy/client/generated/models/sync_album_v1.py +122 -0
  320. immichpy/client/generated/models/sync_asset_delete_v1.py +82 -0
  321. immichpy/client/generated/models/sync_asset_exif_v1.py +296 -0
  322. immichpy/client/generated/models/sync_asset_face_delete_v1.py +82 -0
  323. immichpy/client/generated/models/sync_asset_face_v1.py +120 -0
  324. immichpy/client/generated/models/sync_asset_metadata_delete_v1.py +86 -0
  325. immichpy/client/generated/models/sync_asset_metadata_v1.py +91 -0
  326. immichpy/client/generated/models/sync_asset_v1.py +187 -0
  327. immichpy/client/generated/models/sync_auth_user_v1.py +154 -0
  328. immichpy/client/generated/models/sync_entity_type.py +79 -0
  329. immichpy/client/generated/models/sync_memory_asset_delete_v1.py +85 -0
  330. immichpy/client/generated/models/sync_memory_asset_v1.py +85 -0
  331. immichpy/client/generated/models/sync_memory_delete_v1.py +82 -0
  332. immichpy/client/generated/models/sync_memory_v1.py +143 -0
  333. immichpy/client/generated/models/sync_partner_delete_v1.py +88 -0
  334. immichpy/client/generated/models/sync_partner_v1.py +90 -0
  335. immichpy/client/generated/models/sync_person_delete_v1.py +82 -0
  336. immichpy/client/generated/models/sync_person_v1.py +131 -0
  337. immichpy/client/generated/models/sync_request_type.py +52 -0
  338. immichpy/client/generated/models/sync_stack_delete_v1.py +82 -0
  339. immichpy/client/generated/models/sync_stack_v1.py +101 -0
  340. immichpy/client/generated/models/sync_stream_dto.py +86 -0
  341. immichpy/client/generated/models/sync_user_delete_v1.py +82 -0
  342. immichpy/client/generated/models/sync_user_metadata_delete_v1.py +84 -0
  343. immichpy/client/generated/models/sync_user_metadata_v1.py +91 -0
  344. immichpy/client/generated/models/sync_user_v1.py +118 -0
  345. immichpy/client/generated/models/system_config_backups_dto.py +92 -0
  346. immichpy/client/generated/models/system_config_dto.py +324 -0
  347. immichpy/client/generated/models/system_config_f_fmpeg_dto.py +156 -0
  348. immichpy/client/generated/models/system_config_faces_dto.py +82 -0
  349. immichpy/client/generated/models/system_config_generated_fullsize_image_dto.py +92 -0
  350. immichpy/client/generated/models/system_config_generated_image_dto.py +92 -0
  351. immichpy/client/generated/models/system_config_image_dto.py +124 -0
  352. immichpy/client/generated/models/system_config_job_dto.py +194 -0
  353. immichpy/client/generated/models/system_config_library_dto.py +104 -0
  354. immichpy/client/generated/models/system_config_library_scan_dto.py +85 -0
  355. immichpy/client/generated/models/system_config_library_watch_dto.py +82 -0
  356. immichpy/client/generated/models/system_config_logging_dto.py +86 -0
  357. immichpy/client/generated/models/system_config_machine_learning_dto.py +151 -0
  358. immichpy/client/generated/models/system_config_map_dto.py +90 -0
  359. immichpy/client/generated/models/system_config_metadata_dto.py +94 -0
  360. immichpy/client/generated/models/system_config_new_version_check_dto.py +82 -0
  361. immichpy/client/generated/models/system_config_nightly_tasks_dto.py +103 -0
  362. immichpy/client/generated/models/system_config_notifications_dto.py +92 -0
  363. immichpy/client/generated/models/system_config_o_auth_dto.py +155 -0
  364. immichpy/client/generated/models/system_config_password_login_dto.py +82 -0
  365. immichpy/client/generated/models/system_config_reverse_geocoding_dto.py +82 -0
  366. immichpy/client/generated/models/system_config_server_dto.py +94 -0
  367. immichpy/client/generated/models/system_config_smtp_dto.py +100 -0
  368. immichpy/client/generated/models/system_config_smtp_transport_dto.py +107 -0
  369. immichpy/client/generated/models/system_config_storage_template_dto.py +94 -0
  370. immichpy/client/generated/models/system_config_template_emails_dto.py +94 -0
  371. immichpy/client/generated/models/system_config_template_storage_option_dto.py +109 -0
  372. immichpy/client/generated/models/system_config_templates_dto.py +94 -0
  373. immichpy/client/generated/models/system_config_theme_dto.py +82 -0
  374. immichpy/client/generated/models/system_config_trash_dto.py +86 -0
  375. immichpy/client/generated/models/system_config_user_dto.py +83 -0
  376. immichpy/client/generated/models/tag_bulk_assets_dto.py +86 -0
  377. immichpy/client/generated/models/tag_bulk_assets_response_dto.py +82 -0
  378. immichpy/client/generated/models/tag_create_dto.py +111 -0
  379. immichpy/client/generated/models/tag_response_dto.py +107 -0
  380. immichpy/client/generated/models/tag_update_dto.py +87 -0
  381. immichpy/client/generated/models/tag_upsert_dto.py +82 -0
  382. immichpy/client/generated/models/tags_response.py +92 -0
  383. immichpy/client/generated/models/tags_update.py +85 -0
  384. immichpy/client/generated/models/template_dto.py +82 -0
  385. immichpy/client/generated/models/template_response_dto.py +83 -0
  386. immichpy/client/generated/models/test_email_response_dto.py +82 -0
  387. immichpy/client/generated/models/time_bucket_asset_response_dto.py +195 -0
  388. immichpy/client/generated/models/time_buckets_response_dto.py +88 -0
  389. immichpy/client/generated/models/tone_mapping.py +36 -0
  390. immichpy/client/generated/models/transcode_hw_accel.py +37 -0
  391. immichpy/client/generated/models/transcode_policy.py +37 -0
  392. immichpy/client/generated/models/trash_response_dto.py +82 -0
  393. immichpy/client/generated/models/update_album_dto.py +106 -0
  394. immichpy/client/generated/models/update_album_user_dto.py +83 -0
  395. immichpy/client/generated/models/update_asset_dto.py +135 -0
  396. immichpy/client/generated/models/update_library_dto.py +95 -0
  397. immichpy/client/generated/models/usage_by_user_dto.py +117 -0
  398. immichpy/client/generated/models/user_admin_create_dto.py +136 -0
  399. immichpy/client/generated/models/user_admin_delete_dto.py +82 -0
  400. immichpy/client/generated/models/user_admin_response_dto.py +176 -0
  401. immichpy/client/generated/models/user_admin_update_dto.py +141 -0
  402. immichpy/client/generated/models/user_avatar_color.py +42 -0
  403. immichpy/client/generated/models/user_license.py +91 -0
  404. immichpy/client/generated/models/user_metadata_key.py +35 -0
  405. immichpy/client/generated/models/user_preferences_response_dto.py +188 -0
  406. immichpy/client/generated/models/user_preferences_update_dto.py +199 -0
  407. immichpy/client/generated/models/user_response_dto.py +105 -0
  408. immichpy/client/generated/models/user_status.py +35 -0
  409. immichpy/client/generated/models/user_update_me_dto.py +98 -0
  410. immichpy/client/generated/models/validate_access_token_response_dto.py +82 -0
  411. immichpy/client/generated/models/validate_library_dto.py +93 -0
  412. immichpy/client/generated/models/validate_library_import_path_response_dto.py +92 -0
  413. immichpy/client/generated/models/validate_library_response_dto.py +103 -0
  414. immichpy/client/generated/models/version_check_state_response_dto.py +98 -0
  415. immichpy/client/generated/models/video_codec.py +36 -0
  416. immichpy/client/generated/models/video_container.py +36 -0
  417. immichpy/client/generated/models/workflow_action_item_dto.py +89 -0
  418. immichpy/client/generated/models/workflow_action_response_dto.py +105 -0
  419. immichpy/client/generated/models/workflow_create_dto.py +132 -0
  420. immichpy/client/generated/models/workflow_filter_item_dto.py +89 -0
  421. immichpy/client/generated/models/workflow_filter_response_dto.py +105 -0
  422. immichpy/client/generated/models/workflow_response_dto.py +163 -0
  423. immichpy/client/generated/models/workflow_update_dto.py +128 -0
  424. immichpy/client/generated/py.typed +0 -0
  425. immichpy/client/generated/rest.py +199 -0
  426. immichpy/client/main.py +375 -0
  427. immichpy/client/types.py +65 -0
  428. immichpy/client/utils/download.py +249 -0
  429. immichpy/client/utils/upload.py +462 -0
  430. immichpy/client/wrapper/__init__.py +0 -0
  431. immichpy/client/wrapper/assets_api_wrapped.py +254 -0
  432. immichpy/client/wrapper/download_api_wrapped.py +118 -0
  433. immichpy/client/wrapper/users_api_wrapped.py +54 -0
  434. immichpy/py.typed +0 -0
  435. immichpy-1.6.5.dist-info/METADATA +67 -0
  436. immichpy-1.6.5.dist-info/RECORD +439 -0
  437. immichpy-1.6.5.dist-info/WHEEL +4 -0
  438. immichpy-1.6.5.dist-info/entry_points.txt +3 -0
  439. immichpy-1.6.5.dist-info/licenses/LICENSE +9 -0
@@ -0,0 +1,1195 @@
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 pydantic import StrictBool
19
+ from uuid import UUID
20
+ from immichpy.client.generated.models.asset_order import AssetOrder
21
+ from immichpy.client.generated.models.asset_visibility import AssetVisibility
22
+ from immichpy.client.generated.models.time_bucket_asset_response_dto import (
23
+ TimeBucketAssetResponseDto,
24
+ )
25
+ from immichpy.client.generated.models.time_buckets_response_dto import (
26
+ TimeBucketsResponseDto,
27
+ )
28
+
29
+ from immichpy.client.generated.api_client import ApiClient, RequestSerialized
30
+ from immichpy.client.generated.api_response import ApiResponse
31
+ from immichpy.client.generated.rest import RESTResponseType
32
+
33
+
34
+ class TimelineApi:
35
+ """NOTE: This class is auto generated by OpenAPI Generator
36
+ Ref: https://openapi-generator.tech
37
+
38
+ Do not edit the class manually.
39
+ """
40
+
41
+ def __init__(self, api_client=None) -> None:
42
+ if api_client is None:
43
+ api_client = ApiClient.get_default()
44
+ self.api_client = api_client
45
+
46
+ @validate_call
47
+ async def get_time_bucket(
48
+ self,
49
+ time_bucket: Annotated[
50
+ StrictStr,
51
+ Field(
52
+ description='Time bucket identifier in YYYY-MM-DD format (e.g., "2024-01-01" for January 2024)'
53
+ ),
54
+ ],
55
+ album_id: Annotated[
56
+ Optional[UUID],
57
+ Field(description="Filter assets belonging to a specific album"),
58
+ ] = None,
59
+ is_favorite: Annotated[
60
+ Optional[StrictBool],
61
+ Field(
62
+ description="Filter by favorite status (true for favorites only, false for non-favorites only)"
63
+ ),
64
+ ] = None,
65
+ is_trashed: Annotated[
66
+ Optional[StrictBool],
67
+ Field(
68
+ description="Filter by trash status (true for trashed assets only, false for non-trashed only)"
69
+ ),
70
+ ] = None,
71
+ key: Optional[StrictStr] = None,
72
+ order: Annotated[
73
+ Optional[AssetOrder],
74
+ Field(
75
+ description="Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)"
76
+ ),
77
+ ] = None,
78
+ person_id: Annotated[
79
+ Optional[UUID],
80
+ Field(
81
+ description="Filter assets containing a specific person (face recognition)"
82
+ ),
83
+ ] = None,
84
+ slug: Optional[StrictStr] = None,
85
+ tag_id: Annotated[
86
+ Optional[UUID], Field(description="Filter assets with a specific tag")
87
+ ] = None,
88
+ user_id: Annotated[
89
+ Optional[UUID], Field(description="Filter assets by specific user ID")
90
+ ] = None,
91
+ visibility: Annotated[
92
+ Optional[AssetVisibility],
93
+ Field(
94
+ description="Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)"
95
+ ),
96
+ ] = None,
97
+ with_coordinates: Annotated[
98
+ Optional[StrictBool],
99
+ Field(description="Include location data in the response"),
100
+ ] = None,
101
+ with_partners: Annotated[
102
+ Optional[StrictBool], Field(description="Include assets shared by partners")
103
+ ] = None,
104
+ with_stacked: Annotated[
105
+ Optional[StrictBool],
106
+ Field(
107
+ description="Include stacked assets in the response. When true, only primary assets from stacks are returned."
108
+ ),
109
+ ] = None,
110
+ _request_timeout: Union[
111
+ None,
112
+ Annotated[StrictFloat, Field(gt=0)],
113
+ Tuple[
114
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
115
+ ],
116
+ ] = None,
117
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
118
+ _content_type: Optional[StrictStr] = None,
119
+ _headers: Optional[Dict[StrictStr, Any]] = None,
120
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
121
+ ) -> TimeBucketAssetResponseDto:
122
+ """Get time bucket
123
+
124
+ Retrieve a string of all asset ids in a given time bucket.
125
+
126
+ :param time_bucket: Time bucket identifier in YYYY-MM-DD format (e.g., \"2024-01-01\" for January 2024) (required)
127
+ :type time_bucket: str
128
+ :param album_id: Filter assets belonging to a specific album
129
+ :type album_id: UUID
130
+ :param is_favorite: Filter by favorite status (true for favorites only, false for non-favorites only)
131
+ :type is_favorite: bool
132
+ :param is_trashed: Filter by trash status (true for trashed assets only, false for non-trashed only)
133
+ :type is_trashed: bool
134
+ :param key:
135
+ :type key: str
136
+ :param order: Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)
137
+ :type order: AssetOrder
138
+ :param person_id: Filter assets containing a specific person (face recognition)
139
+ :type person_id: UUID
140
+ :param slug:
141
+ :type slug: str
142
+ :param tag_id: Filter assets with a specific tag
143
+ :type tag_id: UUID
144
+ :param user_id: Filter assets by specific user ID
145
+ :type user_id: UUID
146
+ :param visibility: Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)
147
+ :type visibility: AssetVisibility
148
+ :param with_coordinates: Include location data in the response
149
+ :type with_coordinates: bool
150
+ :param with_partners: Include assets shared by partners
151
+ :type with_partners: bool
152
+ :param with_stacked: Include stacked assets in the response. When true, only primary assets from stacks are returned.
153
+ :type with_stacked: bool
154
+ :param _request_timeout: timeout setting for this request. If one
155
+ number provided, it will be total request
156
+ timeout. It can also be a pair (tuple) of
157
+ (connection, read) timeouts.
158
+ :type _request_timeout: int, tuple(int, int), optional
159
+ :param _request_auth: set to override the auth_settings for an a single
160
+ request; this effectively ignores the
161
+ authentication in the spec for a single request.
162
+ :type _request_auth: dict, optional
163
+ :param _content_type: force content-type for the request.
164
+ :type _content_type: str, Optional
165
+ :param _headers: set to override the headers for a single
166
+ request; this effectively ignores the headers
167
+ in the spec for a single request.
168
+ :type _headers: dict, optional
169
+ :param _host_index: set to override the host_index for a single
170
+ request; this effectively ignores the host_index
171
+ in the spec for a single request.
172
+ :type _host_index: int, optional
173
+ :return: Returns the result object.
174
+ """ # noqa: E501
175
+
176
+ _param = self._get_time_bucket_serialize(
177
+ time_bucket=time_bucket,
178
+ album_id=album_id,
179
+ is_favorite=is_favorite,
180
+ is_trashed=is_trashed,
181
+ key=key,
182
+ order=order,
183
+ person_id=person_id,
184
+ slug=slug,
185
+ tag_id=tag_id,
186
+ user_id=user_id,
187
+ visibility=visibility,
188
+ with_coordinates=with_coordinates,
189
+ with_partners=with_partners,
190
+ with_stacked=with_stacked,
191
+ _request_auth=_request_auth,
192
+ _content_type=_content_type,
193
+ _headers=_headers,
194
+ _host_index=_host_index,
195
+ )
196
+
197
+ _response_types_map: Dict[str, Optional[str]] = {
198
+ "200": "TimeBucketAssetResponseDto",
199
+ }
200
+ response_data = await self.api_client.call_api(
201
+ *_param, _request_timeout=_request_timeout
202
+ )
203
+ await response_data.read()
204
+ return self.api_client.response_deserialize(
205
+ response_data=response_data,
206
+ response_types_map=_response_types_map,
207
+ ).data
208
+
209
+ @validate_call
210
+ async def get_time_bucket_with_http_info(
211
+ self,
212
+ time_bucket: Annotated[
213
+ StrictStr,
214
+ Field(
215
+ description='Time bucket identifier in YYYY-MM-DD format (e.g., "2024-01-01" for January 2024)'
216
+ ),
217
+ ],
218
+ album_id: Annotated[
219
+ Optional[UUID],
220
+ Field(description="Filter assets belonging to a specific album"),
221
+ ] = None,
222
+ is_favorite: Annotated[
223
+ Optional[StrictBool],
224
+ Field(
225
+ description="Filter by favorite status (true for favorites only, false for non-favorites only)"
226
+ ),
227
+ ] = None,
228
+ is_trashed: Annotated[
229
+ Optional[StrictBool],
230
+ Field(
231
+ description="Filter by trash status (true for trashed assets only, false for non-trashed only)"
232
+ ),
233
+ ] = None,
234
+ key: Optional[StrictStr] = None,
235
+ order: Annotated[
236
+ Optional[AssetOrder],
237
+ Field(
238
+ description="Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)"
239
+ ),
240
+ ] = None,
241
+ person_id: Annotated[
242
+ Optional[UUID],
243
+ Field(
244
+ description="Filter assets containing a specific person (face recognition)"
245
+ ),
246
+ ] = None,
247
+ slug: Optional[StrictStr] = None,
248
+ tag_id: Annotated[
249
+ Optional[UUID], Field(description="Filter assets with a specific tag")
250
+ ] = None,
251
+ user_id: Annotated[
252
+ Optional[UUID], Field(description="Filter assets by specific user ID")
253
+ ] = None,
254
+ visibility: Annotated[
255
+ Optional[AssetVisibility],
256
+ Field(
257
+ description="Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)"
258
+ ),
259
+ ] = None,
260
+ with_coordinates: Annotated[
261
+ Optional[StrictBool],
262
+ Field(description="Include location data in the response"),
263
+ ] = None,
264
+ with_partners: Annotated[
265
+ Optional[StrictBool], Field(description="Include assets shared by partners")
266
+ ] = None,
267
+ with_stacked: Annotated[
268
+ Optional[StrictBool],
269
+ Field(
270
+ description="Include stacked assets in the response. When true, only primary assets from stacks are returned."
271
+ ),
272
+ ] = None,
273
+ _request_timeout: Union[
274
+ None,
275
+ Annotated[StrictFloat, Field(gt=0)],
276
+ Tuple[
277
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
278
+ ],
279
+ ] = None,
280
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
281
+ _content_type: Optional[StrictStr] = None,
282
+ _headers: Optional[Dict[StrictStr, Any]] = None,
283
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
284
+ ) -> ApiResponse[TimeBucketAssetResponseDto]:
285
+ """Get time bucket
286
+
287
+ Retrieve a string of all asset ids in a given time bucket.
288
+
289
+ :param time_bucket: Time bucket identifier in YYYY-MM-DD format (e.g., \"2024-01-01\" for January 2024) (required)
290
+ :type time_bucket: str
291
+ :param album_id: Filter assets belonging to a specific album
292
+ :type album_id: UUID
293
+ :param is_favorite: Filter by favorite status (true for favorites only, false for non-favorites only)
294
+ :type is_favorite: bool
295
+ :param is_trashed: Filter by trash status (true for trashed assets only, false for non-trashed only)
296
+ :type is_trashed: bool
297
+ :param key:
298
+ :type key: str
299
+ :param order: Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)
300
+ :type order: AssetOrder
301
+ :param person_id: Filter assets containing a specific person (face recognition)
302
+ :type person_id: UUID
303
+ :param slug:
304
+ :type slug: str
305
+ :param tag_id: Filter assets with a specific tag
306
+ :type tag_id: UUID
307
+ :param user_id: Filter assets by specific user ID
308
+ :type user_id: UUID
309
+ :param visibility: Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)
310
+ :type visibility: AssetVisibility
311
+ :param with_coordinates: Include location data in the response
312
+ :type with_coordinates: bool
313
+ :param with_partners: Include assets shared by partners
314
+ :type with_partners: bool
315
+ :param with_stacked: Include stacked assets in the response. When true, only primary assets from stacks are returned.
316
+ :type with_stacked: bool
317
+ :param _request_timeout: timeout setting for this request. If one
318
+ number provided, it will be total request
319
+ timeout. It can also be a pair (tuple) of
320
+ (connection, read) timeouts.
321
+ :type _request_timeout: int, tuple(int, int), optional
322
+ :param _request_auth: set to override the auth_settings for an a single
323
+ request; this effectively ignores the
324
+ authentication in the spec for a single request.
325
+ :type _request_auth: dict, optional
326
+ :param _content_type: force content-type for the request.
327
+ :type _content_type: str, Optional
328
+ :param _headers: set to override the headers for a single
329
+ request; this effectively ignores the headers
330
+ in the spec for a single request.
331
+ :type _headers: dict, optional
332
+ :param _host_index: set to override the host_index for a single
333
+ request; this effectively ignores the host_index
334
+ in the spec for a single request.
335
+ :type _host_index: int, optional
336
+ :return: Returns the result object.
337
+ """ # noqa: E501
338
+
339
+ _param = self._get_time_bucket_serialize(
340
+ time_bucket=time_bucket,
341
+ album_id=album_id,
342
+ is_favorite=is_favorite,
343
+ is_trashed=is_trashed,
344
+ key=key,
345
+ order=order,
346
+ person_id=person_id,
347
+ slug=slug,
348
+ tag_id=tag_id,
349
+ user_id=user_id,
350
+ visibility=visibility,
351
+ with_coordinates=with_coordinates,
352
+ with_partners=with_partners,
353
+ with_stacked=with_stacked,
354
+ _request_auth=_request_auth,
355
+ _content_type=_content_type,
356
+ _headers=_headers,
357
+ _host_index=_host_index,
358
+ )
359
+
360
+ _response_types_map: Dict[str, Optional[str]] = {
361
+ "200": "TimeBucketAssetResponseDto",
362
+ }
363
+ response_data = await self.api_client.call_api(
364
+ *_param, _request_timeout=_request_timeout
365
+ )
366
+ await response_data.read()
367
+ return self.api_client.response_deserialize(
368
+ response_data=response_data,
369
+ response_types_map=_response_types_map,
370
+ )
371
+
372
+ @validate_call
373
+ async def get_time_bucket_without_preload_content(
374
+ self,
375
+ time_bucket: Annotated[
376
+ StrictStr,
377
+ Field(
378
+ description='Time bucket identifier in YYYY-MM-DD format (e.g., "2024-01-01" for January 2024)'
379
+ ),
380
+ ],
381
+ album_id: Annotated[
382
+ Optional[UUID],
383
+ Field(description="Filter assets belonging to a specific album"),
384
+ ] = None,
385
+ is_favorite: Annotated[
386
+ Optional[StrictBool],
387
+ Field(
388
+ description="Filter by favorite status (true for favorites only, false for non-favorites only)"
389
+ ),
390
+ ] = None,
391
+ is_trashed: Annotated[
392
+ Optional[StrictBool],
393
+ Field(
394
+ description="Filter by trash status (true for trashed assets only, false for non-trashed only)"
395
+ ),
396
+ ] = None,
397
+ key: Optional[StrictStr] = None,
398
+ order: Annotated[
399
+ Optional[AssetOrder],
400
+ Field(
401
+ description="Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)"
402
+ ),
403
+ ] = None,
404
+ person_id: Annotated[
405
+ Optional[UUID],
406
+ Field(
407
+ description="Filter assets containing a specific person (face recognition)"
408
+ ),
409
+ ] = None,
410
+ slug: Optional[StrictStr] = None,
411
+ tag_id: Annotated[
412
+ Optional[UUID], Field(description="Filter assets with a specific tag")
413
+ ] = None,
414
+ user_id: Annotated[
415
+ Optional[UUID], Field(description="Filter assets by specific user ID")
416
+ ] = None,
417
+ visibility: Annotated[
418
+ Optional[AssetVisibility],
419
+ Field(
420
+ description="Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)"
421
+ ),
422
+ ] = None,
423
+ with_coordinates: Annotated[
424
+ Optional[StrictBool],
425
+ Field(description="Include location data in the response"),
426
+ ] = None,
427
+ with_partners: Annotated[
428
+ Optional[StrictBool], Field(description="Include assets shared by partners")
429
+ ] = None,
430
+ with_stacked: Annotated[
431
+ Optional[StrictBool],
432
+ Field(
433
+ description="Include stacked assets in the response. When true, only primary assets from stacks are returned."
434
+ ),
435
+ ] = None,
436
+ _request_timeout: Union[
437
+ None,
438
+ Annotated[StrictFloat, Field(gt=0)],
439
+ Tuple[
440
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
441
+ ],
442
+ ] = None,
443
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
444
+ _content_type: Optional[StrictStr] = None,
445
+ _headers: Optional[Dict[StrictStr, Any]] = None,
446
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
447
+ ) -> RESTResponseType:
448
+ """Get time bucket
449
+
450
+ Retrieve a string of all asset ids in a given time bucket.
451
+
452
+ :param time_bucket: Time bucket identifier in YYYY-MM-DD format (e.g., \"2024-01-01\" for January 2024) (required)
453
+ :type time_bucket: str
454
+ :param album_id: Filter assets belonging to a specific album
455
+ :type album_id: UUID
456
+ :param is_favorite: Filter by favorite status (true for favorites only, false for non-favorites only)
457
+ :type is_favorite: bool
458
+ :param is_trashed: Filter by trash status (true for trashed assets only, false for non-trashed only)
459
+ :type is_trashed: bool
460
+ :param key:
461
+ :type key: str
462
+ :param order: Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)
463
+ :type order: AssetOrder
464
+ :param person_id: Filter assets containing a specific person (face recognition)
465
+ :type person_id: UUID
466
+ :param slug:
467
+ :type slug: str
468
+ :param tag_id: Filter assets with a specific tag
469
+ :type tag_id: UUID
470
+ :param user_id: Filter assets by specific user ID
471
+ :type user_id: UUID
472
+ :param visibility: Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)
473
+ :type visibility: AssetVisibility
474
+ :param with_coordinates: Include location data in the response
475
+ :type with_coordinates: bool
476
+ :param with_partners: Include assets shared by partners
477
+ :type with_partners: bool
478
+ :param with_stacked: Include stacked assets in the response. When true, only primary assets from stacks are returned.
479
+ :type with_stacked: bool
480
+ :param _request_timeout: timeout setting for this request. If one
481
+ number provided, it will be total request
482
+ timeout. It can also be a pair (tuple) of
483
+ (connection, read) timeouts.
484
+ :type _request_timeout: int, tuple(int, int), optional
485
+ :param _request_auth: set to override the auth_settings for an a single
486
+ request; this effectively ignores the
487
+ authentication in the spec for a single request.
488
+ :type _request_auth: dict, optional
489
+ :param _content_type: force content-type for the request.
490
+ :type _content_type: str, Optional
491
+ :param _headers: set to override the headers for a single
492
+ request; this effectively ignores the headers
493
+ in the spec for a single request.
494
+ :type _headers: dict, optional
495
+ :param _host_index: set to override the host_index for a single
496
+ request; this effectively ignores the host_index
497
+ in the spec for a single request.
498
+ :type _host_index: int, optional
499
+ :return: Returns the result object.
500
+ """ # noqa: E501
501
+
502
+ _param = self._get_time_bucket_serialize(
503
+ time_bucket=time_bucket,
504
+ album_id=album_id,
505
+ is_favorite=is_favorite,
506
+ is_trashed=is_trashed,
507
+ key=key,
508
+ order=order,
509
+ person_id=person_id,
510
+ slug=slug,
511
+ tag_id=tag_id,
512
+ user_id=user_id,
513
+ visibility=visibility,
514
+ with_coordinates=with_coordinates,
515
+ with_partners=with_partners,
516
+ with_stacked=with_stacked,
517
+ _request_auth=_request_auth,
518
+ _content_type=_content_type,
519
+ _headers=_headers,
520
+ _host_index=_host_index,
521
+ )
522
+
523
+ _response_types_map: Dict[str, Optional[str]] = {
524
+ "200": "TimeBucketAssetResponseDto",
525
+ }
526
+ response_data = await self.api_client.call_api(
527
+ *_param, _request_timeout=_request_timeout
528
+ )
529
+ return response_data.response
530
+
531
+ def _get_time_bucket_serialize(
532
+ self,
533
+ time_bucket,
534
+ album_id,
535
+ is_favorite,
536
+ is_trashed,
537
+ key,
538
+ order,
539
+ person_id,
540
+ slug,
541
+ tag_id,
542
+ user_id,
543
+ visibility,
544
+ with_coordinates,
545
+ with_partners,
546
+ with_stacked,
547
+ _request_auth,
548
+ _content_type,
549
+ _headers,
550
+ _host_index,
551
+ ) -> RequestSerialized:
552
+ _host = None
553
+
554
+ _collection_formats: Dict[str, str] = {}
555
+
556
+ _path_params: Dict[str, str] = {}
557
+ _query_params: List[Tuple[str, str]] = []
558
+ _header_params: Dict[str, Optional[str]] = _headers or {}
559
+ _form_params: List[Tuple[str, str]] = []
560
+ _files: Dict[
561
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
562
+ ] = {}
563
+ _body_params: Optional[bytes] = None
564
+
565
+ # process the path parameters
566
+ # process the query parameters
567
+ if album_id is not None:
568
+ _query_params.append(("albumId", album_id))
569
+
570
+ if is_favorite is not None:
571
+ _query_params.append(("isFavorite", is_favorite))
572
+
573
+ if is_trashed is not None:
574
+ _query_params.append(("isTrashed", is_trashed))
575
+
576
+ if key is not None:
577
+ _query_params.append(("key", key))
578
+
579
+ if order is not None:
580
+ _query_params.append(("order", order.value))
581
+
582
+ if person_id is not None:
583
+ _query_params.append(("personId", person_id))
584
+
585
+ if slug is not None:
586
+ _query_params.append(("slug", slug))
587
+
588
+ if tag_id is not None:
589
+ _query_params.append(("tagId", tag_id))
590
+
591
+ if time_bucket is not None:
592
+ _query_params.append(("timeBucket", time_bucket))
593
+
594
+ if user_id is not None:
595
+ _query_params.append(("userId", user_id))
596
+
597
+ if visibility is not None:
598
+ _query_params.append(("visibility", visibility.value))
599
+
600
+ if with_coordinates is not None:
601
+ _query_params.append(("withCoordinates", with_coordinates))
602
+
603
+ if with_partners is not None:
604
+ _query_params.append(("withPartners", with_partners))
605
+
606
+ if with_stacked is not None:
607
+ _query_params.append(("withStacked", with_stacked))
608
+
609
+ # process the header parameters
610
+ # process the form parameters
611
+ # process the body parameter
612
+
613
+ # set the HTTP header `Accept`
614
+ if "Accept" not in _header_params:
615
+ _header_params["Accept"] = self.api_client.select_header_accept(
616
+ ["application/json"]
617
+ )
618
+
619
+ # authentication setting
620
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
621
+
622
+ return self.api_client.param_serialize(
623
+ method="GET",
624
+ resource_path="/timeline/bucket",
625
+ path_params=_path_params,
626
+ query_params=_query_params,
627
+ header_params=_header_params,
628
+ body=_body_params,
629
+ post_params=_form_params,
630
+ files=_files,
631
+ auth_settings=_auth_settings,
632
+ collection_formats=_collection_formats,
633
+ _host=_host,
634
+ _request_auth=_request_auth,
635
+ )
636
+
637
+ @validate_call
638
+ async def get_time_buckets(
639
+ self,
640
+ album_id: Annotated[
641
+ Optional[UUID],
642
+ Field(description="Filter assets belonging to a specific album"),
643
+ ] = None,
644
+ is_favorite: Annotated[
645
+ Optional[StrictBool],
646
+ Field(
647
+ description="Filter by favorite status (true for favorites only, false for non-favorites only)"
648
+ ),
649
+ ] = None,
650
+ is_trashed: Annotated[
651
+ Optional[StrictBool],
652
+ Field(
653
+ description="Filter by trash status (true for trashed assets only, false for non-trashed only)"
654
+ ),
655
+ ] = None,
656
+ key: Optional[StrictStr] = None,
657
+ order: Annotated[
658
+ Optional[AssetOrder],
659
+ Field(
660
+ description="Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)"
661
+ ),
662
+ ] = None,
663
+ person_id: Annotated[
664
+ Optional[UUID],
665
+ Field(
666
+ description="Filter assets containing a specific person (face recognition)"
667
+ ),
668
+ ] = None,
669
+ slug: Optional[StrictStr] = None,
670
+ tag_id: Annotated[
671
+ Optional[UUID], Field(description="Filter assets with a specific tag")
672
+ ] = None,
673
+ user_id: Annotated[
674
+ Optional[UUID], Field(description="Filter assets by specific user ID")
675
+ ] = None,
676
+ visibility: Annotated[
677
+ Optional[AssetVisibility],
678
+ Field(
679
+ description="Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)"
680
+ ),
681
+ ] = None,
682
+ with_coordinates: Annotated[
683
+ Optional[StrictBool],
684
+ Field(description="Include location data in the response"),
685
+ ] = None,
686
+ with_partners: Annotated[
687
+ Optional[StrictBool], Field(description="Include assets shared by partners")
688
+ ] = None,
689
+ with_stacked: Annotated[
690
+ Optional[StrictBool],
691
+ Field(
692
+ description="Include stacked assets in the response. When true, only primary assets from stacks are returned."
693
+ ),
694
+ ] = None,
695
+ _request_timeout: Union[
696
+ None,
697
+ Annotated[StrictFloat, Field(gt=0)],
698
+ Tuple[
699
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
700
+ ],
701
+ ] = None,
702
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
703
+ _content_type: Optional[StrictStr] = None,
704
+ _headers: Optional[Dict[StrictStr, Any]] = None,
705
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
706
+ ) -> List[TimeBucketsResponseDto]:
707
+ """Get time buckets
708
+
709
+ Retrieve a list of all minimal time buckets.
710
+
711
+ :param album_id: Filter assets belonging to a specific album
712
+ :type album_id: UUID
713
+ :param is_favorite: Filter by favorite status (true for favorites only, false for non-favorites only)
714
+ :type is_favorite: bool
715
+ :param is_trashed: Filter by trash status (true for trashed assets only, false for non-trashed only)
716
+ :type is_trashed: bool
717
+ :param key:
718
+ :type key: str
719
+ :param order: Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)
720
+ :type order: AssetOrder
721
+ :param person_id: Filter assets containing a specific person (face recognition)
722
+ :type person_id: UUID
723
+ :param slug:
724
+ :type slug: str
725
+ :param tag_id: Filter assets with a specific tag
726
+ :type tag_id: UUID
727
+ :param user_id: Filter assets by specific user ID
728
+ :type user_id: UUID
729
+ :param visibility: Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)
730
+ :type visibility: AssetVisibility
731
+ :param with_coordinates: Include location data in the response
732
+ :type with_coordinates: bool
733
+ :param with_partners: Include assets shared by partners
734
+ :type with_partners: bool
735
+ :param with_stacked: Include stacked assets in the response. When true, only primary assets from stacks are returned.
736
+ :type with_stacked: bool
737
+ :param _request_timeout: timeout setting for this request. If one
738
+ number provided, it will be total request
739
+ timeout. It can also be a pair (tuple) of
740
+ (connection, read) timeouts.
741
+ :type _request_timeout: int, tuple(int, int), optional
742
+ :param _request_auth: set to override the auth_settings for an a single
743
+ request; this effectively ignores the
744
+ authentication in the spec for a single request.
745
+ :type _request_auth: dict, optional
746
+ :param _content_type: force content-type for the request.
747
+ :type _content_type: str, Optional
748
+ :param _headers: set to override the headers for a single
749
+ request; this effectively ignores the headers
750
+ in the spec for a single request.
751
+ :type _headers: dict, optional
752
+ :param _host_index: set to override the host_index for a single
753
+ request; this effectively ignores the host_index
754
+ in the spec for a single request.
755
+ :type _host_index: int, optional
756
+ :return: Returns the result object.
757
+ """ # noqa: E501
758
+
759
+ _param = self._get_time_buckets_serialize(
760
+ album_id=album_id,
761
+ is_favorite=is_favorite,
762
+ is_trashed=is_trashed,
763
+ key=key,
764
+ order=order,
765
+ person_id=person_id,
766
+ slug=slug,
767
+ tag_id=tag_id,
768
+ user_id=user_id,
769
+ visibility=visibility,
770
+ with_coordinates=with_coordinates,
771
+ with_partners=with_partners,
772
+ with_stacked=with_stacked,
773
+ _request_auth=_request_auth,
774
+ _content_type=_content_type,
775
+ _headers=_headers,
776
+ _host_index=_host_index,
777
+ )
778
+
779
+ _response_types_map: Dict[str, Optional[str]] = {
780
+ "200": "List[TimeBucketsResponseDto]",
781
+ }
782
+ response_data = await self.api_client.call_api(
783
+ *_param, _request_timeout=_request_timeout
784
+ )
785
+ await response_data.read()
786
+ return self.api_client.response_deserialize(
787
+ response_data=response_data,
788
+ response_types_map=_response_types_map,
789
+ ).data
790
+
791
+ @validate_call
792
+ async def get_time_buckets_with_http_info(
793
+ self,
794
+ album_id: Annotated[
795
+ Optional[UUID],
796
+ Field(description="Filter assets belonging to a specific album"),
797
+ ] = None,
798
+ is_favorite: Annotated[
799
+ Optional[StrictBool],
800
+ Field(
801
+ description="Filter by favorite status (true for favorites only, false for non-favorites only)"
802
+ ),
803
+ ] = None,
804
+ is_trashed: Annotated[
805
+ Optional[StrictBool],
806
+ Field(
807
+ description="Filter by trash status (true for trashed assets only, false for non-trashed only)"
808
+ ),
809
+ ] = None,
810
+ key: Optional[StrictStr] = None,
811
+ order: Annotated[
812
+ Optional[AssetOrder],
813
+ Field(
814
+ description="Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)"
815
+ ),
816
+ ] = None,
817
+ person_id: Annotated[
818
+ Optional[UUID],
819
+ Field(
820
+ description="Filter assets containing a specific person (face recognition)"
821
+ ),
822
+ ] = None,
823
+ slug: Optional[StrictStr] = None,
824
+ tag_id: Annotated[
825
+ Optional[UUID], Field(description="Filter assets with a specific tag")
826
+ ] = None,
827
+ user_id: Annotated[
828
+ Optional[UUID], Field(description="Filter assets by specific user ID")
829
+ ] = None,
830
+ visibility: Annotated[
831
+ Optional[AssetVisibility],
832
+ Field(
833
+ description="Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)"
834
+ ),
835
+ ] = None,
836
+ with_coordinates: Annotated[
837
+ Optional[StrictBool],
838
+ Field(description="Include location data in the response"),
839
+ ] = None,
840
+ with_partners: Annotated[
841
+ Optional[StrictBool], Field(description="Include assets shared by partners")
842
+ ] = None,
843
+ with_stacked: Annotated[
844
+ Optional[StrictBool],
845
+ Field(
846
+ description="Include stacked assets in the response. When true, only primary assets from stacks are returned."
847
+ ),
848
+ ] = None,
849
+ _request_timeout: Union[
850
+ None,
851
+ Annotated[StrictFloat, Field(gt=0)],
852
+ Tuple[
853
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
854
+ ],
855
+ ] = None,
856
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
857
+ _content_type: Optional[StrictStr] = None,
858
+ _headers: Optional[Dict[StrictStr, Any]] = None,
859
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
860
+ ) -> ApiResponse[List[TimeBucketsResponseDto]]:
861
+ """Get time buckets
862
+
863
+ Retrieve a list of all minimal time buckets.
864
+
865
+ :param album_id: Filter assets belonging to a specific album
866
+ :type album_id: UUID
867
+ :param is_favorite: Filter by favorite status (true for favorites only, false for non-favorites only)
868
+ :type is_favorite: bool
869
+ :param is_trashed: Filter by trash status (true for trashed assets only, false for non-trashed only)
870
+ :type is_trashed: bool
871
+ :param key:
872
+ :type key: str
873
+ :param order: Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)
874
+ :type order: AssetOrder
875
+ :param person_id: Filter assets containing a specific person (face recognition)
876
+ :type person_id: UUID
877
+ :param slug:
878
+ :type slug: str
879
+ :param tag_id: Filter assets with a specific tag
880
+ :type tag_id: UUID
881
+ :param user_id: Filter assets by specific user ID
882
+ :type user_id: UUID
883
+ :param visibility: Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)
884
+ :type visibility: AssetVisibility
885
+ :param with_coordinates: Include location data in the response
886
+ :type with_coordinates: bool
887
+ :param with_partners: Include assets shared by partners
888
+ :type with_partners: bool
889
+ :param with_stacked: Include stacked assets in the response. When true, only primary assets from stacks are returned.
890
+ :type with_stacked: bool
891
+ :param _request_timeout: timeout setting for this request. If one
892
+ number provided, it will be total request
893
+ timeout. It can also be a pair (tuple) of
894
+ (connection, read) timeouts.
895
+ :type _request_timeout: int, tuple(int, int), optional
896
+ :param _request_auth: set to override the auth_settings for an a single
897
+ request; this effectively ignores the
898
+ authentication in the spec for a single request.
899
+ :type _request_auth: dict, optional
900
+ :param _content_type: force content-type for the request.
901
+ :type _content_type: str, Optional
902
+ :param _headers: set to override the headers for a single
903
+ request; this effectively ignores the headers
904
+ in the spec for a single request.
905
+ :type _headers: dict, optional
906
+ :param _host_index: set to override the host_index for a single
907
+ request; this effectively ignores the host_index
908
+ in the spec for a single request.
909
+ :type _host_index: int, optional
910
+ :return: Returns the result object.
911
+ """ # noqa: E501
912
+
913
+ _param = self._get_time_buckets_serialize(
914
+ album_id=album_id,
915
+ is_favorite=is_favorite,
916
+ is_trashed=is_trashed,
917
+ key=key,
918
+ order=order,
919
+ person_id=person_id,
920
+ slug=slug,
921
+ tag_id=tag_id,
922
+ user_id=user_id,
923
+ visibility=visibility,
924
+ with_coordinates=with_coordinates,
925
+ with_partners=with_partners,
926
+ with_stacked=with_stacked,
927
+ _request_auth=_request_auth,
928
+ _content_type=_content_type,
929
+ _headers=_headers,
930
+ _host_index=_host_index,
931
+ )
932
+
933
+ _response_types_map: Dict[str, Optional[str]] = {
934
+ "200": "List[TimeBucketsResponseDto]",
935
+ }
936
+ response_data = await self.api_client.call_api(
937
+ *_param, _request_timeout=_request_timeout
938
+ )
939
+ await response_data.read()
940
+ return self.api_client.response_deserialize(
941
+ response_data=response_data,
942
+ response_types_map=_response_types_map,
943
+ )
944
+
945
+ @validate_call
946
+ async def get_time_buckets_without_preload_content(
947
+ self,
948
+ album_id: Annotated[
949
+ Optional[UUID],
950
+ Field(description="Filter assets belonging to a specific album"),
951
+ ] = None,
952
+ is_favorite: Annotated[
953
+ Optional[StrictBool],
954
+ Field(
955
+ description="Filter by favorite status (true for favorites only, false for non-favorites only)"
956
+ ),
957
+ ] = None,
958
+ is_trashed: Annotated[
959
+ Optional[StrictBool],
960
+ Field(
961
+ description="Filter by trash status (true for trashed assets only, false for non-trashed only)"
962
+ ),
963
+ ] = None,
964
+ key: Optional[StrictStr] = None,
965
+ order: Annotated[
966
+ Optional[AssetOrder],
967
+ Field(
968
+ description="Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)"
969
+ ),
970
+ ] = None,
971
+ person_id: Annotated[
972
+ Optional[UUID],
973
+ Field(
974
+ description="Filter assets containing a specific person (face recognition)"
975
+ ),
976
+ ] = None,
977
+ slug: Optional[StrictStr] = None,
978
+ tag_id: Annotated[
979
+ Optional[UUID], Field(description="Filter assets with a specific tag")
980
+ ] = None,
981
+ user_id: Annotated[
982
+ Optional[UUID], Field(description="Filter assets by specific user ID")
983
+ ] = None,
984
+ visibility: Annotated[
985
+ Optional[AssetVisibility],
986
+ Field(
987
+ description="Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)"
988
+ ),
989
+ ] = None,
990
+ with_coordinates: Annotated[
991
+ Optional[StrictBool],
992
+ Field(description="Include location data in the response"),
993
+ ] = None,
994
+ with_partners: Annotated[
995
+ Optional[StrictBool], Field(description="Include assets shared by partners")
996
+ ] = None,
997
+ with_stacked: Annotated[
998
+ Optional[StrictBool],
999
+ Field(
1000
+ description="Include stacked assets in the response. When true, only primary assets from stacks are returned."
1001
+ ),
1002
+ ] = None,
1003
+ _request_timeout: Union[
1004
+ None,
1005
+ Annotated[StrictFloat, Field(gt=0)],
1006
+ Tuple[
1007
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1008
+ ],
1009
+ ] = None,
1010
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1011
+ _content_type: Optional[StrictStr] = None,
1012
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1013
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1014
+ ) -> RESTResponseType:
1015
+ """Get time buckets
1016
+
1017
+ Retrieve a list of all minimal time buckets.
1018
+
1019
+ :param album_id: Filter assets belonging to a specific album
1020
+ :type album_id: UUID
1021
+ :param is_favorite: Filter by favorite status (true for favorites only, false for non-favorites only)
1022
+ :type is_favorite: bool
1023
+ :param is_trashed: Filter by trash status (true for trashed assets only, false for non-trashed only)
1024
+ :type is_trashed: bool
1025
+ :param key:
1026
+ :type key: str
1027
+ :param order: Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)
1028
+ :type order: AssetOrder
1029
+ :param person_id: Filter assets containing a specific person (face recognition)
1030
+ :type person_id: UUID
1031
+ :param slug:
1032
+ :type slug: str
1033
+ :param tag_id: Filter assets with a specific tag
1034
+ :type tag_id: UUID
1035
+ :param user_id: Filter assets by specific user ID
1036
+ :type user_id: UUID
1037
+ :param visibility: Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)
1038
+ :type visibility: AssetVisibility
1039
+ :param with_coordinates: Include location data in the response
1040
+ :type with_coordinates: bool
1041
+ :param with_partners: Include assets shared by partners
1042
+ :type with_partners: bool
1043
+ :param with_stacked: Include stacked assets in the response. When true, only primary assets from stacks are returned.
1044
+ :type with_stacked: bool
1045
+ :param _request_timeout: timeout setting for this request. If one
1046
+ number provided, it will be total request
1047
+ timeout. It can also be a pair (tuple) of
1048
+ (connection, read) timeouts.
1049
+ :type _request_timeout: int, tuple(int, int), optional
1050
+ :param _request_auth: set to override the auth_settings for an a single
1051
+ request; this effectively ignores the
1052
+ authentication in the spec for a single request.
1053
+ :type _request_auth: dict, optional
1054
+ :param _content_type: force content-type for the request.
1055
+ :type _content_type: str, Optional
1056
+ :param _headers: set to override the headers for a single
1057
+ request; this effectively ignores the headers
1058
+ in the spec for a single request.
1059
+ :type _headers: dict, optional
1060
+ :param _host_index: set to override the host_index for a single
1061
+ request; this effectively ignores the host_index
1062
+ in the spec for a single request.
1063
+ :type _host_index: int, optional
1064
+ :return: Returns the result object.
1065
+ """ # noqa: E501
1066
+
1067
+ _param = self._get_time_buckets_serialize(
1068
+ album_id=album_id,
1069
+ is_favorite=is_favorite,
1070
+ is_trashed=is_trashed,
1071
+ key=key,
1072
+ order=order,
1073
+ person_id=person_id,
1074
+ slug=slug,
1075
+ tag_id=tag_id,
1076
+ user_id=user_id,
1077
+ visibility=visibility,
1078
+ with_coordinates=with_coordinates,
1079
+ with_partners=with_partners,
1080
+ with_stacked=with_stacked,
1081
+ _request_auth=_request_auth,
1082
+ _content_type=_content_type,
1083
+ _headers=_headers,
1084
+ _host_index=_host_index,
1085
+ )
1086
+
1087
+ _response_types_map: Dict[str, Optional[str]] = {
1088
+ "200": "List[TimeBucketsResponseDto]",
1089
+ }
1090
+ response_data = await self.api_client.call_api(
1091
+ *_param, _request_timeout=_request_timeout
1092
+ )
1093
+ return response_data.response
1094
+
1095
+ def _get_time_buckets_serialize(
1096
+ self,
1097
+ album_id,
1098
+ is_favorite,
1099
+ is_trashed,
1100
+ key,
1101
+ order,
1102
+ person_id,
1103
+ slug,
1104
+ tag_id,
1105
+ user_id,
1106
+ visibility,
1107
+ with_coordinates,
1108
+ with_partners,
1109
+ with_stacked,
1110
+ _request_auth,
1111
+ _content_type,
1112
+ _headers,
1113
+ _host_index,
1114
+ ) -> RequestSerialized:
1115
+ _host = None
1116
+
1117
+ _collection_formats: Dict[str, str] = {}
1118
+
1119
+ _path_params: Dict[str, str] = {}
1120
+ _query_params: List[Tuple[str, str]] = []
1121
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1122
+ _form_params: List[Tuple[str, str]] = []
1123
+ _files: Dict[
1124
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1125
+ ] = {}
1126
+ _body_params: Optional[bytes] = None
1127
+
1128
+ # process the path parameters
1129
+ # process the query parameters
1130
+ if album_id is not None:
1131
+ _query_params.append(("albumId", album_id))
1132
+
1133
+ if is_favorite is not None:
1134
+ _query_params.append(("isFavorite", is_favorite))
1135
+
1136
+ if is_trashed is not None:
1137
+ _query_params.append(("isTrashed", is_trashed))
1138
+
1139
+ if key is not None:
1140
+ _query_params.append(("key", key))
1141
+
1142
+ if order is not None:
1143
+ _query_params.append(("order", order.value))
1144
+
1145
+ if person_id is not None:
1146
+ _query_params.append(("personId", person_id))
1147
+
1148
+ if slug is not None:
1149
+ _query_params.append(("slug", slug))
1150
+
1151
+ if tag_id is not None:
1152
+ _query_params.append(("tagId", tag_id))
1153
+
1154
+ if user_id is not None:
1155
+ _query_params.append(("userId", user_id))
1156
+
1157
+ if visibility is not None:
1158
+ _query_params.append(("visibility", visibility.value))
1159
+
1160
+ if with_coordinates is not None:
1161
+ _query_params.append(("withCoordinates", with_coordinates))
1162
+
1163
+ if with_partners is not None:
1164
+ _query_params.append(("withPartners", with_partners))
1165
+
1166
+ if with_stacked is not None:
1167
+ _query_params.append(("withStacked", with_stacked))
1168
+
1169
+ # process the header parameters
1170
+ # process the form parameters
1171
+ # process the body parameter
1172
+
1173
+ # set the HTTP header `Accept`
1174
+ if "Accept" not in _header_params:
1175
+ _header_params["Accept"] = self.api_client.select_header_accept(
1176
+ ["application/json"]
1177
+ )
1178
+
1179
+ # authentication setting
1180
+ _auth_settings: List[str] = ["cookie", "api_key", "bearer"]
1181
+
1182
+ return self.api_client.param_serialize(
1183
+ method="GET",
1184
+ resource_path="/timeline/buckets",
1185
+ path_params=_path_params,
1186
+ query_params=_query_params,
1187
+ header_params=_header_params,
1188
+ body=_body_params,
1189
+ post_params=_form_params,
1190
+ files=_files,
1191
+ auth_settings=_auth_settings,
1192
+ collection_formats=_collection_formats,
1193
+ _host=_host,
1194
+ _request_auth=_request_auth,
1195
+ )