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.
- immichpy/.openapi-generator/FILES +387 -0
- immichpy/.openapi-generator/VERSION +1 -0
- immichpy/__init__.py +3 -0
- immichpy/cli/__main__.py +12 -0
- immichpy/cli/commands/activities.py +110 -0
- immichpy/cli/commands/albums.py +317 -0
- immichpy/cli/commands/api_keys.py +125 -0
- immichpy/cli/commands/assets.py +610 -0
- immichpy/cli/commands/authentication.py +343 -0
- immichpy/cli/commands/authentication_admin.py +34 -0
- immichpy/cli/commands/download.py +76 -0
- immichpy/cli/commands/duplicates.py +67 -0
- immichpy/cli/commands/faces.py +107 -0
- immichpy/cli/commands/jobs.py +75 -0
- immichpy/cli/commands/libraries.py +183 -0
- immichpy/cli/commands/maintenance_admin.py +59 -0
- immichpy/cli/commands/map.py +79 -0
- immichpy/cli/commands/memories.py +231 -0
- immichpy/cli/commands/notifications.py +152 -0
- immichpy/cli/commands/notifications_admin.py +127 -0
- immichpy/cli/commands/partners.py +108 -0
- immichpy/cli/commands/people.py +293 -0
- immichpy/cli/commands/plugins.py +46 -0
- immichpy/cli/commands/queues.py +115 -0
- immichpy/cli/commands/search.py +835 -0
- immichpy/cli/commands/server.py +237 -0
- immichpy/cli/commands/sessions.py +132 -0
- immichpy/cli/commands/shared_links.py +273 -0
- immichpy/cli/commands/stacks.py +153 -0
- immichpy/cli/commands/sync.py +140 -0
- immichpy/cli/commands/system_config.py +681 -0
- immichpy/cli/commands/system_metadata.py +91 -0
- immichpy/cli/commands/tags.py +191 -0
- immichpy/cli/commands/timeline.py +196 -0
- immichpy/cli/commands/trash.py +63 -0
- immichpy/cli/commands/users.py +406 -0
- immichpy/cli/commands/users_admin.py +444 -0
- immichpy/cli/commands/views.py +54 -0
- immichpy/cli/commands/workflows.py +140 -0
- immichpy/cli/consts.py +19 -0
- immichpy/cli/main.py +248 -0
- immichpy/cli/runtime.py +97 -0
- immichpy/cli/types.py +17 -0
- immichpy/cli/utils.py +227 -0
- immichpy/cli/wrapper/assets.py +223 -0
- immichpy/cli/wrapper/config.py +76 -0
- immichpy/cli/wrapper/download.py +77 -0
- immichpy/cli/wrapper/setup.py +90 -0
- immichpy/cli/wrapper/users.py +47 -0
- immichpy/client/.openapi-generator/FILES +371 -0
- immichpy/client/.openapi-generator/VERSION +1 -0
- immichpy/client/.openapi-generator-ignore +48 -0
- immichpy/client/__init__.py +0 -0
- immichpy/client/consts.py +1 -0
- immichpy/client/generated/__init__.py +1344 -0
- immichpy/client/generated/api/__init__.py +41 -0
- immichpy/client/generated/api/activities_api.py +1092 -0
- immichpy/client/generated/api/albums_api.py +3228 -0
- immichpy/client/generated/api/api_keys_api.py +1486 -0
- immichpy/client/generated/api/assets_api.py +5846 -0
- immichpy/client/generated/api/authentication_admin_api.py +254 -0
- immichpy/client/generated/api/authentication_api.py +3887 -0
- immichpy/client/generated/api/deprecated_api.py +2207 -0
- immichpy/client/generated/api/download_api.py +603 -0
- immichpy/client/generated/api/duplicates_api.py +743 -0
- immichpy/client/generated/api/faces_api.py +1055 -0
- immichpy/client/generated/api/jobs_api.py +787 -0
- immichpy/client/generated/api/libraries_api.py +2006 -0
- immichpy/client/generated/api/maintenance_admin_api.py +535 -0
- immichpy/client/generated/api/map_api.py +642 -0
- immichpy/client/generated/api/memories_api.py +2250 -0
- immichpy/client/generated/api/notifications_admin_api.py +812 -0
- immichpy/client/generated/api/notifications_api.py +1570 -0
- immichpy/client/generated/api/partners_api.py +1278 -0
- immichpy/client/generated/api/people_api.py +2905 -0
- immichpy/client/generated/api/plugins_api.py +503 -0
- immichpy/client/generated/api/queues_api.py +1292 -0
- immichpy/client/generated/api/search_api.py +3200 -0
- immichpy/client/generated/api/server_api.py +3474 -0
- immichpy/client/generated/api/sessions_api.py +1474 -0
- immichpy/client/generated/api/shared_links_api.py +2163 -0
- immichpy/client/generated/api/stacks_api.py +1769 -0
- immichpy/client/generated/api/sync_api.py +1514 -0
- immichpy/client/generated/api/system_config_api.py +967 -0
- immichpy/client/generated/api/system_metadata_api.py +966 -0
- immichpy/client/generated/api/tags_api.py +2298 -0
- immichpy/client/generated/api/timeline_api.py +1195 -0
- immichpy/client/generated/api/trash_api.py +739 -0
- immichpy/client/generated/api/users_admin_api.py +2613 -0
- immichpy/client/generated/api/users_api.py +3583 -0
- immichpy/client/generated/api/views_api.py +503 -0
- immichpy/client/generated/api/workflows_api.py +1257 -0
- immichpy/client/generated/api_client.py +756 -0
- immichpy/client/generated/api_response.py +20 -0
- immichpy/client/generated/configuration.py +638 -0
- immichpy/client/generated/exceptions.py +222 -0
- immichpy/client/generated/models/__init__.py +561 -0
- immichpy/client/generated/models/activity_create_dto.py +94 -0
- immichpy/client/generated/models/activity_response_dto.py +121 -0
- immichpy/client/generated/models/activity_statistics_response_dto.py +85 -0
- immichpy/client/generated/models/add_users_dto.py +101 -0
- immichpy/client/generated/models/admin_onboarding_update_dto.py +82 -0
- immichpy/client/generated/models/album_response_dto.py +201 -0
- immichpy/client/generated/models/album_statistics_response_dto.py +90 -0
- immichpy/client/generated/models/album_user_add_dto.py +87 -0
- immichpy/client/generated/models/album_user_create_dto.py +87 -0
- immichpy/client/generated/models/album_user_response_dto.py +95 -0
- immichpy/client/generated/models/album_user_role.py +34 -0
- immichpy/client/generated/models/albums_add_assets_dto.py +86 -0
- immichpy/client/generated/models/albums_add_assets_response_dto.py +86 -0
- immichpy/client/generated/models/albums_response.py +83 -0
- immichpy/client/generated/models/albums_update.py +85 -0
- immichpy/client/generated/models/api_key_create_dto.py +87 -0
- immichpy/client/generated/models/api_key_create_response_dto.py +94 -0
- immichpy/client/generated/models/api_key_response_dto.py +102 -0
- immichpy/client/generated/models/api_key_update_dto.py +87 -0
- immichpy/client/generated/models/asset_bulk_delete_dto.py +84 -0
- immichpy/client/generated/models/asset_bulk_update_dto.py +143 -0
- immichpy/client/generated/models/asset_bulk_upload_check_dto.py +100 -0
- immichpy/client/generated/models/asset_bulk_upload_check_item.py +85 -0
- immichpy/client/generated/models/asset_bulk_upload_check_response_dto.py +101 -0
- immichpy/client/generated/models/asset_bulk_upload_check_result.py +126 -0
- immichpy/client/generated/models/asset_copy_dto.py +113 -0
- immichpy/client/generated/models/asset_delta_sync_dto.py +87 -0
- immichpy/client/generated/models/asset_delta_sync_response_dto.py +102 -0
- immichpy/client/generated/models/asset_face_create_dto.py +110 -0
- immichpy/client/generated/models/asset_face_delete_dto.py +82 -0
- immichpy/client/generated/models/asset_face_response_dto.py +125 -0
- immichpy/client/generated/models/asset_face_update_dto.py +96 -0
- immichpy/client/generated/models/asset_face_update_item.py +86 -0
- immichpy/client/generated/models/asset_face_without_person_response_dto.py +111 -0
- immichpy/client/generated/models/asset_full_sync_dto.py +95 -0
- immichpy/client/generated/models/asset_ids_dto.py +83 -0
- immichpy/client/generated/models/asset_ids_response_dto.py +109 -0
- immichpy/client/generated/models/asset_job_name.py +36 -0
- immichpy/client/generated/models/asset_jobs_dto.py +87 -0
- immichpy/client/generated/models/asset_media_response_dto.py +84 -0
- immichpy/client/generated/models/asset_media_size.py +35 -0
- immichpy/client/generated/models/asset_media_status.py +35 -0
- immichpy/client/generated/models/asset_metadata_key.py +33 -0
- immichpy/client/generated/models/asset_metadata_response_dto.py +92 -0
- immichpy/client/generated/models/asset_metadata_upsert_dto.py +101 -0
- immichpy/client/generated/models/asset_metadata_upsert_item_dto.py +84 -0
- immichpy/client/generated/models/asset_ocr_response_dto.py +145 -0
- immichpy/client/generated/models/asset_order.py +34 -0
- immichpy/client/generated/models/asset_response_dto.py +293 -0
- immichpy/client/generated/models/asset_stack_response_dto.py +90 -0
- immichpy/client/generated/models/asset_stats_response_dto.py +90 -0
- immichpy/client/generated/models/asset_type_enum.py +36 -0
- immichpy/client/generated/models/asset_visibility.py +36 -0
- immichpy/client/generated/models/audio_codec.py +36 -0
- immichpy/client/generated/models/auth_status_response_dto.py +100 -0
- immichpy/client/generated/models/avatar_update.py +83 -0
- immichpy/client/generated/models/bulk_id_error_reason.py +36 -0
- immichpy/client/generated/models/bulk_id_response_dto.py +102 -0
- immichpy/client/generated/models/bulk_ids_dto.py +83 -0
- immichpy/client/generated/models/cast_response.py +88 -0
- immichpy/client/generated/models/cast_update.py +82 -0
- immichpy/client/generated/models/change_password_dto.py +101 -0
- immichpy/client/generated/models/check_existing_assets_dto.py +91 -0
- immichpy/client/generated/models/check_existing_assets_response_dto.py +82 -0
- immichpy/client/generated/models/clip_config.py +85 -0
- immichpy/client/generated/models/colorspace.py +34 -0
- immichpy/client/generated/models/contributor_count_response_dto.py +85 -0
- immichpy/client/generated/models/cq_mode.py +35 -0
- immichpy/client/generated/models/create_album_dto.py +112 -0
- immichpy/client/generated/models/create_library_dto.py +103 -0
- immichpy/client/generated/models/create_profile_image_response_dto.py +95 -0
- immichpy/client/generated/models/database_backup_config.py +94 -0
- immichpy/client/generated/models/download_archive_info.py +85 -0
- immichpy/client/generated/models/download_info_dto.py +96 -0
- immichpy/client/generated/models/download_response.py +90 -0
- immichpy/client/generated/models/download_response_dto.py +100 -0
- immichpy/client/generated/models/download_update.py +93 -0
- immichpy/client/generated/models/duplicate_detection_config.py +89 -0
- immichpy/client/generated/models/duplicate_response_dto.py +98 -0
- immichpy/client/generated/models/email_notifications_response.py +90 -0
- immichpy/client/generated/models/email_notifications_update.py +90 -0
- immichpy/client/generated/models/exif_response_dto.py +284 -0
- immichpy/client/generated/models/face_dto.py +83 -0
- immichpy/client/generated/models/facial_recognition_config.py +107 -0
- immichpy/client/generated/models/folders_response.py +92 -0
- immichpy/client/generated/models/folders_update.py +85 -0
- immichpy/client/generated/models/image_format.py +34 -0
- immichpy/client/generated/models/job_create_dto.py +83 -0
- immichpy/client/generated/models/job_name.py +87 -0
- immichpy/client/generated/models/job_settings_dto.py +83 -0
- immichpy/client/generated/models/library_response_dto.py +118 -0
- immichpy/client/generated/models/library_stats_response_dto.py +92 -0
- immichpy/client/generated/models/license_key_dto.py +98 -0
- immichpy/client/generated/models/license_response_dto.py +101 -0
- immichpy/client/generated/models/log_level.py +38 -0
- immichpy/client/generated/models/login_credential_dto.py +85 -0
- immichpy/client/generated/models/login_response_dto.py +109 -0
- immichpy/client/generated/models/logout_response_dto.py +85 -0
- immichpy/client/generated/models/machine_learning_availability_checks_dto.py +90 -0
- immichpy/client/generated/models/maintenance_action.py +34 -0
- immichpy/client/generated/models/maintenance_auth_dto.py +82 -0
- immichpy/client/generated/models/maintenance_login_dto.py +82 -0
- immichpy/client/generated/models/manual_job_name.py +38 -0
- immichpy/client/generated/models/map_marker_response_dto.py +111 -0
- immichpy/client/generated/models/map_reverse_geocode_response_dto.py +105 -0
- immichpy/client/generated/models/memories_response.py +92 -0
- immichpy/client/generated/models/memories_update.py +86 -0
- immichpy/client/generated/models/memory_create_dto.py +112 -0
- immichpy/client/generated/models/memory_response_dto.py +142 -0
- immichpy/client/generated/models/memory_search_order.py +35 -0
- immichpy/client/generated/models/memory_statistics_response_dto.py +82 -0
- immichpy/client/generated/models/memory_type.py +33 -0
- immichpy/client/generated/models/memory_update_dto.py +91 -0
- immichpy/client/generated/models/merge_person_dto.py +83 -0
- immichpy/client/generated/models/metadata_search_dto.py +277 -0
- immichpy/client/generated/models/notification_create_dto.py +120 -0
- immichpy/client/generated/models/notification_delete_all_dto.py +83 -0
- immichpy/client/generated/models/notification_dto.py +112 -0
- immichpy/client/generated/models/notification_level.py +36 -0
- immichpy/client/generated/models/notification_type.py +38 -0
- immichpy/client/generated/models/notification_update_all_dto.py +90 -0
- immichpy/client/generated/models/notification_update_dto.py +88 -0
- immichpy/client/generated/models/o_auth_authorize_response_dto.py +82 -0
- immichpy/client/generated/models/o_auth_callback_dto.py +90 -0
- immichpy/client/generated/models/o_auth_config_dto.py +90 -0
- immichpy/client/generated/models/o_auth_token_endpoint_auth_method.py +34 -0
- immichpy/client/generated/models/ocr_config.py +109 -0
- immichpy/client/generated/models/on_this_day_dto.py +86 -0
- immichpy/client/generated/models/onboarding_dto.py +82 -0
- immichpy/client/generated/models/onboarding_response_dto.py +82 -0
- immichpy/client/generated/models/partner_create_dto.py +83 -0
- immichpy/client/generated/models/partner_direction.py +34 -0
- immichpy/client/generated/models/partner_response_dto.py +108 -0
- immichpy/client/generated/models/partner_update_dto.py +82 -0
- immichpy/client/generated/models/people_response.py +92 -0
- immichpy/client/generated/models/people_response_dto.py +104 -0
- immichpy/client/generated/models/people_update.py +85 -0
- immichpy/client/generated/models/people_update_dto.py +96 -0
- immichpy/client/generated/models/people_update_item.py +128 -0
- immichpy/client/generated/models/permission.py +177 -0
- immichpy/client/generated/models/person_create_dto.py +117 -0
- immichpy/client/generated/models/person_response_dto.py +115 -0
- immichpy/client/generated/models/person_statistics_response_dto.py +82 -0
- immichpy/client/generated/models/person_update_dto.py +125 -0
- immichpy/client/generated/models/person_with_faces_response_dto.py +133 -0
- immichpy/client/generated/models/pin_code_change_dto.py +90 -0
- immichpy/client/generated/models/pin_code_reset_dto.py +85 -0
- immichpy/client/generated/models/pin_code_setup_dto.py +82 -0
- immichpy/client/generated/models/places_response_dto.py +100 -0
- immichpy/client/generated/models/plugin_action_response_dto.py +112 -0
- immichpy/client/generated/models/plugin_context.py +35 -0
- immichpy/client/generated/models/plugin_filter_response_dto.py +112 -0
- immichpy/client/generated/models/plugin_response_dto.py +143 -0
- immichpy/client/generated/models/plugin_trigger_type.py +34 -0
- immichpy/client/generated/models/purchase_response.py +88 -0
- immichpy/client/generated/models/purchase_update.py +92 -0
- immichpy/client/generated/models/queue_command.py +37 -0
- immichpy/client/generated/models/queue_command_dto.py +86 -0
- immichpy/client/generated/models/queue_delete_dto.py +85 -0
- immichpy/client/generated/models/queue_job_response_dto.py +93 -0
- immichpy/client/generated/models/queue_job_status.py +38 -0
- immichpy/client/generated/models/queue_name.py +49 -0
- immichpy/client/generated/models/queue_response_dto.py +97 -0
- immichpy/client/generated/models/queue_response_legacy_dto.py +102 -0
- immichpy/client/generated/models/queue_statistics_dto.py +103 -0
- immichpy/client/generated/models/queue_status_legacy_dto.py +85 -0
- immichpy/client/generated/models/queue_update_dto.py +82 -0
- immichpy/client/generated/models/queues_response_legacy_dto.py +244 -0
- immichpy/client/generated/models/random_search_dto.py +234 -0
- immichpy/client/generated/models/ratings_response.py +84 -0
- immichpy/client/generated/models/ratings_update.py +82 -0
- immichpy/client/generated/models/reaction_level.py +34 -0
- immichpy/client/generated/models/reaction_type.py +34 -0
- immichpy/client/generated/models/reverse_geocoding_state_response_dto.py +101 -0
- immichpy/client/generated/models/search_album_response_dto.py +116 -0
- immichpy/client/generated/models/search_asset_response_dto.py +129 -0
- immichpy/client/generated/models/search_explore_item.py +94 -0
- immichpy/client/generated/models/search_explore_response_dto.py +98 -0
- immichpy/client/generated/models/search_facet_count_response_dto.py +85 -0
- immichpy/client/generated/models/search_facet_response_dto.py +103 -0
- immichpy/client/generated/models/search_response_dto.py +104 -0
- immichpy/client/generated/models/search_statistics_response_dto.py +82 -0
- immichpy/client/generated/models/search_suggestion_type.py +38 -0
- immichpy/client/generated/models/server_about_response_dto.py +156 -0
- immichpy/client/generated/models/server_apk_links_dto.py +97 -0
- immichpy/client/generated/models/server_config_dto.py +118 -0
- immichpy/client/generated/models/server_features_dto.py +130 -0
- immichpy/client/generated/models/server_media_types_response_dto.py +90 -0
- immichpy/client/generated/models/server_ping_response.py +87 -0
- immichpy/client/generated/models/server_stats_response_dto.py +119 -0
- immichpy/client/generated/models/server_storage_response_dto.py +108 -0
- immichpy/client/generated/models/server_theme_dto.py +82 -0
- immichpy/client/generated/models/server_version_history_response_dto.py +91 -0
- immichpy/client/generated/models/server_version_response_dto.py +90 -0
- immichpy/client/generated/models/session_create_dto.py +96 -0
- immichpy/client/generated/models/session_create_response_dto.py +120 -0
- immichpy/client/generated/models/session_response_dto.py +117 -0
- immichpy/client/generated/models/session_unlock_dto.py +85 -0
- immichpy/client/generated/models/session_update_dto.py +84 -0
- immichpy/client/generated/models/set_maintenance_mode_dto.py +83 -0
- immichpy/client/generated/models/shared_link_create_dto.py +142 -0
- immichpy/client/generated/models/shared_link_edit_dto.py +134 -0
- immichpy/client/generated/models/shared_link_response_dto.py +173 -0
- immichpy/client/generated/models/shared_link_type.py +34 -0
- immichpy/client/generated/models/shared_links_response.py +92 -0
- immichpy/client/generated/models/shared_links_update.py +85 -0
- immichpy/client/generated/models/sign_up_dto.py +90 -0
- immichpy/client/generated/models/smart_search_dto.py +245 -0
- immichpy/client/generated/models/source_type.py +35 -0
- immichpy/client/generated/models/stack_create_dto.py +86 -0
- immichpy/client/generated/models/stack_response_dto.py +100 -0
- immichpy/client/generated/models/stack_update_dto.py +83 -0
- immichpy/client/generated/models/statistics_search_dto.py +217 -0
- immichpy/client/generated/models/sync_ack_delete_dto.py +83 -0
- immichpy/client/generated/models/sync_ack_dto.py +84 -0
- immichpy/client/generated/models/sync_ack_set_dto.py +83 -0
- immichpy/client/generated/models/sync_album_delete_v1.py +82 -0
- immichpy/client/generated/models/sync_album_to_asset_delete_v1.py +85 -0
- immichpy/client/generated/models/sync_album_to_asset_v1.py +85 -0
- immichpy/client/generated/models/sync_album_user_delete_v1.py +85 -0
- immichpy/client/generated/models/sync_album_user_v1.py +91 -0
- immichpy/client/generated/models/sync_album_v1.py +122 -0
- immichpy/client/generated/models/sync_asset_delete_v1.py +82 -0
- immichpy/client/generated/models/sync_asset_exif_v1.py +296 -0
- immichpy/client/generated/models/sync_asset_face_delete_v1.py +82 -0
- immichpy/client/generated/models/sync_asset_face_v1.py +120 -0
- immichpy/client/generated/models/sync_asset_metadata_delete_v1.py +86 -0
- immichpy/client/generated/models/sync_asset_metadata_v1.py +91 -0
- immichpy/client/generated/models/sync_asset_v1.py +187 -0
- immichpy/client/generated/models/sync_auth_user_v1.py +154 -0
- immichpy/client/generated/models/sync_entity_type.py +79 -0
- immichpy/client/generated/models/sync_memory_asset_delete_v1.py +85 -0
- immichpy/client/generated/models/sync_memory_asset_v1.py +85 -0
- immichpy/client/generated/models/sync_memory_delete_v1.py +82 -0
- immichpy/client/generated/models/sync_memory_v1.py +143 -0
- immichpy/client/generated/models/sync_partner_delete_v1.py +88 -0
- immichpy/client/generated/models/sync_partner_v1.py +90 -0
- immichpy/client/generated/models/sync_person_delete_v1.py +82 -0
- immichpy/client/generated/models/sync_person_v1.py +131 -0
- immichpy/client/generated/models/sync_request_type.py +52 -0
- immichpy/client/generated/models/sync_stack_delete_v1.py +82 -0
- immichpy/client/generated/models/sync_stack_v1.py +101 -0
- immichpy/client/generated/models/sync_stream_dto.py +86 -0
- immichpy/client/generated/models/sync_user_delete_v1.py +82 -0
- immichpy/client/generated/models/sync_user_metadata_delete_v1.py +84 -0
- immichpy/client/generated/models/sync_user_metadata_v1.py +91 -0
- immichpy/client/generated/models/sync_user_v1.py +118 -0
- immichpy/client/generated/models/system_config_backups_dto.py +92 -0
- immichpy/client/generated/models/system_config_dto.py +324 -0
- immichpy/client/generated/models/system_config_f_fmpeg_dto.py +156 -0
- immichpy/client/generated/models/system_config_faces_dto.py +82 -0
- immichpy/client/generated/models/system_config_generated_fullsize_image_dto.py +92 -0
- immichpy/client/generated/models/system_config_generated_image_dto.py +92 -0
- immichpy/client/generated/models/system_config_image_dto.py +124 -0
- immichpy/client/generated/models/system_config_job_dto.py +194 -0
- immichpy/client/generated/models/system_config_library_dto.py +104 -0
- immichpy/client/generated/models/system_config_library_scan_dto.py +85 -0
- immichpy/client/generated/models/system_config_library_watch_dto.py +82 -0
- immichpy/client/generated/models/system_config_logging_dto.py +86 -0
- immichpy/client/generated/models/system_config_machine_learning_dto.py +151 -0
- immichpy/client/generated/models/system_config_map_dto.py +90 -0
- immichpy/client/generated/models/system_config_metadata_dto.py +94 -0
- immichpy/client/generated/models/system_config_new_version_check_dto.py +82 -0
- immichpy/client/generated/models/system_config_nightly_tasks_dto.py +103 -0
- immichpy/client/generated/models/system_config_notifications_dto.py +92 -0
- immichpy/client/generated/models/system_config_o_auth_dto.py +155 -0
- immichpy/client/generated/models/system_config_password_login_dto.py +82 -0
- immichpy/client/generated/models/system_config_reverse_geocoding_dto.py +82 -0
- immichpy/client/generated/models/system_config_server_dto.py +94 -0
- immichpy/client/generated/models/system_config_smtp_dto.py +100 -0
- immichpy/client/generated/models/system_config_smtp_transport_dto.py +107 -0
- immichpy/client/generated/models/system_config_storage_template_dto.py +94 -0
- immichpy/client/generated/models/system_config_template_emails_dto.py +94 -0
- immichpy/client/generated/models/system_config_template_storage_option_dto.py +109 -0
- immichpy/client/generated/models/system_config_templates_dto.py +94 -0
- immichpy/client/generated/models/system_config_theme_dto.py +82 -0
- immichpy/client/generated/models/system_config_trash_dto.py +86 -0
- immichpy/client/generated/models/system_config_user_dto.py +83 -0
- immichpy/client/generated/models/tag_bulk_assets_dto.py +86 -0
- immichpy/client/generated/models/tag_bulk_assets_response_dto.py +82 -0
- immichpy/client/generated/models/tag_create_dto.py +111 -0
- immichpy/client/generated/models/tag_response_dto.py +107 -0
- immichpy/client/generated/models/tag_update_dto.py +87 -0
- immichpy/client/generated/models/tag_upsert_dto.py +82 -0
- immichpy/client/generated/models/tags_response.py +92 -0
- immichpy/client/generated/models/tags_update.py +85 -0
- immichpy/client/generated/models/template_dto.py +82 -0
- immichpy/client/generated/models/template_response_dto.py +83 -0
- immichpy/client/generated/models/test_email_response_dto.py +82 -0
- immichpy/client/generated/models/time_bucket_asset_response_dto.py +195 -0
- immichpy/client/generated/models/time_buckets_response_dto.py +88 -0
- immichpy/client/generated/models/tone_mapping.py +36 -0
- immichpy/client/generated/models/transcode_hw_accel.py +37 -0
- immichpy/client/generated/models/transcode_policy.py +37 -0
- immichpy/client/generated/models/trash_response_dto.py +82 -0
- immichpy/client/generated/models/update_album_dto.py +106 -0
- immichpy/client/generated/models/update_album_user_dto.py +83 -0
- immichpy/client/generated/models/update_asset_dto.py +135 -0
- immichpy/client/generated/models/update_library_dto.py +95 -0
- immichpy/client/generated/models/usage_by_user_dto.py +117 -0
- immichpy/client/generated/models/user_admin_create_dto.py +136 -0
- immichpy/client/generated/models/user_admin_delete_dto.py +82 -0
- immichpy/client/generated/models/user_admin_response_dto.py +176 -0
- immichpy/client/generated/models/user_admin_update_dto.py +141 -0
- immichpy/client/generated/models/user_avatar_color.py +42 -0
- immichpy/client/generated/models/user_license.py +91 -0
- immichpy/client/generated/models/user_metadata_key.py +35 -0
- immichpy/client/generated/models/user_preferences_response_dto.py +188 -0
- immichpy/client/generated/models/user_preferences_update_dto.py +199 -0
- immichpy/client/generated/models/user_response_dto.py +105 -0
- immichpy/client/generated/models/user_status.py +35 -0
- immichpy/client/generated/models/user_update_me_dto.py +98 -0
- immichpy/client/generated/models/validate_access_token_response_dto.py +82 -0
- immichpy/client/generated/models/validate_library_dto.py +93 -0
- immichpy/client/generated/models/validate_library_import_path_response_dto.py +92 -0
- immichpy/client/generated/models/validate_library_response_dto.py +103 -0
- immichpy/client/generated/models/version_check_state_response_dto.py +98 -0
- immichpy/client/generated/models/video_codec.py +36 -0
- immichpy/client/generated/models/video_container.py +36 -0
- immichpy/client/generated/models/workflow_action_item_dto.py +89 -0
- immichpy/client/generated/models/workflow_action_response_dto.py +105 -0
- immichpy/client/generated/models/workflow_create_dto.py +132 -0
- immichpy/client/generated/models/workflow_filter_item_dto.py +89 -0
- immichpy/client/generated/models/workflow_filter_response_dto.py +105 -0
- immichpy/client/generated/models/workflow_response_dto.py +163 -0
- immichpy/client/generated/models/workflow_update_dto.py +128 -0
- immichpy/client/generated/py.typed +0 -0
- immichpy/client/generated/rest.py +199 -0
- immichpy/client/main.py +375 -0
- immichpy/client/types.py +65 -0
- immichpy/client/utils/download.py +249 -0
- immichpy/client/utils/upload.py +462 -0
- immichpy/client/wrapper/__init__.py +0 -0
- immichpy/client/wrapper/assets_api_wrapped.py +254 -0
- immichpy/client/wrapper/download_api_wrapped.py +118 -0
- immichpy/client/wrapper/users_api_wrapped.py +54 -0
- immichpy/py.typed +0 -0
- immichpy-1.6.5.dist-info/METADATA +67 -0
- immichpy-1.6.5.dist-info/RECORD +439 -0
- immichpy-1.6.5.dist-info/WHEEL +4 -0
- immichpy-1.6.5.dist-info/entry_points.txt +3 -0
- immichpy-1.6.5.dist-info/licenses/LICENSE +9 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
"""Generated CLI commands for Albums tag (auto-generated, do not edit)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import typer
|
|
6
|
+
import json
|
|
7
|
+
from typing import Literal, TYPE_CHECKING
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from immichpy import AsyncClient
|
|
11
|
+
|
|
12
|
+
from immichpy.cli.runtime import print_response, run_command, set_nested
|
|
13
|
+
from immichpy.client.generated.models import *
|
|
14
|
+
|
|
15
|
+
app = typer.Typer(
|
|
16
|
+
help="""An album is a collection of assets that can be shared with other users or via shared links.\n\n[link=https://api.immich.app/endpoints/albums]Immich API documentation[/link]"""
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@app.command("add-assets-to-album", deprecated=False, rich_help_panel="API commands")
|
|
21
|
+
def add_assets_to_album(
|
|
22
|
+
ctx: typer.Context,
|
|
23
|
+
id: str = typer.Argument(..., help=""""""),
|
|
24
|
+
ids: list[str] = typer.Option(..., "--ids", help=""""""),
|
|
25
|
+
key: str | None = typer.Option(None, "--key", help=""""""),
|
|
26
|
+
slug: str | None = typer.Option(None, "--slug", help=""""""),
|
|
27
|
+
) -> None:
|
|
28
|
+
"""Add assets to an album
|
|
29
|
+
|
|
30
|
+
[link=https://api.immich.app/endpoints/albums/addAssetsToAlbum]Immich API documentation[/link]
|
|
31
|
+
"""
|
|
32
|
+
kwargs = {}
|
|
33
|
+
json_data = {}
|
|
34
|
+
kwargs["id"] = id
|
|
35
|
+
if key is not None:
|
|
36
|
+
kwargs["key"] = key
|
|
37
|
+
if slug is not None:
|
|
38
|
+
kwargs["slug"] = slug
|
|
39
|
+
set_nested(json_data, ["ids"], ids)
|
|
40
|
+
bulk_ids_dto = BulkIdsDto.model_validate(json_data)
|
|
41
|
+
kwargs["bulk_ids_dto"] = bulk_ids_dto
|
|
42
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
43
|
+
result = run_command(client, client.albums, "add_assets_to_album", ctx, **kwargs)
|
|
44
|
+
print_response(result, ctx)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@app.command("add-assets-to-albums", deprecated=False, rich_help_panel="API commands")
|
|
48
|
+
def add_assets_to_albums(
|
|
49
|
+
ctx: typer.Context,
|
|
50
|
+
album_ids: list[str] = typer.Option(..., "--album-ids", help=""""""),
|
|
51
|
+
asset_ids: list[str] = typer.Option(..., "--asset-ids", help=""""""),
|
|
52
|
+
key: str | None = typer.Option(None, "--key", help=""""""),
|
|
53
|
+
slug: str | None = typer.Option(None, "--slug", help=""""""),
|
|
54
|
+
) -> None:
|
|
55
|
+
"""Add assets to albums
|
|
56
|
+
|
|
57
|
+
[link=https://api.immich.app/endpoints/albums/addAssetsToAlbums]Immich API documentation[/link]
|
|
58
|
+
"""
|
|
59
|
+
kwargs = {}
|
|
60
|
+
json_data = {}
|
|
61
|
+
if key is not None:
|
|
62
|
+
kwargs["key"] = key
|
|
63
|
+
if slug is not None:
|
|
64
|
+
kwargs["slug"] = slug
|
|
65
|
+
set_nested(json_data, ["album_ids"], album_ids)
|
|
66
|
+
set_nested(json_data, ["asset_ids"], asset_ids)
|
|
67
|
+
albums_add_assets_dto = AlbumsAddAssetsDto.model_validate(json_data)
|
|
68
|
+
kwargs["albums_add_assets_dto"] = albums_add_assets_dto
|
|
69
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
70
|
+
result = run_command(client, client.albums, "add_assets_to_albums", ctx, **kwargs)
|
|
71
|
+
print_response(result, ctx)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
@app.command("add-users-to-album", deprecated=False, rich_help_panel="API commands")
|
|
75
|
+
def add_users_to_album(
|
|
76
|
+
ctx: typer.Context,
|
|
77
|
+
id: str = typer.Argument(..., help=""""""),
|
|
78
|
+
album_users: list[str] = typer.Option(
|
|
79
|
+
..., "--album-users", help="""As a JSON string"""
|
|
80
|
+
),
|
|
81
|
+
) -> None:
|
|
82
|
+
"""Share album with users
|
|
83
|
+
|
|
84
|
+
[link=https://api.immich.app/endpoints/albums/addUsersToAlbum]Immich API documentation[/link]
|
|
85
|
+
"""
|
|
86
|
+
kwargs = {}
|
|
87
|
+
json_data = {}
|
|
88
|
+
kwargs["id"] = id
|
|
89
|
+
value_album_users = [json.loads(i) for i in album_users]
|
|
90
|
+
set_nested(json_data, ["album_users"], value_album_users)
|
|
91
|
+
add_users_dto = AddUsersDto.model_validate(json_data)
|
|
92
|
+
kwargs["add_users_dto"] = add_users_dto
|
|
93
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
94
|
+
result = run_command(client, client.albums, "add_users_to_album", ctx, **kwargs)
|
|
95
|
+
print_response(result, ctx)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
@app.command("create-album", deprecated=False, rich_help_panel="API commands")
|
|
99
|
+
def create_album(
|
|
100
|
+
ctx: typer.Context,
|
|
101
|
+
album_name: str = typer.Option(..., "--album-name", help=""""""),
|
|
102
|
+
album_users: list[str] | None = typer.Option(
|
|
103
|
+
None, "--album-users", help="""As a JSON string"""
|
|
104
|
+
),
|
|
105
|
+
asset_ids: list[str] | None = typer.Option(None, "--asset-ids", help=""""""),
|
|
106
|
+
description: str | None = typer.Option(None, "--description", help=""""""),
|
|
107
|
+
) -> None:
|
|
108
|
+
"""Create an album
|
|
109
|
+
|
|
110
|
+
[link=https://api.immich.app/endpoints/albums/createAlbum]Immich API documentation[/link]
|
|
111
|
+
"""
|
|
112
|
+
kwargs = {}
|
|
113
|
+
json_data = {}
|
|
114
|
+
set_nested(json_data, ["album_name"], album_name)
|
|
115
|
+
if album_users is not None:
|
|
116
|
+
value_album_users = [json.loads(i) for i in album_users]
|
|
117
|
+
set_nested(json_data, ["album_users"], value_album_users)
|
|
118
|
+
if asset_ids is not None:
|
|
119
|
+
set_nested(json_data, ["asset_ids"], asset_ids)
|
|
120
|
+
if description is not None:
|
|
121
|
+
set_nested(json_data, ["description"], description)
|
|
122
|
+
create_album_dto = CreateAlbumDto.model_validate(json_data)
|
|
123
|
+
kwargs["create_album_dto"] = create_album_dto
|
|
124
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
125
|
+
result = run_command(client, client.albums, "create_album", ctx, **kwargs)
|
|
126
|
+
print_response(result, ctx)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
@app.command("delete-album", deprecated=False, rich_help_panel="API commands")
|
|
130
|
+
def delete_album(
|
|
131
|
+
ctx: typer.Context,
|
|
132
|
+
id: str = typer.Argument(..., help=""""""),
|
|
133
|
+
) -> None:
|
|
134
|
+
"""Delete an album
|
|
135
|
+
|
|
136
|
+
[link=https://api.immich.app/endpoints/albums/deleteAlbum]Immich API documentation[/link]
|
|
137
|
+
"""
|
|
138
|
+
kwargs = {}
|
|
139
|
+
kwargs["id"] = id
|
|
140
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
141
|
+
result = run_command(client, client.albums, "delete_album", ctx, **kwargs)
|
|
142
|
+
print_response(result, ctx)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
@app.command("get-album-info", deprecated=False, rich_help_panel="API commands")
|
|
146
|
+
def get_album_info(
|
|
147
|
+
ctx: typer.Context,
|
|
148
|
+
id: str = typer.Argument(..., help=""""""),
|
|
149
|
+
key: str | None = typer.Option(None, "--key", help=""""""),
|
|
150
|
+
slug: str | None = typer.Option(None, "--slug", help=""""""),
|
|
151
|
+
without_assets: Literal["true", "false"] | None = typer.Option(
|
|
152
|
+
None, "--without-assets", help=""""""
|
|
153
|
+
),
|
|
154
|
+
) -> None:
|
|
155
|
+
"""Retrieve an album
|
|
156
|
+
|
|
157
|
+
[link=https://api.immich.app/endpoints/albums/getAlbumInfo]Immich API documentation[/link]
|
|
158
|
+
"""
|
|
159
|
+
kwargs = {}
|
|
160
|
+
kwargs["id"] = id
|
|
161
|
+
if key is not None:
|
|
162
|
+
kwargs["key"] = key
|
|
163
|
+
if slug is not None:
|
|
164
|
+
kwargs["slug"] = slug
|
|
165
|
+
if without_assets is not None:
|
|
166
|
+
kwargs["without_assets"] = without_assets.lower() == "true"
|
|
167
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
168
|
+
result = run_command(client, client.albums, "get_album_info", ctx, **kwargs)
|
|
169
|
+
print_response(result, ctx)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
@app.command("get-album-statistics", deprecated=False, rich_help_panel="API commands")
|
|
173
|
+
def get_album_statistics(
|
|
174
|
+
ctx: typer.Context,
|
|
175
|
+
) -> None:
|
|
176
|
+
"""Retrieve album statistics
|
|
177
|
+
|
|
178
|
+
[link=https://api.immich.app/endpoints/albums/getAlbumStatistics]Immich API documentation[/link]
|
|
179
|
+
"""
|
|
180
|
+
kwargs = {}
|
|
181
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
182
|
+
result = run_command(client, client.albums, "get_album_statistics", ctx, **kwargs)
|
|
183
|
+
print_response(result, ctx)
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
@app.command("get-all-albums", deprecated=False, rich_help_panel="API commands")
|
|
187
|
+
def get_all_albums(
|
|
188
|
+
ctx: typer.Context,
|
|
189
|
+
asset_id: str | None = typer.Option(
|
|
190
|
+
None,
|
|
191
|
+
"--asset-id",
|
|
192
|
+
help="""Only returns albums that contain the asset
|
|
193
|
+
Ignores the shared parameter
|
|
194
|
+
undefined: get all albums""",
|
|
195
|
+
),
|
|
196
|
+
shared: Literal["true", "false"] | None = typer.Option(
|
|
197
|
+
None, "--shared", help=""""""
|
|
198
|
+
),
|
|
199
|
+
) -> None:
|
|
200
|
+
"""List all albums
|
|
201
|
+
|
|
202
|
+
[link=https://api.immich.app/endpoints/albums/getAllAlbums]Immich API documentation[/link]
|
|
203
|
+
"""
|
|
204
|
+
kwargs = {}
|
|
205
|
+
if asset_id is not None:
|
|
206
|
+
kwargs["asset_id"] = asset_id
|
|
207
|
+
if shared is not None:
|
|
208
|
+
kwargs["shared"] = shared.lower() == "true"
|
|
209
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
210
|
+
result = run_command(client, client.albums, "get_all_albums", ctx, **kwargs)
|
|
211
|
+
print_response(result, ctx)
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
@app.command(
|
|
215
|
+
"remove-asset-from-album", deprecated=False, rich_help_panel="API commands"
|
|
216
|
+
)
|
|
217
|
+
def remove_asset_from_album(
|
|
218
|
+
ctx: typer.Context,
|
|
219
|
+
id: str = typer.Argument(..., help=""""""),
|
|
220
|
+
ids: list[str] = typer.Option(..., "--ids", help=""""""),
|
|
221
|
+
) -> None:
|
|
222
|
+
"""Remove assets from an album
|
|
223
|
+
|
|
224
|
+
[link=https://api.immich.app/endpoints/albums/removeAssetFromAlbum]Immich API documentation[/link]
|
|
225
|
+
"""
|
|
226
|
+
kwargs = {}
|
|
227
|
+
json_data = {}
|
|
228
|
+
kwargs["id"] = id
|
|
229
|
+
set_nested(json_data, ["ids"], ids)
|
|
230
|
+
bulk_ids_dto = BulkIdsDto.model_validate(json_data)
|
|
231
|
+
kwargs["bulk_ids_dto"] = bulk_ids_dto
|
|
232
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
233
|
+
result = run_command(
|
|
234
|
+
client, client.albums, "remove_asset_from_album", ctx, **kwargs
|
|
235
|
+
)
|
|
236
|
+
print_response(result, ctx)
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
@app.command("remove-user-from-album", deprecated=False, rich_help_panel="API commands")
|
|
240
|
+
def remove_user_from_album(
|
|
241
|
+
ctx: typer.Context,
|
|
242
|
+
id: str = typer.Argument(..., help=""""""),
|
|
243
|
+
user_id: str = typer.Argument(..., help=""""""),
|
|
244
|
+
) -> None:
|
|
245
|
+
"""Remove user from album
|
|
246
|
+
|
|
247
|
+
[link=https://api.immich.app/endpoints/albums/removeUserFromAlbum]Immich API documentation[/link]
|
|
248
|
+
"""
|
|
249
|
+
kwargs = {}
|
|
250
|
+
kwargs["id"] = id
|
|
251
|
+
kwargs["user_id"] = user_id
|
|
252
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
253
|
+
result = run_command(client, client.albums, "remove_user_from_album", ctx, **kwargs)
|
|
254
|
+
print_response(result, ctx)
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
@app.command("update-album-info", deprecated=False, rich_help_panel="API commands")
|
|
258
|
+
def update_album_info(
|
|
259
|
+
ctx: typer.Context,
|
|
260
|
+
id: str = typer.Argument(..., help=""""""),
|
|
261
|
+
album_name: str | None = typer.Option(None, "--album-name", help=""""""),
|
|
262
|
+
album_thumbnail_asset_id: str | None = typer.Option(
|
|
263
|
+
None, "--album-thumbnail-asset-id", help=""""""
|
|
264
|
+
),
|
|
265
|
+
description: str | None = typer.Option(None, "--description", help=""""""),
|
|
266
|
+
is_activity_enabled: Literal["true", "false"] | None = typer.Option(
|
|
267
|
+
None, "--is-activity-enabled", help=""""""
|
|
268
|
+
),
|
|
269
|
+
order: str | None = typer.Option(None, "--order", help=""""""),
|
|
270
|
+
) -> None:
|
|
271
|
+
"""Update an album
|
|
272
|
+
|
|
273
|
+
[link=https://api.immich.app/endpoints/albums/updateAlbumInfo]Immich API documentation[/link]
|
|
274
|
+
"""
|
|
275
|
+
kwargs = {}
|
|
276
|
+
json_data = {}
|
|
277
|
+
kwargs["id"] = id
|
|
278
|
+
if album_name is not None:
|
|
279
|
+
set_nested(json_data, ["album_name"], album_name)
|
|
280
|
+
if album_thumbnail_asset_id is not None:
|
|
281
|
+
set_nested(json_data, ["album_thumbnail_asset_id"], album_thumbnail_asset_id)
|
|
282
|
+
if description is not None:
|
|
283
|
+
set_nested(json_data, ["description"], description)
|
|
284
|
+
if is_activity_enabled is not None:
|
|
285
|
+
set_nested(
|
|
286
|
+
json_data, ["is_activity_enabled"], is_activity_enabled.lower() == "true"
|
|
287
|
+
)
|
|
288
|
+
if order is not None:
|
|
289
|
+
set_nested(json_data, ["order"], order)
|
|
290
|
+
update_album_dto = UpdateAlbumDto.model_validate(json_data)
|
|
291
|
+
kwargs["update_album_dto"] = update_album_dto
|
|
292
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
293
|
+
result = run_command(client, client.albums, "update_album_info", ctx, **kwargs)
|
|
294
|
+
print_response(result, ctx)
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
@app.command("update-album-user", deprecated=False, rich_help_panel="API commands")
|
|
298
|
+
def update_album_user(
|
|
299
|
+
ctx: typer.Context,
|
|
300
|
+
id: str = typer.Argument(..., help=""""""),
|
|
301
|
+
user_id: str = typer.Argument(..., help=""""""),
|
|
302
|
+
role: str = typer.Option(..., "--role", help=""""""),
|
|
303
|
+
) -> None:
|
|
304
|
+
"""Update user role
|
|
305
|
+
|
|
306
|
+
[link=https://api.immich.app/endpoints/albums/updateAlbumUser]Immich API documentation[/link]
|
|
307
|
+
"""
|
|
308
|
+
kwargs = {}
|
|
309
|
+
json_data = {}
|
|
310
|
+
kwargs["id"] = id
|
|
311
|
+
kwargs["user_id"] = user_id
|
|
312
|
+
set_nested(json_data, ["role"], role)
|
|
313
|
+
update_album_user_dto = UpdateAlbumUserDto.model_validate(json_data)
|
|
314
|
+
kwargs["update_album_user_dto"] = update_album_user_dto
|
|
315
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
316
|
+
result = run_command(client, client.albums, "update_album_user", ctx, **kwargs)
|
|
317
|
+
print_response(result, ctx)
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"""Generated CLI commands for API keys tag (auto-generated, do not edit)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import typer
|
|
6
|
+
from typing import TYPE_CHECKING
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from immichpy import AsyncClient
|
|
10
|
+
|
|
11
|
+
from immichpy.cli.runtime import print_response, run_command, set_nested
|
|
12
|
+
from immichpy.client.generated.models import *
|
|
13
|
+
|
|
14
|
+
app = typer.Typer(
|
|
15
|
+
help="""An api key can be used to programmatically access the Immich API.\n\n[link=https://api.immich.app/endpoints/api-keys]Immich API documentation[/link]"""
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@app.command("create-api-key", deprecated=False, rich_help_panel="API commands")
|
|
20
|
+
def create_api_key(
|
|
21
|
+
ctx: typer.Context,
|
|
22
|
+
name: str | None = typer.Option(None, "--name", help=""""""),
|
|
23
|
+
permissions: list[Permission] = typer.Option(..., "--permissions", help=""""""),
|
|
24
|
+
) -> None:
|
|
25
|
+
"""Create an API key
|
|
26
|
+
|
|
27
|
+
[link=https://api.immich.app/endpoints/api-keys/createApiKey]Immich API documentation[/link]
|
|
28
|
+
"""
|
|
29
|
+
kwargs = {}
|
|
30
|
+
json_data = {}
|
|
31
|
+
if name is not None:
|
|
32
|
+
set_nested(json_data, ["name"], name)
|
|
33
|
+
set_nested(json_data, ["permissions"], permissions)
|
|
34
|
+
api_key_create_dto = APIKeyCreateDto.model_validate(json_data)
|
|
35
|
+
kwargs["api_key_create_dto"] = api_key_create_dto
|
|
36
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
37
|
+
result = run_command(client, client.api_keys, "create_api_key", ctx, **kwargs)
|
|
38
|
+
print_response(result, ctx)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@app.command("delete-api-key", deprecated=False, rich_help_panel="API commands")
|
|
42
|
+
def delete_api_key(
|
|
43
|
+
ctx: typer.Context,
|
|
44
|
+
id: str = typer.Argument(..., help=""""""),
|
|
45
|
+
) -> None:
|
|
46
|
+
"""Delete an API key
|
|
47
|
+
|
|
48
|
+
[link=https://api.immich.app/endpoints/api-keys/deleteApiKey]Immich API documentation[/link]
|
|
49
|
+
"""
|
|
50
|
+
kwargs = {}
|
|
51
|
+
kwargs["id"] = id
|
|
52
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
53
|
+
result = run_command(client, client.api_keys, "delete_api_key", ctx, **kwargs)
|
|
54
|
+
print_response(result, ctx)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@app.command("get-api-key", deprecated=False, rich_help_panel="API commands")
|
|
58
|
+
def get_api_key(
|
|
59
|
+
ctx: typer.Context,
|
|
60
|
+
id: str = typer.Argument(..., help=""""""),
|
|
61
|
+
) -> None:
|
|
62
|
+
"""Retrieve an API key
|
|
63
|
+
|
|
64
|
+
[link=https://api.immich.app/endpoints/api-keys/getApiKey]Immich API documentation[/link]
|
|
65
|
+
"""
|
|
66
|
+
kwargs = {}
|
|
67
|
+
kwargs["id"] = id
|
|
68
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
69
|
+
result = run_command(client, client.api_keys, "get_api_key", ctx, **kwargs)
|
|
70
|
+
print_response(result, ctx)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
@app.command("get-api-keys", deprecated=False, rich_help_panel="API commands")
|
|
74
|
+
def get_api_keys(
|
|
75
|
+
ctx: typer.Context,
|
|
76
|
+
) -> None:
|
|
77
|
+
"""List all API keys
|
|
78
|
+
|
|
79
|
+
[link=https://api.immich.app/endpoints/api-keys/getApiKeys]Immich API documentation[/link]
|
|
80
|
+
"""
|
|
81
|
+
kwargs = {}
|
|
82
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
83
|
+
result = run_command(client, client.api_keys, "get_api_keys", ctx, **kwargs)
|
|
84
|
+
print_response(result, ctx)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@app.command("get-my-api-key", deprecated=False, rich_help_panel="API commands")
|
|
88
|
+
def get_my_api_key(
|
|
89
|
+
ctx: typer.Context,
|
|
90
|
+
) -> None:
|
|
91
|
+
"""Retrieve the current API key
|
|
92
|
+
|
|
93
|
+
[link=https://api.immich.app/endpoints/api-keys/getMyApiKey]Immich API documentation[/link]
|
|
94
|
+
"""
|
|
95
|
+
kwargs = {}
|
|
96
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
97
|
+
result = run_command(client, client.api_keys, "get_my_api_key", ctx, **kwargs)
|
|
98
|
+
print_response(result, ctx)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
@app.command("update-api-key", deprecated=False, rich_help_panel="API commands")
|
|
102
|
+
def update_api_key(
|
|
103
|
+
ctx: typer.Context,
|
|
104
|
+
id: str = typer.Argument(..., help=""""""),
|
|
105
|
+
name: str | None = typer.Option(None, "--name", help=""""""),
|
|
106
|
+
permissions: list[Permission] | None = typer.Option(
|
|
107
|
+
None, "--permissions", help=""""""
|
|
108
|
+
),
|
|
109
|
+
) -> None:
|
|
110
|
+
"""Update an API key
|
|
111
|
+
|
|
112
|
+
[link=https://api.immich.app/endpoints/api-keys/updateApiKey]Immich API documentation[/link]
|
|
113
|
+
"""
|
|
114
|
+
kwargs = {}
|
|
115
|
+
json_data = {}
|
|
116
|
+
kwargs["id"] = id
|
|
117
|
+
if name is not None:
|
|
118
|
+
set_nested(json_data, ["name"], name)
|
|
119
|
+
if permissions is not None:
|
|
120
|
+
set_nested(json_data, ["permissions"], permissions)
|
|
121
|
+
api_key_update_dto = APIKeyUpdateDto.model_validate(json_data)
|
|
122
|
+
kwargs["api_key_update_dto"] = api_key_update_dto
|
|
123
|
+
client: "AsyncClient" = ctx.obj["client"]
|
|
124
|
+
result = run_command(client, client.api_keys, "update_api_key", ctx, **kwargs)
|
|
125
|
+
print_response(result, ctx)
|