[TASK] (untested) Updated API to work with Immich 3.0

This commit is contained in:
2026-07-03 20:13:42 +02:00
parent 7ed8d7984c
commit d50345fc64
839 changed files with 39747 additions and 18816 deletions
@@ -6,18 +6,13 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
# import models into model package
from generated.immich.openapi_client.models.api_key_create_dto import APIKeyCreateDto
from generated.immich.openapi_client.models.api_key_create_response_dto import APIKeyCreateResponseDto
from generated.immich.openapi_client.models.api_key_response_dto import APIKeyResponseDto
from generated.immich.openapi_client.models.api_key_update_dto import APIKeyUpdateDto
from generated.immich.openapi_client.models.activity_create_dto import ActivityCreateDto
from generated.immich.openapi_client.models.activity_response_dto import ActivityResponseDto
from generated.immich.openapi_client.models.activity_statistics_response_dto import ActivityStatisticsResponseDto
@@ -29,22 +24,33 @@ from generated.immich.openapi_client.models.album_user_add_dto import AlbumUserA
from generated.immich.openapi_client.models.album_user_create_dto import AlbumUserCreateDto
from generated.immich.openapi_client.models.album_user_response_dto import AlbumUserResponseDto
from generated.immich.openapi_client.models.album_user_role import AlbumUserRole
from generated.immich.openapi_client.models.all_job_status_response_dto import AllJobStatusResponseDto
from generated.immich.openapi_client.models.albums_add_assets_dto import AlbumsAddAssetsDto
from generated.immich.openapi_client.models.albums_add_assets_response_dto import AlbumsAddAssetsResponseDto
from generated.immich.openapi_client.models.albums_response import AlbumsResponse
from generated.immich.openapi_client.models.albums_update import AlbumsUpdate
from generated.immich.openapi_client.models.api_key_create_dto import ApiKeyCreateDto
from generated.immich.openapi_client.models.api_key_create_response_dto import ApiKeyCreateResponseDto
from generated.immich.openapi_client.models.api_key_response_dto import ApiKeyResponseDto
from generated.immich.openapi_client.models.api_key_update_dto import ApiKeyUpdateDto
from generated.immich.openapi_client.models.asset_bulk_delete_dto import AssetBulkDeleteDto
from generated.immich.openapi_client.models.asset_bulk_update_dto import AssetBulkUpdateDto
from generated.immich.openapi_client.models.asset_bulk_upload_check_dto import AssetBulkUploadCheckDto
from generated.immich.openapi_client.models.asset_bulk_upload_check_item import AssetBulkUploadCheckItem
from generated.immich.openapi_client.models.asset_bulk_upload_check_response_dto import AssetBulkUploadCheckResponseDto
from generated.immich.openapi_client.models.asset_bulk_upload_check_result import AssetBulkUploadCheckResult
from generated.immich.openapi_client.models.asset_delta_sync_dto import AssetDeltaSyncDto
from generated.immich.openapi_client.models.asset_delta_sync_response_dto import AssetDeltaSyncResponseDto
from generated.immich.openapi_client.models.asset_copy_dto import AssetCopyDto
from generated.immich.openapi_client.models.asset_edit_action import AssetEditAction
from generated.immich.openapi_client.models.asset_edit_action_item_dto import AssetEditActionItemDto
from generated.immich.openapi_client.models.asset_edit_action_item_dto_parameters import AssetEditActionItemDtoParameters
from generated.immich.openapi_client.models.asset_edit_action_item_response_dto import AssetEditActionItemResponseDto
from generated.immich.openapi_client.models.asset_edits_create_dto import AssetEditsCreateDto
from generated.immich.openapi_client.models.asset_edits_response_dto import AssetEditsResponseDto
from generated.immich.openapi_client.models.asset_face_create_dto import AssetFaceCreateDto
from generated.immich.openapi_client.models.asset_face_delete_dto import AssetFaceDeleteDto
from generated.immich.openapi_client.models.asset_face_response_dto import AssetFaceResponseDto
from generated.immich.openapi_client.models.asset_face_update_dto import AssetFaceUpdateDto
from generated.immich.openapi_client.models.asset_face_update_item import AssetFaceUpdateItem
from generated.immich.openapi_client.models.asset_face_without_person_response_dto import AssetFaceWithoutPersonResponseDto
from generated.immich.openapi_client.models.asset_full_sync_dto import AssetFullSyncDto
from generated.immich.openapi_client.models.asset_id_error_reason import AssetIdErrorReason
from generated.immich.openapi_client.models.asset_ids_dto import AssetIdsDto
from generated.immich.openapi_client.models.asset_ids_response_dto import AssetIdsResponseDto
from generated.immich.openapi_client.models.asset_job_name import AssetJobName
@@ -52,81 +58,121 @@ from generated.immich.openapi_client.models.asset_jobs_dto import AssetJobsDto
from generated.immich.openapi_client.models.asset_media_response_dto import AssetMediaResponseDto
from generated.immich.openapi_client.models.asset_media_size import AssetMediaSize
from generated.immich.openapi_client.models.asset_media_status import AssetMediaStatus
from generated.immich.openapi_client.models.asset_metadata_bulk_delete_dto import AssetMetadataBulkDeleteDto
from generated.immich.openapi_client.models.asset_metadata_bulk_delete_item_dto import AssetMetadataBulkDeleteItemDto
from generated.immich.openapi_client.models.asset_metadata_bulk_response_dto import AssetMetadataBulkResponseDto
from generated.immich.openapi_client.models.asset_metadata_bulk_upsert_dto import AssetMetadataBulkUpsertDto
from generated.immich.openapi_client.models.asset_metadata_bulk_upsert_item_dto import AssetMetadataBulkUpsertItemDto
from generated.immich.openapi_client.models.asset_metadata_response_dto import AssetMetadataResponseDto
from generated.immich.openapi_client.models.asset_metadata_upsert_dto import AssetMetadataUpsertDto
from generated.immich.openapi_client.models.asset_metadata_upsert_item_dto import AssetMetadataUpsertItemDto
from generated.immich.openapi_client.models.asset_ocr_response_dto import AssetOcrResponseDto
from generated.immich.openapi_client.models.asset_order import AssetOrder
from generated.immich.openapi_client.models.asset_order_by import AssetOrderBy
from generated.immich.openapi_client.models.asset_reject_reason import AssetRejectReason
from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
from generated.immich.openapi_client.models.asset_stack_response_dto import AssetStackResponseDto
from generated.immich.openapi_client.models.asset_stats_response_dto import AssetStatsResponseDto
from generated.immich.openapi_client.models.asset_type_enum import AssetTypeEnum
from generated.immich.openapi_client.models.asset_upload_action import AssetUploadAction
from generated.immich.openapi_client.models.asset_visibility import AssetVisibility
from generated.immich.openapi_client.models.audio_codec import AudioCodec
from generated.immich.openapi_client.models.avatar_response import AvatarResponse
from generated.immich.openapi_client.models.auth_status_response_dto import AuthStatusResponseDto
from generated.immich.openapi_client.models.avatar_update import AvatarUpdate
from generated.immich.openapi_client.models.bulk_id_error_reason import BulkIdErrorReason
from generated.immich.openapi_client.models.bulk_id_response_dto import BulkIdResponseDto
from generated.immich.openapi_client.models.bulk_ids_dto import BulkIdsDto
from generated.immich.openapi_client.models.clip_config import CLIPConfig
from generated.immich.openapi_client.models.cq_mode import CQMode
from generated.immich.openapi_client.models.calendar_heatmap_response_dto import CalendarHeatmapResponseDto
from generated.immich.openapi_client.models.calendar_heatmap_response_dto_series_inner import CalendarHeatmapResponseDtoSeriesInner
from generated.immich.openapi_client.models.calendar_heatmap_type import CalendarHeatmapType
from generated.immich.openapi_client.models.cast_response import CastResponse
from generated.immich.openapi_client.models.cast_update import CastUpdate
from generated.immich.openapi_client.models.change_password_dto import ChangePasswordDto
from generated.immich.openapi_client.models.check_existing_assets_dto import CheckExistingAssetsDto
from generated.immich.openapi_client.models.check_existing_assets_response_dto import CheckExistingAssetsResponseDto
from generated.immich.openapi_client.models.colorspace import Colorspace
from generated.immich.openapi_client.models.contributor_count_response_dto import ContributorCountResponseDto
from generated.immich.openapi_client.models.create_album_dto import CreateAlbumDto
from generated.immich.openapi_client.models.create_library_dto import CreateLibraryDto
from generated.immich.openapi_client.models.create_profile_image_response_dto import CreateProfileImageResponseDto
from generated.immich.openapi_client.models.crop_parameters import CropParameters
from generated.immich.openapi_client.models.database_backup_config import DatabaseBackupConfig
from generated.immich.openapi_client.models.database_backup_delete_dto import DatabaseBackupDeleteDto
from generated.immich.openapi_client.models.database_backup_dto import DatabaseBackupDto
from generated.immich.openapi_client.models.database_backup_list_response_dto import DatabaseBackupListResponseDto
from generated.immich.openapi_client.models.download_archive_dto import DownloadArchiveDto
from generated.immich.openapi_client.models.download_archive_info import DownloadArchiveInfo
from generated.immich.openapi_client.models.download_info_dto import DownloadInfoDto
from generated.immich.openapi_client.models.download_response import DownloadResponse
from generated.immich.openapi_client.models.download_response_dto import DownloadResponseDto
from generated.immich.openapi_client.models.download_update import DownloadUpdate
from generated.immich.openapi_client.models.duplicate_detection_config import DuplicateDetectionConfig
from generated.immich.openapi_client.models.duplicate_resolve_dto import DuplicateResolveDto
from generated.immich.openapi_client.models.duplicate_resolve_group_dto import DuplicateResolveGroupDto
from generated.immich.openapi_client.models.duplicate_response_dto import DuplicateResponseDto
from generated.immich.openapi_client.models.email_notifications_response import EmailNotificationsResponse
from generated.immich.openapi_client.models.email_notifications_update import EmailNotificationsUpdate
from generated.immich.openapi_client.models.exif_response_dto import ExifResponseDto
from generated.immich.openapi_client.models.face_dto import FaceDto
from generated.immich.openapi_client.models.facial_recognition_config import FacialRecognitionConfig
from generated.immich.openapi_client.models.file_checksum_dto import FileChecksumDto
from generated.immich.openapi_client.models.file_checksum_response_dto import FileChecksumResponseDto
from generated.immich.openapi_client.models.file_report_dto import FileReportDto
from generated.immich.openapi_client.models.file_report_fix_dto import FileReportFixDto
from generated.immich.openapi_client.models.file_report_item_dto import FileReportItemDto
from generated.immich.openapi_client.models.folders_response import FoldersResponse
from generated.immich.openapi_client.models.folders_update import FoldersUpdate
from generated.immich.openapi_client.models.image_format import ImageFormat
from generated.immich.openapi_client.models.job_command import JobCommand
from generated.immich.openapi_client.models.job_command_dto import JobCommandDto
from generated.immich.openapi_client.models.job_counts_dto import JobCountsDto
from generated.immich.openapi_client.models.integrity_report import IntegrityReport
from generated.immich.openapi_client.models.integrity_report_response_dto import IntegrityReportResponseDto
from generated.immich.openapi_client.models.integrity_report_response_dto_items_inner import IntegrityReportResponseDtoItemsInner
from generated.immich.openapi_client.models.integrity_report_summary_response_dto import IntegrityReportSummaryResponseDto
from generated.immich.openapi_client.models.job_create_dto import JobCreateDto
from generated.immich.openapi_client.models.job_name import JobName
from generated.immich.openapi_client.models.job_settings_dto import JobSettingsDto
from generated.immich.openapi_client.models.job_status_dto import JobStatusDto
from generated.immich.openapi_client.models.library_response_dto import LibraryResponseDto
from generated.immich.openapi_client.models.library_stats_response_dto import LibraryStatsResponseDto
from generated.immich.openapi_client.models.license_key_dto import LicenseKeyDto
from generated.immich.openapi_client.models.license_response_dto import LicenseResponseDto
from generated.immich.openapi_client.models.log_level import LogLevel
from generated.immich.openapi_client.models.login_credential_dto import LoginCredentialDto
from generated.immich.openapi_client.models.login_response_dto import LoginResponseDto
from generated.immich.openapi_client.models.logout_response_dto import LogoutResponseDto
from generated.immich.openapi_client.models.machine_learning_availability_checks_dto import MachineLearningAvailabilityChecksDto
from generated.immich.openapi_client.models.maintenance_action import MaintenanceAction
from generated.immich.openapi_client.models.maintenance_auth_dto import MaintenanceAuthDto
from generated.immich.openapi_client.models.maintenance_detect_install_response_dto import MaintenanceDetectInstallResponseDto
from generated.immich.openapi_client.models.maintenance_detect_install_storage_folder_dto import MaintenanceDetectInstallStorageFolderDto
from generated.immich.openapi_client.models.maintenance_login_dto import MaintenanceLoginDto
from generated.immich.openapi_client.models.maintenance_status_response_dto import MaintenanceStatusResponseDto
from generated.immich.openapi_client.models.manual_job_name import ManualJobName
from generated.immich.openapi_client.models.map_marker_response_dto import MapMarkerResponseDto
from generated.immich.openapi_client.models.map_reverse_geocode_response_dto import MapReverseGeocodeResponseDto
from generated.immich.openapi_client.models.memories_response import MemoriesResponse
from generated.immich.openapi_client.models.memories_update import MemoriesUpdate
from generated.immich.openapi_client.models.memory_create_dto import MemoryCreateDto
from generated.immich.openapi_client.models.memory_lane_response_dto import MemoryLaneResponseDto
from generated.immich.openapi_client.models.memory_response_dto import MemoryResponseDto
from generated.immich.openapi_client.models.memory_search_order import MemorySearchOrder
from generated.immich.openapi_client.models.memory_statistics_response_dto import MemoryStatisticsResponseDto
from generated.immich.openapi_client.models.memory_type import MemoryType
from generated.immich.openapi_client.models.memory_update_dto import MemoryUpdateDto
from generated.immich.openapi_client.models.merge_person_dto import MergePersonDto
from generated.immich.openapi_client.models.metadata_search_dto import MetadataSearchDto
from generated.immich.openapi_client.models.mirror_axis import MirrorAxis
from generated.immich.openapi_client.models.mirror_parameters import MirrorParameters
from generated.immich.openapi_client.models.notification_create_dto import NotificationCreateDto
from generated.immich.openapi_client.models.notification_delete_all_dto import NotificationDeleteAllDto
from generated.immich.openapi_client.models.notification_dto import NotificationDto
from generated.immich.openapi_client.models.notification_level import NotificationLevel
from generated.immich.openapi_client.models.notification_type import NotificationType
from generated.immich.openapi_client.models.notification_update_all_dto import NotificationUpdateAllDto
from generated.immich.openapi_client.models.notification_update_dto import NotificationUpdateDto
from generated.immich.openapi_client.models.o_auth_authorize_response_dto import OAuthAuthorizeResponseDto
from generated.immich.openapi_client.models.o_auth_callback_dto import OAuthCallbackDto
from generated.immich.openapi_client.models.o_auth_config_dto import OAuthConfigDto
from generated.immich.openapi_client.models.o_auth_token_endpoint_auth_method import OAuthTokenEndpointAuthMethod
from generated.immich.openapi_client.models.ocr_config import OcrConfig
from generated.immich.openapi_client.models.on_this_day_dto import OnThisDayDto
from generated.immich.openapi_client.models.onboarding_dto import OnboardingDto
from generated.immich.openapi_client.models.onboarding_response_dto import OnboardingResponseDto
from generated.immich.openapi_client.models.partner_create_dto import PartnerCreateDto
from generated.immich.openapi_client.models.partner_direction import PartnerDirection
from generated.immich.openapi_client.models.partner_response_dto import PartnerResponseDto
from generated.immich.openapi_client.models.path_entity_type import PathEntityType
from generated.immich.openapi_client.models.path_type import PathType
from generated.immich.openapi_client.models.partner_update_dto import PartnerUpdateDto
from generated.immich.openapi_client.models.people_response import PeopleResponse
from generated.immich.openapi_client.models.people_response_dto import PeopleResponseDto
from generated.immich.openapi_client.models.people_update import PeopleUpdate
@@ -137,17 +183,40 @@ from generated.immich.openapi_client.models.person_create_dto import PersonCreat
from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
from generated.immich.openapi_client.models.person_statistics_response_dto import PersonStatisticsResponseDto
from generated.immich.openapi_client.models.person_update_dto import PersonUpdateDto
from generated.immich.openapi_client.models.person_with_faces_response_dto import PersonWithFacesResponseDto
from generated.immich.openapi_client.models.pin_code_change_dto import PinCodeChangeDto
from generated.immich.openapi_client.models.pin_code_reset_dto import PinCodeResetDto
from generated.immich.openapi_client.models.pin_code_setup_dto import PinCodeSetupDto
from generated.immich.openapi_client.models.places_response_dto import PlacesResponseDto
from generated.immich.openapi_client.models.plugin_method_response_dto import PluginMethodResponseDto
from generated.immich.openapi_client.models.plugin_response_dto import PluginResponseDto
from generated.immich.openapi_client.models.plugin_template_response_dto import PluginTemplateResponseDto
from generated.immich.openapi_client.models.plugin_template_step_response_dto import PluginTemplateStepResponseDto
from generated.immich.openapi_client.models.purchase_response import PurchaseResponse
from generated.immich.openapi_client.models.purchase_update import PurchaseUpdate
from generated.immich.openapi_client.models.queue_status_dto import QueueStatusDto
from generated.immich.openapi_client.models.queue_command import QueueCommand
from generated.immich.openapi_client.models.queue_command_dto import QueueCommandDto
from generated.immich.openapi_client.models.queue_delete_dto import QueueDeleteDto
from generated.immich.openapi_client.models.queue_job_response_dto import QueueJobResponseDto
from generated.immich.openapi_client.models.queue_job_status import QueueJobStatus
from generated.immich.openapi_client.models.queue_name import QueueName
from generated.immich.openapi_client.models.queue_response_dto import QueueResponseDto
from generated.immich.openapi_client.models.queue_response_legacy_dto import QueueResponseLegacyDto
from generated.immich.openapi_client.models.queue_statistics_dto import QueueStatisticsDto
from generated.immich.openapi_client.models.queue_status_legacy_dto import QueueStatusLegacyDto
from generated.immich.openapi_client.models.queue_update_dto import QueueUpdateDto
from generated.immich.openapi_client.models.queues_response_legacy_dto import QueuesResponseLegacyDto
from generated.immich.openapi_client.models.random_search_dto import RandomSearchDto
from generated.immich.openapi_client.models.ratings_response import RatingsResponse
from generated.immich.openapi_client.models.ratings_update import RatingsUpdate
from generated.immich.openapi_client.models.reaction_level import ReactionLevel
from generated.immich.openapi_client.models.reaction_type import ReactionType
from generated.immich.openapi_client.models.recently_added_response import RecentlyAddedResponse
from generated.immich.openapi_client.models.recently_added_update import RecentlyAddedUpdate
from generated.immich.openapi_client.models.release_channel import ReleaseChannel
from generated.immich.openapi_client.models.release_event_v1 import ReleaseEventV1
from generated.immich.openapi_client.models.release_type import ReleaseType
from generated.immich.openapi_client.models.reverse_geocoding_state_response_dto import ReverseGeocodingStateResponseDto
from generated.immich.openapi_client.models.rotate_parameters import RotateParameters
from generated.immich.openapi_client.models.search_album_response_dto import SearchAlbumResponseDto
from generated.immich.openapi_client.models.search_asset_response_dto import SearchAssetResponseDto
from generated.immich.openapi_client.models.search_explore_item import SearchExploreItem
@@ -155,20 +224,27 @@ from generated.immich.openapi_client.models.search_explore_response_dto import S
from generated.immich.openapi_client.models.search_facet_count_response_dto import SearchFacetCountResponseDto
from generated.immich.openapi_client.models.search_facet_response_dto import SearchFacetResponseDto
from generated.immich.openapi_client.models.search_response_dto import SearchResponseDto
from generated.immich.openapi_client.models.search_statistics_response_dto import SearchStatisticsResponseDto
from generated.immich.openapi_client.models.search_suggestion_type import SearchSuggestionType
from generated.immich.openapi_client.models.server_about_response_dto import ServerAboutResponseDto
from generated.immich.openapi_client.models.server_apk_links_dto import ServerApkLinksDto
from generated.immich.openapi_client.models.server_config_dto import ServerConfigDto
from generated.immich.openapi_client.models.server_features_dto import ServerFeaturesDto
from generated.immich.openapi_client.models.server_media_types_response_dto import ServerMediaTypesResponseDto
from generated.immich.openapi_client.models.server_ping_response import ServerPingResponse
from generated.immich.openapi_client.models.server_stats_response_dto import ServerStatsResponseDto
from generated.immich.openapi_client.models.server_storage_response_dto import ServerStorageResponseDto
from generated.immich.openapi_client.models.server_theme_dto import ServerThemeDto
from generated.immich.openapi_client.models.server_version_history_response_dto import ServerVersionHistoryResponseDto
from generated.immich.openapi_client.models.server_version_response_dto import ServerVersionResponseDto
from generated.immich.openapi_client.models.session_create_dto import SessionCreateDto
from generated.immich.openapi_client.models.session_create_response_dto import SessionCreateResponseDto
from generated.immich.openapi_client.models.session_response_dto import SessionResponseDto
from generated.immich.openapi_client.models.session_unlock_dto import SessionUnlockDto
from generated.immich.openapi_client.models.session_update_dto import SessionUpdateDto
from generated.immich.openapi_client.models.set_maintenance_mode_dto import SetMaintenanceModeDto
from generated.immich.openapi_client.models.shared_link_create_dto import SharedLinkCreateDto
from generated.immich.openapi_client.models.shared_link_edit_dto import SharedLinkEditDto
from generated.immich.openapi_client.models.shared_link_login_dto import SharedLinkLoginDto
from generated.immich.openapi_client.models.shared_link_response_dto import SharedLinkResponseDto
from generated.immich.openapi_client.models.shared_link_type import SharedLinkType
from generated.immich.openapi_client.models.shared_links_response import SharedLinksResponse
@@ -179,26 +255,60 @@ from generated.immich.openapi_client.models.source_type import SourceType
from generated.immich.openapi_client.models.stack_create_dto import StackCreateDto
from generated.immich.openapi_client.models.stack_response_dto import StackResponseDto
from generated.immich.openapi_client.models.stack_update_dto import StackUpdateDto
from generated.immich.openapi_client.models.statistics_search_dto import StatisticsSearchDto
from generated.immich.openapi_client.models.storage_folder import StorageFolder
from generated.immich.openapi_client.models.sync_ack_delete_dto import SyncAckDeleteDto
from generated.immich.openapi_client.models.sync_ack_dto import SyncAckDto
from generated.immich.openapi_client.models.sync_ack_set_dto import SyncAckSetDto
from generated.immich.openapi_client.models.sync_album_delete_v1 import SyncAlbumDeleteV1
from generated.immich.openapi_client.models.sync_album_to_asset_delete_v1 import SyncAlbumToAssetDeleteV1
from generated.immich.openapi_client.models.sync_album_to_asset_v1 import SyncAlbumToAssetV1
from generated.immich.openapi_client.models.sync_album_user_delete_v1 import SyncAlbumUserDeleteV1
from generated.immich.openapi_client.models.sync_album_user_v1 import SyncAlbumUserV1
from generated.immich.openapi_client.models.sync_album_v1 import SyncAlbumV1
from generated.immich.openapi_client.models.sync_album_v2 import SyncAlbumV2
from generated.immich.openapi_client.models.sync_asset_delete_v1 import SyncAssetDeleteV1
from generated.immich.openapi_client.models.sync_asset_edit_delete_v1 import SyncAssetEditDeleteV1
from generated.immich.openapi_client.models.sync_asset_edit_v1 import SyncAssetEditV1
from generated.immich.openapi_client.models.sync_asset_exif_v1 import SyncAssetExifV1
from generated.immich.openapi_client.models.sync_asset_face_delete_v1 import SyncAssetFaceDeleteV1
from generated.immich.openapi_client.models.sync_asset_face_v1 import SyncAssetFaceV1
from generated.immich.openapi_client.models.sync_asset_face_v2 import SyncAssetFaceV2
from generated.immich.openapi_client.models.sync_asset_metadata_delete_v1 import SyncAssetMetadataDeleteV1
from generated.immich.openapi_client.models.sync_asset_metadata_v1 import SyncAssetMetadataV1
from generated.immich.openapi_client.models.sync_asset_ocr_delete_v1 import SyncAssetOcrDeleteV1
from generated.immich.openapi_client.models.sync_asset_ocr_v1 import SyncAssetOcrV1
from generated.immich.openapi_client.models.sync_asset_v1 import SyncAssetV1
from generated.immich.openapi_client.models.sync_asset_v2 import SyncAssetV2
from generated.immich.openapi_client.models.sync_auth_user_v1 import SyncAuthUserV1
from generated.immich.openapi_client.models.sync_entity_type import SyncEntityType
from generated.immich.openapi_client.models.sync_memory_asset_delete_v1 import SyncMemoryAssetDeleteV1
from generated.immich.openapi_client.models.sync_memory_asset_v1 import SyncMemoryAssetV1
from generated.immich.openapi_client.models.sync_memory_delete_v1 import SyncMemoryDeleteV1
from generated.immich.openapi_client.models.sync_memory_v1 import SyncMemoryV1
from generated.immich.openapi_client.models.sync_partner_delete_v1 import SyncPartnerDeleteV1
from generated.immich.openapi_client.models.sync_partner_v1 import SyncPartnerV1
from generated.immich.openapi_client.models.sync_person_delete_v1 import SyncPersonDeleteV1
from generated.immich.openapi_client.models.sync_person_v1 import SyncPersonV1
from generated.immich.openapi_client.models.sync_request_type import SyncRequestType
from generated.immich.openapi_client.models.sync_stack_delete_v1 import SyncStackDeleteV1
from generated.immich.openapi_client.models.sync_stack_v1 import SyncStackV1
from generated.immich.openapi_client.models.sync_stream_dto import SyncStreamDto
from generated.immich.openapi_client.models.sync_user_delete_v1 import SyncUserDeleteV1
from generated.immich.openapi_client.models.sync_user_metadata_delete_v1 import SyncUserMetadataDeleteV1
from generated.immich.openapi_client.models.sync_user_metadata_v1 import SyncUserMetadataV1
from generated.immich.openapi_client.models.sync_user_v1 import SyncUserV1
from generated.immich.openapi_client.models.system_config_backups_dto import SystemConfigBackupsDto
from generated.immich.openapi_client.models.system_config_dto import SystemConfigDto
from generated.immich.openapi_client.models.system_config_f_fmpeg_dto import SystemConfigFFmpegDto
from generated.immich.openapi_client.models.system_config_f_fmpeg_realtime_dto import SystemConfigFFmpegRealtimeDto
from generated.immich.openapi_client.models.system_config_faces_dto import SystemConfigFacesDto
from generated.immich.openapi_client.models.system_config_generated_fullsize_image_dto import SystemConfigGeneratedFullsizeImageDto
from generated.immich.openapi_client.models.system_config_generated_image_dto import SystemConfigGeneratedImageDto
from generated.immich.openapi_client.models.system_config_image_dto import SystemConfigImageDto
from generated.immich.openapi_client.models.system_config_integrity_checks import SystemConfigIntegrityChecks
from generated.immich.openapi_client.models.system_config_integrity_checksum_job import SystemConfigIntegrityChecksumJob
from generated.immich.openapi_client.models.system_config_integrity_job import SystemConfigIntegrityJob
from generated.immich.openapi_client.models.system_config_job_dto import SystemConfigJobDto
from generated.immich.openapi_client.models.system_config_library_dto import SystemConfigLibraryDto
from generated.immich.openapi_client.models.system_config_library_scan_dto import SystemConfigLibraryScanDto
@@ -208,6 +318,7 @@ from generated.immich.openapi_client.models.system_config_machine_learning_dto i
from generated.immich.openapi_client.models.system_config_map_dto import SystemConfigMapDto
from generated.immich.openapi_client.models.system_config_metadata_dto import SystemConfigMetadataDto
from generated.immich.openapi_client.models.system_config_new_version_check_dto import SystemConfigNewVersionCheckDto
from generated.immich.openapi_client.models.system_config_nightly_tasks_dto import SystemConfigNightlyTasksDto
from generated.immich.openapi_client.models.system_config_notifications_dto import SystemConfigNotificationsDto
from generated.immich.openapi_client.models.system_config_o_auth_dto import SystemConfigOAuthDto
from generated.immich.openapi_client.models.system_config_password_login_dto import SystemConfigPasswordLoginDto
@@ -233,8 +344,8 @@ from generated.immich.openapi_client.models.tags_update import TagsUpdate
from generated.immich.openapi_client.models.template_dto import TemplateDto
from generated.immich.openapi_client.models.template_response_dto import TemplateResponseDto
from generated.immich.openapi_client.models.test_email_response_dto import TestEmailResponseDto
from generated.immich.openapi_client.models.time_bucket_response_dto import TimeBucketResponseDto
from generated.immich.openapi_client.models.time_bucket_size import TimeBucketSize
from generated.immich.openapi_client.models.time_bucket_asset_response_dto import TimeBucketAssetResponseDto
from generated.immich.openapi_client.models.time_buckets_response_dto import TimeBucketsResponseDto
from generated.immich.openapi_client.models.tone_mapping import ToneMapping
from generated.immich.openapi_client.models.transcode_hw_accel import TranscodeHWAccel
from generated.immich.openapi_client.models.transcode_policy import TranscodePolicy
@@ -243,7 +354,6 @@ from generated.immich.openapi_client.models.update_album_dto import UpdateAlbumD
from generated.immich.openapi_client.models.update_album_user_dto import UpdateAlbumUserDto
from generated.immich.openapi_client.models.update_asset_dto import UpdateAssetDto
from generated.immich.openapi_client.models.update_library_dto import UpdateLibraryDto
from generated.immich.openapi_client.models.update_partner_dto import UpdatePartnerDto
from generated.immich.openapi_client.models.usage_by_user_dto import UsageByUserDto
from generated.immich.openapi_client.models.user_admin_create_dto import UserAdminCreateDto
from generated.immich.openapi_client.models.user_admin_delete_dto import UserAdminDeleteDto
@@ -251,6 +361,7 @@ from generated.immich.openapi_client.models.user_admin_response_dto import UserA
from generated.immich.openapi_client.models.user_admin_update_dto import UserAdminUpdateDto
from generated.immich.openapi_client.models.user_avatar_color import UserAvatarColor
from generated.immich.openapi_client.models.user_license import UserLicense
from generated.immich.openapi_client.models.user_metadata_key import UserMetadataKey
from generated.immich.openapi_client.models.user_preferences_response_dto import UserPreferencesResponseDto
from generated.immich.openapi_client.models.user_preferences_update_dto import UserPreferencesUpdateDto
from generated.immich.openapi_client.models.user_response_dto import UserResponseDto
@@ -260,5 +371,16 @@ from generated.immich.openapi_client.models.validate_access_token_response_dto i
from generated.immich.openapi_client.models.validate_library_dto import ValidateLibraryDto
from generated.immich.openapi_client.models.validate_library_import_path_response_dto import ValidateLibraryImportPathResponseDto
from generated.immich.openapi_client.models.validate_library_response_dto import ValidateLibraryResponseDto
from generated.immich.openapi_client.models.version_check_state_response_dto import VersionCheckStateResponseDto
from generated.immich.openapi_client.models.video_codec import VideoCodec
from generated.immich.openapi_client.models.video_container import VideoContainer
from generated.immich.openapi_client.models.workflow_create_dto import WorkflowCreateDto
from generated.immich.openapi_client.models.workflow_response_dto import WorkflowResponseDto
from generated.immich.openapi_client.models.workflow_share_response_dto import WorkflowShareResponseDto
from generated.immich.openapi_client.models.workflow_share_step_dto import WorkflowShareStepDto
from generated.immich.openapi_client.models.workflow_step_dto import WorkflowStepDto
from generated.immich.openapi_client.models.workflow_trigger import WorkflowTrigger
from generated.immich.openapi_client.models.workflow_trigger_response_dto import WorkflowTriggerResponseDto
from generated.immich.openapi_client.models.workflow_type import WorkflowType
from generated.immich.openapi_client.models.workflow_update_dto import WorkflowUpdateDto
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -19,20 +19,38 @@ import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from generated.immich.openapi_client.models.reaction_type import ReactionType
from typing import Optional, Set
from typing_extensions import Self
class ActivityCreateDto(BaseModel):
"""
ActivityCreateDto
Activity create
""" # noqa: E501
album_id: StrictStr = Field(alias="albumId")
asset_id: Optional[StrictStr] = Field(default=None, alias="assetId")
comment: Optional[StrictStr] = None
album_id: UUID = Field(description="Album ID", alias="albumId")
asset_id: Optional[UUID] = Field(default=None, description="Asset ID (if activity is for an asset)", alias="assetId")
comment: Optional[StrictStr] = Field(default=None, description="Comment text (required if type is comment)")
type: ReactionType
__properties: ClassVar[List[str]] = ["albumId", "assetId", "comment", "type"]
@field_validator('album_id')
def album_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('asset_id')
def asset_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,6 +20,7 @@ import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from generated.immich.openapi_client.models.reaction_type import ReactionType
from generated.immich.openapi_client.models.user_response_dto import UserResponseDto
from typing import Optional, Set
@@ -29,14 +30,38 @@ class ActivityResponseDto(BaseModel):
"""
ActivityResponseDto
""" # noqa: E501
asset_id: Optional[StrictStr] = Field(alias="assetId")
comment: Optional[StrictStr] = None
created_at: datetime = Field(alias="createdAt")
id: StrictStr
asset_id: Optional[UUID] = Field(description="Asset ID (if activity is for an asset)", alias="assetId")
comment: Optional[StrictStr] = Field(default=None, description="Comment text (for comment activities)")
created_at: datetime = Field(description="Creation date", alias="createdAt")
id: UUID = Field(description="Activity ID")
type: ReactionType
user: UserResponseDto
__properties: ClassVar[List[str]] = ["assetId", "comment", "createdAt", "id", "type", "user"]
@field_validator('asset_id')
def asset_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('created_at')
def created_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictInt
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -26,8 +27,9 @@ class ActivityStatisticsResponseDto(BaseModel):
"""
ActivityStatisticsResponseDto
""" # noqa: E501
comments: StrictInt
__properties: ClassVar[List[str]] = ["comments"]
comments: Annotated[int, Field(le=9007199254740991, strict=True, ge=0)] = Field(description="Number of comments")
likes: Annotated[int, Field(le=9007199254740991, strict=True, ge=0)] = Field(description="Number of likes")
__properties: ClassVar[List[str]] = ["comments", "likes"]
model_config = ConfigDict(
populate_by_name=True,
@@ -80,7 +82,8 @@ class ActivityStatisticsResponseDto(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"comments": obj.get("comments")
"comments": obj.get("comments"),
"likes": obj.get("likes")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -28,7 +28,7 @@ class AddUsersDto(BaseModel):
"""
AddUsersDto
""" # noqa: E501
album_users: Annotated[List[AlbumUserAddDto], Field(min_length=1)] = Field(alias="albumUsers")
album_users: Annotated[List[AlbumUserAddDto], Field(min_length=1)] = Field(description="Album users to add", alias="albumUsers")
__properties: ClassVar[List[str]] = ["albumUsers"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -26,7 +26,7 @@ class AdminOnboardingUpdateDto(BaseModel):
"""
AdminOnboardingUpdateDto
""" # noqa: E501
is_onboarded: StrictBool = Field(alias="isOnboarded")
is_onboarded: StrictBool = Field(description="Is admin onboarded", alias="isOnboarded")
__properties: ClassVar[List[str]] = ["isOnboarded"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -18,12 +18,13 @@ import re # noqa: F401
import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from uuid import UUID
from generated.immich.openapi_client.models.album_user_response_dto import AlbumUserResponseDto
from generated.immich.openapi_client.models.asset_order import AssetOrder
from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
from generated.immich.openapi_client.models.user_response_dto import UserResponseDto
from generated.immich.openapi_client.models.contributor_count_response_dto import ContributorCountResponseDto
from typing import Optional, Set
from typing_extensions import Self
@@ -31,25 +32,40 @@ class AlbumResponseDto(BaseModel):
"""
AlbumResponseDto
""" # noqa: E501
album_name: StrictStr = Field(alias="albumName")
album_thumbnail_asset_id: Optional[StrictStr] = Field(alias="albumThumbnailAssetId")
album_users: List[AlbumUserResponseDto] = Field(alias="albumUsers")
asset_count: StrictInt = Field(alias="assetCount")
assets: List[AssetResponseDto]
created_at: datetime = Field(alias="createdAt")
description: StrictStr
end_date: Optional[datetime] = Field(default=None, alias="endDate")
has_shared_link: StrictBool = Field(alias="hasSharedLink")
id: StrictStr
is_activity_enabled: StrictBool = Field(alias="isActivityEnabled")
last_modified_asset_timestamp: Optional[datetime] = Field(default=None, alias="lastModifiedAssetTimestamp")
album_name: StrictStr = Field(description="Album name", alias="albumName")
album_thumbnail_asset_id: Optional[UUID] = Field(description="Thumbnail asset ID", alias="albumThumbnailAssetId")
album_users: Annotated[List[AlbumUserResponseDto], Field(min_length=1)] = Field(description="First entry is always the album owner. Second entry is the auth user, if it differs from the owner. The rest are ordered alphabetically.", alias="albumUsers")
asset_count: Annotated[int, Field(le=9007199254740991, strict=True, ge=0)] = Field(description="Number of assets", alias="assetCount")
contributor_counts: Optional[List[ContributorCountResponseDto]] = Field(default=None, alias="contributorCounts")
created_at: datetime = Field(description="Creation date", alias="createdAt")
description: StrictStr = Field(description="Album description")
end_date: Optional[datetime] = Field(default=None, description="End date (latest asset)", alias="endDate")
has_shared_link: StrictBool = Field(description="Has shared link", alias="hasSharedLink")
id: UUID = Field(description="Album ID")
is_activity_enabled: StrictBool = Field(description="Activity feed enabled", alias="isActivityEnabled")
last_modified_asset_timestamp: Optional[datetime] = Field(default=None, description="Last modified asset timestamp", alias="lastModifiedAssetTimestamp")
order: Optional[AssetOrder] = None
owner: UserResponseDto
owner_id: StrictStr = Field(alias="ownerId")
shared: StrictBool
start_date: Optional[datetime] = Field(default=None, alias="startDate")
updated_at: datetime = Field(alias="updatedAt")
__properties: ClassVar[List[str]] = ["albumName", "albumThumbnailAssetId", "albumUsers", "assetCount", "assets", "createdAt", "description", "endDate", "hasSharedLink", "id", "isActivityEnabled", "lastModifiedAssetTimestamp", "order", "owner", "ownerId", "shared", "startDate", "updatedAt"]
shared: StrictBool = Field(description="Is shared album")
start_date: Optional[datetime] = Field(default=None, description="Start date (earliest asset)", alias="startDate")
updated_at: datetime = Field(description="Last update date", alias="updatedAt")
__properties: ClassVar[List[str]] = ["albumName", "albumThumbnailAssetId", "albumUsers", "assetCount", "contributorCounts", "createdAt", "description", "endDate", "hasSharedLink", "id", "isActivityEnabled", "lastModifiedAssetTimestamp", "order", "shared", "startDate", "updatedAt"]
@field_validator('album_thumbnail_asset_id')
def album_thumbnail_asset_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
@@ -97,16 +113,13 @@ class AlbumResponseDto(BaseModel):
if _item_album_users:
_items.append(_item_album_users.to_dict())
_dict['albumUsers'] = _items
# override the default output from pydantic by calling `to_dict()` of each item in assets (list)
# override the default output from pydantic by calling `to_dict()` of each item in contributor_counts (list)
_items = []
if self.assets:
for _item_assets in self.assets:
if _item_assets:
_items.append(_item_assets.to_dict())
_dict['assets'] = _items
# override the default output from pydantic by calling `to_dict()` of owner
if self.owner:
_dict['owner'] = self.owner.to_dict()
if self.contributor_counts:
for _item_contributor_counts in self.contributor_counts:
if _item_contributor_counts:
_items.append(_item_contributor_counts.to_dict())
_dict['contributorCounts'] = _items
# set to None if album_thumbnail_asset_id (nullable) is None
# and model_fields_set contains the field
if self.album_thumbnail_asset_id is None and "album_thumbnail_asset_id" in self.model_fields_set:
@@ -128,7 +141,7 @@ class AlbumResponseDto(BaseModel):
"albumThumbnailAssetId": obj.get("albumThumbnailAssetId"),
"albumUsers": [AlbumUserResponseDto.from_dict(_item) for _item in obj["albumUsers"]] if obj.get("albumUsers") is not None else None,
"assetCount": obj.get("assetCount"),
"assets": [AssetResponseDto.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None,
"contributorCounts": [ContributorCountResponseDto.from_dict(_item) for _item in obj["contributorCounts"]] if obj.get("contributorCounts") is not None else None,
"createdAt": obj.get("createdAt"),
"description": obj.get("description"),
"endDate": obj.get("endDate"),
@@ -137,8 +150,6 @@ class AlbumResponseDto(BaseModel):
"isActivityEnabled": obj.get("isActivityEnabled"),
"lastModifiedAssetTimestamp": obj.get("lastModifiedAssetTimestamp"),
"order": obj.get("order"),
"owner": UserResponseDto.from_dict(obj["owner"]) if obj.get("owner") is not None else None,
"ownerId": obj.get("ownerId"),
"shared": obj.get("shared"),
"startDate": obj.get("startDate"),
"updatedAt": obj.get("updatedAt")
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -26,9 +27,9 @@ class AlbumStatisticsResponseDto(BaseModel):
"""
AlbumStatisticsResponseDto
""" # noqa: E501
not_shared: StrictInt = Field(alias="notShared")
owned: StrictInt
shared: StrictInt
not_shared: Annotated[int, Field(le=9007199254740991, strict=True, ge=0)] = Field(description="Number of non-shared albums", alias="notShared")
owned: Annotated[int, Field(le=9007199254740991, strict=True, ge=0)] = Field(description="Number of owned albums")
shared: Annotated[int, Field(le=9007199254740991, strict=True, ge=0)] = Field(description="Number of shared albums")
__properties: ClassVar[List[str]] = ["notShared", "owned", "shared"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from generated.immich.openapi_client.models.album_user_role import AlbumUserRole
from typing import Optional, Set
from typing_extensions import Self
@@ -28,9 +29,16 @@ class AlbumUserAddDto(BaseModel):
AlbumUserAddDto
""" # noqa: E501
role: Optional[AlbumUserRole] = None
user_id: StrictStr = Field(alias="userId")
user_id: UUID = Field(description="User ID", alias="userId")
__properties: ClassVar[List[str]] = ["role", "userId"]
@field_validator('user_id')
def user_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from generated.immich.openapi_client.models.album_user_role import AlbumUserRole
from typing import Optional, Set
from typing_extensions import Self
@@ -28,9 +29,16 @@ class AlbumUserCreateDto(BaseModel):
AlbumUserCreateDto
""" # noqa: E501
role: AlbumUserRole
user_id: StrictStr = Field(alias="userId")
user_id: UUID = Field(description="User ID", alias="userId")
__properties: ClassVar[List[str]] = ["role", "userId"]
@field_validator('user_id')
def user_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,13 +20,14 @@ from typing_extensions import Self
class AlbumUserRole(str, Enum):
"""
AlbumUserRole
Album user role
"""
"""
allowed enum values
"""
EDITOR = 'editor'
OWNER = 'owner'
VIEWER = 'viewer'
@classmethod
@@ -1,161 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from generated.immich.openapi_client.models.job_status_dto import JobStatusDto
from typing import Optional, Set
from typing_extensions import Self
class AllJobStatusResponseDto(BaseModel):
"""
AllJobStatusResponseDto
""" # noqa: E501
background_task: JobStatusDto = Field(alias="backgroundTask")
backup_database: JobStatusDto = Field(alias="backupDatabase")
duplicate_detection: JobStatusDto = Field(alias="duplicateDetection")
face_detection: JobStatusDto = Field(alias="faceDetection")
facial_recognition: JobStatusDto = Field(alias="facialRecognition")
library: JobStatusDto
metadata_extraction: JobStatusDto = Field(alias="metadataExtraction")
migration: JobStatusDto
notifications: JobStatusDto
search: JobStatusDto
sidecar: JobStatusDto
smart_search: JobStatusDto = Field(alias="smartSearch")
storage_template_migration: JobStatusDto = Field(alias="storageTemplateMigration")
thumbnail_generation: JobStatusDto = Field(alias="thumbnailGeneration")
video_conversion: JobStatusDto = Field(alias="videoConversion")
__properties: ClassVar[List[str]] = ["backgroundTask", "backupDatabase", "duplicateDetection", "faceDetection", "facialRecognition", "library", "metadataExtraction", "migration", "notifications", "search", "sidecar", "smartSearch", "storageTemplateMigration", "thumbnailGeneration", "videoConversion"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of AllJobStatusResponseDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of background_task
if self.background_task:
_dict['backgroundTask'] = self.background_task.to_dict()
# override the default output from pydantic by calling `to_dict()` of backup_database
if self.backup_database:
_dict['backupDatabase'] = self.backup_database.to_dict()
# override the default output from pydantic by calling `to_dict()` of duplicate_detection
if self.duplicate_detection:
_dict['duplicateDetection'] = self.duplicate_detection.to_dict()
# override the default output from pydantic by calling `to_dict()` of face_detection
if self.face_detection:
_dict['faceDetection'] = self.face_detection.to_dict()
# override the default output from pydantic by calling `to_dict()` of facial_recognition
if self.facial_recognition:
_dict['facialRecognition'] = self.facial_recognition.to_dict()
# override the default output from pydantic by calling `to_dict()` of library
if self.library:
_dict['library'] = self.library.to_dict()
# override the default output from pydantic by calling `to_dict()` of metadata_extraction
if self.metadata_extraction:
_dict['metadataExtraction'] = self.metadata_extraction.to_dict()
# override the default output from pydantic by calling `to_dict()` of migration
if self.migration:
_dict['migration'] = self.migration.to_dict()
# override the default output from pydantic by calling `to_dict()` of notifications
if self.notifications:
_dict['notifications'] = self.notifications.to_dict()
# override the default output from pydantic by calling `to_dict()` of search
if self.search:
_dict['search'] = self.search.to_dict()
# override the default output from pydantic by calling `to_dict()` of sidecar
if self.sidecar:
_dict['sidecar'] = self.sidecar.to_dict()
# override the default output from pydantic by calling `to_dict()` of smart_search
if self.smart_search:
_dict['smartSearch'] = self.smart_search.to_dict()
# override the default output from pydantic by calling `to_dict()` of storage_template_migration
if self.storage_template_migration:
_dict['storageTemplateMigration'] = self.storage_template_migration.to_dict()
# override the default output from pydantic by calling `to_dict()` of thumbnail_generation
if self.thumbnail_generation:
_dict['thumbnailGeneration'] = self.thumbnail_generation.to_dict()
# override the default output from pydantic by calling `to_dict()` of video_conversion
if self.video_conversion:
_dict['videoConversion'] = self.video_conversion.to_dict()
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of AllJobStatusResponseDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"backgroundTask": JobStatusDto.from_dict(obj["backgroundTask"]) if obj.get("backgroundTask") is not None else None,
"backupDatabase": JobStatusDto.from_dict(obj["backupDatabase"]) if obj.get("backupDatabase") is not None else None,
"duplicateDetection": JobStatusDto.from_dict(obj["duplicateDetection"]) if obj.get("duplicateDetection") is not None else None,
"faceDetection": JobStatusDto.from_dict(obj["faceDetection"]) if obj.get("faceDetection") is not None else None,
"facialRecognition": JobStatusDto.from_dict(obj["facialRecognition"]) if obj.get("facialRecognition") is not None else None,
"library": JobStatusDto.from_dict(obj["library"]) if obj.get("library") is not None else None,
"metadataExtraction": JobStatusDto.from_dict(obj["metadataExtraction"]) if obj.get("metadataExtraction") is not None else None,
"migration": JobStatusDto.from_dict(obj["migration"]) if obj.get("migration") is not None else None,
"notifications": JobStatusDto.from_dict(obj["notifications"]) if obj.get("notifications") is not None else None,
"search": JobStatusDto.from_dict(obj["search"]) if obj.get("search") is not None else None,
"sidecar": JobStatusDto.from_dict(obj["sidecar"]) if obj.get("sidecar") is not None else None,
"smartSearch": JobStatusDto.from_dict(obj["smartSearch"]) if obj.get("smartSearch") is not None else None,
"storageTemplateMigration": JobStatusDto.from_dict(obj["storageTemplateMigration"]) if obj.get("storageTemplateMigration") is not None else None,
"thumbnailGeneration": JobStatusDto.from_dict(obj["thumbnailGeneration"]) if obj.get("thumbnailGeneration") is not None else None,
"videoConversion": JobStatusDto.from_dict(obj["videoConversion"]) if obj.get("videoConversion") is not None else None
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -24,12 +24,12 @@ from generated.immich.openapi_client.models.permission import Permission
from typing import Optional, Set
from typing_extensions import Self
class APIKeyCreateDto(BaseModel):
class ApiKeyCreateDto(BaseModel):
"""
APIKeyCreateDto
ApiKeyCreateDto
""" # noqa: E501
name: Optional[StrictStr] = None
permissions: Annotated[List[Permission], Field(min_length=1)]
name: Optional[StrictStr] = Field(default=None, description="API key name")
permissions: Annotated[List[Permission], Field(min_length=1)] = Field(description="List of permissions")
__properties: ClassVar[List[str]] = ["name", "permissions"]
model_config = ConfigDict(
@@ -50,7 +50,7 @@ class APIKeyCreateDto(BaseModel):
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of APIKeyCreateDto from a JSON string"""
"""Create an instance of ApiKeyCreateDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -75,7 +75,7 @@ class APIKeyCreateDto(BaseModel):
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of APIKeyCreateDto from a dict"""
"""Create an instance of ApiKeyCreateDto from a dict"""
if obj is None:
return None
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -19,16 +19,16 @@ import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
from generated.immich.openapi_client.models.api_key_response_dto import APIKeyResponseDto
from generated.immich.openapi_client.models.api_key_response_dto import ApiKeyResponseDto
from typing import Optional, Set
from typing_extensions import Self
class APIKeyCreateResponseDto(BaseModel):
class ApiKeyCreateResponseDto(BaseModel):
"""
APIKeyCreateResponseDto
ApiKeyCreateResponseDto
""" # noqa: E501
api_key: APIKeyResponseDto = Field(alias="apiKey")
secret: StrictStr
api_key: ApiKeyResponseDto = Field(alias="apiKey")
secret: StrictStr = Field(description="API key secret (only shown once)")
__properties: ClassVar[List[str]] = ["apiKey", "secret"]
model_config = ConfigDict(
@@ -49,7 +49,7 @@ class APIKeyCreateResponseDto(BaseModel):
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of APIKeyCreateResponseDto from a JSON string"""
"""Create an instance of ApiKeyCreateResponseDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -77,7 +77,7 @@ class APIKeyCreateResponseDto(BaseModel):
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of APIKeyCreateResponseDto from a dict"""
"""Create an instance of ApiKeyCreateResponseDto from a dict"""
if obj is None:
return None
@@ -85,7 +85,7 @@ class APIKeyCreateResponseDto(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"apiKey": APIKeyResponseDto.from_dict(obj["apiKey"]) if obj.get("apiKey") is not None else None,
"apiKey": ApiKeyResponseDto.from_dict(obj["apiKey"]) if obj.get("apiKey") is not None else None,
"secret": obj.get("secret")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,21 +20,43 @@ import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from generated.immich.openapi_client.models.permission import Permission
from typing import Optional, Set
from typing_extensions import Self
class APIKeyResponseDto(BaseModel):
class ApiKeyResponseDto(BaseModel):
"""
APIKeyResponseDto
ApiKeyResponseDto
""" # noqa: E501
created_at: datetime = Field(alias="createdAt")
id: StrictStr
name: StrictStr
permissions: List[Permission]
updated_at: datetime = Field(alias="updatedAt")
created_at: datetime = Field(description="Creation date", alias="createdAt")
id: UUID = Field(description="API key ID")
name: StrictStr = Field(description="API key name")
permissions: List[Permission] = Field(description="List of permissions")
updated_at: datetime = Field(description="Last update date", alias="updatedAt")
__properties: ClassVar[List[str]] = ["createdAt", "id", "name", "permissions", "updatedAt"]
@field_validator('created_at')
def created_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('updated_at')
def updated_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -53,7 +75,7 @@ class APIKeyResponseDto(BaseModel):
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of APIKeyResponseDto from a JSON string"""
"""Create an instance of ApiKeyResponseDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -78,7 +100,7 @@ class APIKeyResponseDto(BaseModel):
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of APIKeyResponseDto from a dict"""
"""Create an instance of ApiKeyResponseDto from a dict"""
if obj is None:
return None
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,17 +17,20 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictStr
from typing import Any, ClassVar, Dict, List
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from generated.immich.openapi_client.models.permission import Permission
from typing import Optional, Set
from typing_extensions import Self
class APIKeyUpdateDto(BaseModel):
class ApiKeyUpdateDto(BaseModel):
"""
APIKeyUpdateDto
ApiKeyUpdateDto
""" # noqa: E501
name: StrictStr
__properties: ClassVar[List[str]] = ["name"]
name: Optional[StrictStr] = Field(default=None, description="API key name")
permissions: Optional[Annotated[List[Permission], Field(min_length=1)]] = Field(default=None, description="List of permissions")
__properties: ClassVar[List[str]] = ["name", "permissions"]
model_config = ConfigDict(
populate_by_name=True,
@@ -47,7 +50,7 @@ class APIKeyUpdateDto(BaseModel):
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of APIKeyUpdateDto from a JSON string"""
"""Create an instance of ApiKeyUpdateDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -72,7 +75,7 @@ class APIKeyUpdateDto(BaseModel):
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of APIKeyUpdateDto from a dict"""
"""Create an instance of ApiKeyUpdateDto from a dict"""
if obj is None:
return None
@@ -80,7 +83,8 @@ class APIKeyUpdateDto(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"name": obj.get("name")
"name": obj.get("name"),
"permissions": obj.get("permissions")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictBool
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -26,8 +27,8 @@ class AssetBulkDeleteDto(BaseModel):
"""
AssetBulkDeleteDto
""" # noqa: E501
force: Optional[StrictBool] = None
ids: List[StrictStr]
force: Optional[StrictBool] = Field(default=None, description="Force delete even if in use")
ids: List[UUID] = Field(description="IDs to process")
__properties: ClassVar[List[str]] = ["force", "ids"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,9 +17,11 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional, Union
from typing_extensions import Annotated
from uuid import UUID
from generated.immich.openapi_client.models.asset_visibility import AssetVisibility
from typing import Optional, Set
from typing_extensions import Self
@@ -27,15 +29,18 @@ class AssetBulkUpdateDto(BaseModel):
"""
AssetBulkUpdateDto
""" # noqa: E501
date_time_original: Optional[StrictStr] = Field(default=None, alias="dateTimeOriginal")
duplicate_id: Optional[StrictStr] = Field(default=None, alias="duplicateId")
ids: List[StrictStr]
is_archived: Optional[StrictBool] = Field(default=None, alias="isArchived")
is_favorite: Optional[StrictBool] = Field(default=None, alias="isFavorite")
latitude: Optional[Union[StrictFloat, StrictInt]] = None
longitude: Optional[Union[StrictFloat, StrictInt]] = None
rating: Optional[Union[Annotated[float, Field(le=5, strict=True, ge=-1)], Annotated[int, Field(le=5, strict=True, ge=-1)]]] = None
__properties: ClassVar[List[str]] = ["dateTimeOriginal", "duplicateId", "ids", "isArchived", "isFavorite", "latitude", "longitude", "rating"]
date_time_original: Optional[StrictStr] = Field(default=None, description="Original date and time", alias="dateTimeOriginal")
date_time_relative: Optional[Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)]] = Field(default=None, description="Relative time offset in minutes", alias="dateTimeRelative")
description: Optional[StrictStr] = Field(default=None, description="Asset description")
duplicate_id: Optional[StrictStr] = Field(default=None, description="Duplicate ID", alias="duplicateId")
ids: List[UUID] = Field(description="Asset IDs to update")
is_favorite: Optional[StrictBool] = Field(default=None, description="Mark as favorite", alias="isFavorite")
latitude: Optional[Union[Annotated[float, Field(le=90, strict=True, ge=-90)], Annotated[int, Field(le=90, strict=True, ge=-90)]]] = Field(default=None, description="Latitude coordinate")
longitude: Optional[Union[Annotated[float, Field(le=180, strict=True, ge=-180)], Annotated[int, Field(le=180, strict=True, ge=-180)]]] = Field(default=None, description="Longitude coordinate")
rating: Optional[Annotated[int, Field(le=5, strict=True, ge=-1)]] = Field(default=None, description="Rating in range [1-5] (starred), -1 (rejected), or null (unrated)")
time_zone: Optional[StrictStr] = Field(default=None, description="Time zone (IANA timezone)", alias="timeZone")
visibility: Optional[AssetVisibility] = None
__properties: ClassVar[List[str]] = ["dateTimeOriginal", "dateTimeRelative", "description", "duplicateId", "ids", "isFavorite", "latitude", "longitude", "rating", "timeZone", "visibility"]
model_config = ConfigDict(
populate_by_name=True,
@@ -81,6 +86,11 @@ class AssetBulkUpdateDto(BaseModel):
if self.duplicate_id is None and "duplicate_id" in self.model_fields_set:
_dict['duplicateId'] = None
# set to None if rating (nullable) is None
# and model_fields_set contains the field
if self.rating is None and "rating" in self.model_fields_set:
_dict['rating'] = None
return _dict
@classmethod
@@ -94,13 +104,16 @@ class AssetBulkUpdateDto(BaseModel):
_obj = cls.model_validate({
"dateTimeOriginal": obj.get("dateTimeOriginal"),
"dateTimeRelative": obj.get("dateTimeRelative"),
"description": obj.get("description"),
"duplicateId": obj.get("duplicateId"),
"ids": obj.get("ids"),
"isArchived": obj.get("isArchived"),
"isFavorite": obj.get("isFavorite"),
"latitude": obj.get("latitude"),
"longitude": obj.get("longitude"),
"rating": obj.get("rating")
"rating": obj.get("rating"),
"timeZone": obj.get("timeZone"),
"visibility": obj.get("visibility")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,7 +17,7 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from generated.immich.openapi_client.models.asset_bulk_upload_check_item import AssetBulkUploadCheckItem
from typing import Optional, Set
@@ -27,7 +27,7 @@ class AssetBulkUploadCheckDto(BaseModel):
"""
AssetBulkUploadCheckDto
""" # noqa: E501
assets: List[AssetBulkUploadCheckItem]
assets: List[AssetBulkUploadCheckItem] = Field(description="Assets to check")
__properties: ClassVar[List[str]] = ["assets"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -26,8 +26,8 @@ class AssetBulkUploadCheckItem(BaseModel):
"""
AssetBulkUploadCheckItem
""" # noqa: E501
checksum: StrictStr = Field(description="base64 or hex encoded sha1 hash")
id: StrictStr
checksum: StrictStr = Field(description="Base64 or hex encoded SHA1 hash")
id: StrictStr = Field(description="Client-side identifier echoed in the response to match results to inputs (e.g. filename)")
__properties: ClassVar[List[str]] = ["checksum", "id"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,7 +17,7 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from generated.immich.openapi_client.models.asset_bulk_upload_check_result import AssetBulkUploadCheckResult
from typing import Optional, Set
@@ -27,7 +27,7 @@ class AssetBulkUploadCheckResponseDto(BaseModel):
"""
AssetBulkUploadCheckResponseDto
""" # noqa: E501
results: List[AssetBulkUploadCheckResult]
results: List[AssetBulkUploadCheckResult] = Field(description="Upload check results")
__properties: ClassVar[List[str]] = ["results"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,11 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from generated.immich.openapi_client.models.asset_reject_reason import AssetRejectReason
from generated.immich.openapi_client.models.asset_upload_action import AssetUploadAction
from typing import Optional, Set
from typing_extensions import Self
@@ -26,28 +29,21 @@ class AssetBulkUploadCheckResult(BaseModel):
"""
AssetBulkUploadCheckResult
""" # noqa: E501
action: StrictStr
asset_id: Optional[StrictStr] = Field(default=None, alias="assetId")
id: StrictStr
is_trashed: Optional[StrictBool] = Field(default=None, alias="isTrashed")
reason: Optional[StrictStr] = None
action: AssetUploadAction
asset_id: Optional[UUID] = Field(default=None, description="Existing asset ID if duplicate", alias="assetId")
id: StrictStr = Field(description="Client-side identifier echoed from the request to match results to inputs")
is_trashed: Optional[StrictBool] = Field(default=None, description="Whether existing asset is trashed", alias="isTrashed")
reason: Optional[AssetRejectReason] = None
__properties: ClassVar[List[str]] = ["action", "assetId", "id", "isTrashed", "reason"]
@field_validator('action')
def action_validate_enum(cls, value):
"""Validates the enum"""
if value not in set(['accept', 'reject']):
raise ValueError("must be one of enum values ('accept', 'reject')")
return value
@field_validator('reason')
def reason_validate_enum(cls, value):
"""Validates the enum"""
@field_validator('asset_id')
def asset_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if value not in set(['duplicate', 'unsupported-format']):
raise ValueError("must be one of enum values ('duplicate', 'unsupported-format')")
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
@@ -1,90 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self
class AssetDeltaSyncDto(BaseModel):
"""
AssetDeltaSyncDto
""" # noqa: E501
updated_after: datetime = Field(alias="updatedAfter")
user_ids: List[StrictStr] = Field(alias="userIds")
__properties: ClassVar[List[str]] = ["updatedAfter", "userIds"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of AssetDeltaSyncDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of AssetDeltaSyncDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"updatedAfter": obj.get("updatedAfter"),
"userIds": obj.get("userIds")
})
return _obj
@@ -1,99 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List
from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
from typing import Optional, Set
from typing_extensions import Self
class AssetDeltaSyncResponseDto(BaseModel):
"""
AssetDeltaSyncResponseDto
""" # noqa: E501
deleted: List[StrictStr]
needs_full_sync: StrictBool = Field(alias="needsFullSync")
upserted: List[AssetResponseDto]
__properties: ClassVar[List[str]] = ["deleted", "needsFullSync", "upserted"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of AssetDeltaSyncResponseDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of each item in upserted (list)
_items = []
if self.upserted:
for _item_upserted in self.upserted:
if _item_upserted:
_items.append(_item_upserted.to_dict())
_dict['upserted'] = _items
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of AssetDeltaSyncResponseDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"deleted": obj.get("deleted"),
"needsFullSync": obj.get("needsFullSync"),
"upserted": [AssetResponseDto.from_dict(_item) for _item in obj["upserted"]] if obj.get("upserted") is not None else None
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,10 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -26,16 +28,30 @@ class AssetFaceCreateDto(BaseModel):
"""
AssetFaceCreateDto
""" # noqa: E501
asset_id: StrictStr = Field(alias="assetId")
height: StrictInt
image_height: StrictInt = Field(alias="imageHeight")
image_width: StrictInt = Field(alias="imageWidth")
person_id: StrictStr = Field(alias="personId")
width: StrictInt
x: StrictInt
y: StrictInt
asset_id: UUID = Field(description="Asset ID", alias="assetId")
height: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Face bounding box height")
image_height: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Image height in pixels", alias="imageHeight")
image_width: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Image width in pixels", alias="imageWidth")
person_id: UUID = Field(description="Person ID", alias="personId")
width: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Face bounding box width")
x: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Face bounding box X coordinate")
y: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Face bounding box Y coordinate")
__properties: ClassVar[List[str]] = ["assetId", "height", "imageHeight", "imageWidth", "personId", "width", "x", "y"]
@field_validator('asset_id')
def asset_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('person_id')
def person_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,7 +17,7 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictBool
from pydantic import BaseModel, ConfigDict, Field, StrictBool
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self
@@ -26,7 +26,7 @@ class AssetFaceDeleteDto(BaseModel):
"""
AssetFaceDeleteDto
""" # noqa: E501
force: StrictBool
force: StrictBool = Field(description="Force delete even if person has other faces")
__properties: ClassVar[List[str]] = ["force"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,10 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from uuid import UUID
from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
from generated.immich.openapi_client.models.source_type import SourceType
from typing import Optional, Set
@@ -26,19 +28,26 @@ from typing_extensions import Self
class AssetFaceResponseDto(BaseModel):
"""
AssetFaceResponseDto
Asset face with person
""" # noqa: E501
bounding_box_x1: StrictInt = Field(alias="boundingBoxX1")
bounding_box_x2: StrictInt = Field(alias="boundingBoxX2")
bounding_box_y1: StrictInt = Field(alias="boundingBoxY1")
bounding_box_y2: StrictInt = Field(alias="boundingBoxY2")
id: StrictStr
image_height: StrictInt = Field(alias="imageHeight")
image_width: StrictInt = Field(alias="imageWidth")
bounding_box_x1: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Bounding box X1 coordinate", alias="boundingBoxX1")
bounding_box_x2: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Bounding box X2 coordinate", alias="boundingBoxX2")
bounding_box_y1: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Bounding box Y1 coordinate", alias="boundingBoxY1")
bounding_box_y2: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Bounding box Y2 coordinate", alias="boundingBoxY2")
id: UUID = Field(description="Face ID")
image_height: Annotated[int, Field(le=9007199254740991, strict=True, ge=0)] = Field(description="Image height in pixels", alias="imageHeight")
image_width: Annotated[int, Field(le=9007199254740991, strict=True, ge=0)] = Field(description="Image width in pixels", alias="imageWidth")
person: Optional[PersonResponseDto]
source_type: Optional[SourceType] = Field(default=None, alias="sourceType")
__properties: ClassVar[List[str]] = ["boundingBoxX1", "boundingBoxX2", "boundingBoxY1", "boundingBoxY2", "id", "imageHeight", "imageWidth", "person", "sourceType"]
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,7 +17,7 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from generated.immich.openapi_client.models.asset_face_update_item import AssetFaceUpdateItem
from typing import Optional, Set
@@ -27,7 +27,7 @@ class AssetFaceUpdateDto(BaseModel):
"""
AssetFaceUpdateDto
""" # noqa: E501
data: List[AssetFaceUpdateItem]
data: List[AssetFaceUpdateItem] = Field(description="Face update items")
__properties: ClassVar[List[str]] = ["data"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -26,10 +27,24 @@ class AssetFaceUpdateItem(BaseModel):
"""
AssetFaceUpdateItem
""" # noqa: E501
asset_id: StrictStr = Field(alias="assetId")
person_id: StrictStr = Field(alias="personId")
asset_id: UUID = Field(description="Asset ID", alias="assetId")
person_id: UUID = Field(description="Person ID", alias="personId")
__properties: ClassVar[List[str]] = ["assetId", "personId"]
@field_validator('asset_id')
def asset_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('person_id')
def person_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -1,102 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from generated.immich.openapi_client.models.source_type import SourceType
from typing import Optional, Set
from typing_extensions import Self
class AssetFaceWithoutPersonResponseDto(BaseModel):
"""
AssetFaceWithoutPersonResponseDto
""" # noqa: E501
bounding_box_x1: StrictInt = Field(alias="boundingBoxX1")
bounding_box_x2: StrictInt = Field(alias="boundingBoxX2")
bounding_box_y1: StrictInt = Field(alias="boundingBoxY1")
bounding_box_y2: StrictInt = Field(alias="boundingBoxY2")
id: StrictStr
image_height: StrictInt = Field(alias="imageHeight")
image_width: StrictInt = Field(alias="imageWidth")
source_type: Optional[SourceType] = Field(default=None, alias="sourceType")
__properties: ClassVar[List[str]] = ["boundingBoxX1", "boundingBoxX2", "boundingBoxY1", "boundingBoxY2", "id", "imageHeight", "imageWidth", "sourceType"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of AssetFaceWithoutPersonResponseDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of AssetFaceWithoutPersonResponseDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"boundingBoxX1": obj.get("boundingBoxX1"),
"boundingBoxX2": obj.get("boundingBoxX2"),
"boundingBoxY1": obj.get("boundingBoxY1"),
"boundingBoxY2": obj.get("boundingBoxY2"),
"id": obj.get("id"),
"imageHeight": obj.get("imageHeight"),
"imageWidth": obj.get("imageWidth"),
"sourceType": obj.get("sourceType")
})
return _obj
@@ -1,95 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
class AssetFullSyncDto(BaseModel):
"""
AssetFullSyncDto
""" # noqa: E501
last_id: Optional[StrictStr] = Field(default=None, alias="lastId")
limit: Annotated[int, Field(strict=True, ge=1)]
updated_until: datetime = Field(alias="updatedUntil")
user_id: Optional[StrictStr] = Field(default=None, alias="userId")
__properties: ClassVar[List[str]] = ["lastId", "limit", "updatedUntil", "userId"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of AssetFullSyncDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of AssetFullSyncDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"lastId": obj.get("lastId"),
"limit": obj.get("limit"),
"updatedUntil": obj.get("updatedUntil"),
"userId": obj.get("userId")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -26,7 +27,7 @@ class AssetIdsDto(BaseModel):
"""
AssetIdsDto
""" # noqa: E501
asset_ids: List[StrictStr] = Field(alias="assetIds")
asset_ids: List[UUID] = Field(description="Asset IDs", alias="assetIds")
__properties: ClassVar[List[str]] = ["assetIds"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,10 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
from pydantic import BaseModel, ConfigDict, Field, StrictBool
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from generated.immich.openapi_client.models.asset_id_error_reason import AssetIdErrorReason
from typing import Optional, Set
from typing_extensions import Self
@@ -26,19 +28,16 @@ class AssetIdsResponseDto(BaseModel):
"""
AssetIdsResponseDto
""" # noqa: E501
asset_id: StrictStr = Field(alias="assetId")
error: Optional[StrictStr] = None
success: StrictBool
asset_id: UUID = Field(description="Asset ID", alias="assetId")
error: Optional[AssetIdErrorReason] = None
success: StrictBool = Field(description="Whether operation succeeded")
__properties: ClassVar[List[str]] = ["assetId", "error", "success"]
@field_validator('error')
def error_validate_enum(cls, value):
"""Validates the enum"""
if value is None:
return value
if value not in set(['duplicate', 'no_permission', 'not_found']):
raise ValueError("must be one of enum values ('duplicate', 'no_permission', 'not_found')")
@field_validator('asset_id')
def asset_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,7 +20,7 @@ from typing_extensions import Self
class AssetJobName(str, Enum):
"""
AssetJobName
Job name
"""
"""
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from generated.immich.openapi_client.models.asset_job_name import AssetJobName
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class AssetJobsDto(BaseModel):
"""
AssetJobsDto
""" # noqa: E501
asset_ids: List[StrictStr] = Field(alias="assetIds")
asset_ids: List[UUID] = Field(description="Asset IDs", alias="assetIds")
name: AssetJobName
__properties: ClassVar[List[str]] = ["assetIds", "name"]
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from generated.immich.openapi_client.models.asset_media_status import AssetMediaStatus
from typing import Optional, Set
from typing_extensions import Self
@@ -27,10 +28,17 @@ class AssetMediaResponseDto(BaseModel):
"""
AssetMediaResponseDto
""" # noqa: E501
id: StrictStr
id: UUID = Field(description="Asset media ID")
status: AssetMediaStatus
__properties: ClassVar[List[str]] = ["id", "status"]
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,12 +20,13 @@ from typing_extensions import Self
class AssetMediaSize(str, Enum):
"""
AssetMediaSize
Asset media size
"""
"""
allowed enum values
"""
ORIGINAL = 'original'
FULLSIZE = 'fullsize'
PREVIEW = 'preview'
THUMBNAIL = 'thumbnail'
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,14 +20,13 @@ from typing_extensions import Self
class AssetMediaStatus(str, Enum):
"""
AssetMediaStatus
Upload status
"""
"""
allowed enum values
"""
CREATED = 'created'
REPLACED = 'replaced'
DUPLICATE = 'duplicate'
@classmethod
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,7 +20,7 @@ from typing_extensions import Self
class AssetOrder(str, Enum):
"""
AssetOrder
Asset sort order
"""
"""
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,11 +20,13 @@ import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from generated.immich.openapi_client.models.asset_face_without_person_response_dto import AssetFaceWithoutPersonResponseDto
from typing_extensions import Annotated
from uuid import UUID
from generated.immich.openapi_client.models.asset_stack_response_dto import AssetStackResponseDto
from generated.immich.openapi_client.models.asset_type_enum import AssetTypeEnum
from generated.immich.openapi_client.models.asset_visibility import AssetVisibility
from generated.immich.openapi_client.models.exif_response_dto import ExifResponseDto
from generated.immich.openapi_client.models.person_with_faces_response_dto import PersonWithFacesResponseDto
from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
from generated.immich.openapi_client.models.user_response_dto import UserResponseDto
from typing import Optional, Set
@@ -34,37 +36,73 @@ class AssetResponseDto(BaseModel):
"""
AssetResponseDto
""" # noqa: E501
checksum: StrictStr = Field(description="base64 encoded sha1 hash")
device_asset_id: StrictStr = Field(alias="deviceAssetId")
device_id: StrictStr = Field(alias="deviceId")
duplicate_id: Optional[StrictStr] = Field(default=None, alias="duplicateId")
duration: StrictStr
checksum: StrictStr = Field(description="Base64 encoded SHA1 hash")
created_at: datetime = Field(description="The UTC timestamp when the asset was originally uploaded to Immich.", alias="createdAt")
duplicate_id: Optional[UUID] = Field(default=None, description="Duplicate group ID", alias="duplicateId")
duration: Optional[Annotated[int, Field(le=2147483647, strict=True, ge=0)]] = Field(description="Video/gif duration in milliseconds (null for static images)")
exif_info: Optional[ExifResponseDto] = Field(default=None, alias="exifInfo")
file_created_at: datetime = Field(alias="fileCreatedAt")
file_modified_at: datetime = Field(alias="fileModifiedAt")
has_metadata: StrictBool = Field(alias="hasMetadata")
id: StrictStr
is_archived: StrictBool = Field(alias="isArchived")
is_favorite: StrictBool = Field(alias="isFavorite")
is_offline: StrictBool = Field(alias="isOffline")
is_trashed: StrictBool = Field(alias="isTrashed")
library_id: Optional[StrictStr] = Field(default=None, description="This property was deprecated in v1.106.0", alias="libraryId")
live_photo_video_id: Optional[StrictStr] = Field(default=None, alias="livePhotoVideoId")
local_date_time: datetime = Field(alias="localDateTime")
original_file_name: StrictStr = Field(alias="originalFileName")
original_mime_type: Optional[StrictStr] = Field(default=None, alias="originalMimeType")
original_path: StrictStr = Field(alias="originalPath")
file_created_at: datetime = Field(description="The actual UTC timestamp when the file was created/captured, preserving timezone information. This is the authoritative timestamp for chronological sorting within timeline groups. Combined with timezone data, this can be used to determine the exact moment the photo was taken.", alias="fileCreatedAt")
file_modified_at: datetime = Field(description="The UTC timestamp when the file was last modified on the filesystem. This reflects the last time the physical file was changed, which may be different from when the photo was originally taken.", alias="fileModifiedAt")
has_metadata: StrictBool = Field(description="Whether asset has metadata", alias="hasMetadata")
height: Optional[Annotated[int, Field(le=9007199254740991, strict=True, ge=0)]] = Field(description="Asset height")
id: UUID = Field(description="Asset ID")
is_archived: StrictBool = Field(description="Is archived", alias="isArchived")
is_edited: StrictBool = Field(description="Is edited", alias="isEdited")
is_favorite: StrictBool = Field(description="Is favorite", alias="isFavorite")
is_offline: StrictBool = Field(description="Is offline", alias="isOffline")
is_trashed: StrictBool = Field(description="Is trashed", alias="isTrashed")
library_id: Optional[UUID] = Field(default=None, description="Library ID", alias="libraryId")
live_photo_video_id: Optional[StrictStr] = Field(default=None, description="Live photo video ID", alias="livePhotoVideoId")
local_date_time: datetime = Field(description="The local date and time when the photo/video was taken, derived from EXIF metadata. This represents the photographer's local time regardless of timezone, stored as a timezone-agnostic timestamp. Used for timeline grouping by \"local\" days and months.", alias="localDateTime")
original_file_name: StrictStr = Field(description="Original file name", alias="originalFileName")
original_mime_type: Optional[StrictStr] = Field(default=None, description="Original MIME type", alias="originalMimeType")
original_path: StrictStr = Field(description="Original file path", alias="originalPath")
owner: Optional[UserResponseDto] = None
owner_id: StrictStr = Field(alias="ownerId")
people: Optional[List[PersonWithFacesResponseDto]] = None
resized: Optional[StrictBool] = Field(default=None, description="This property was deprecated in v1.113.0")
owner_id: UUID = Field(description="Owner user ID", alias="ownerId")
people: Optional[List[PersonResponseDto]] = None
resized: Optional[StrictBool] = Field(default=None, description="Is resized")
stack: Optional[AssetStackResponseDto] = None
tags: Optional[List[TagResponseDto]] = None
thumbhash: Optional[StrictStr]
thumbhash: Optional[StrictStr] = Field(description="Thumbhash for thumbnail generation (base64) also used as the c query param for thumbnail cache busting.")
type: AssetTypeEnum
unassigned_faces: Optional[List[AssetFaceWithoutPersonResponseDto]] = Field(default=None, alias="unassignedFaces")
updated_at: datetime = Field(alias="updatedAt")
__properties: ClassVar[List[str]] = ["checksum", "deviceAssetId", "deviceId", "duplicateId", "duration", "exifInfo", "fileCreatedAt", "fileModifiedAt", "hasMetadata", "id", "isArchived", "isFavorite", "isOffline", "isTrashed", "libraryId", "livePhotoVideoId", "localDateTime", "originalFileName", "originalMimeType", "originalPath", "owner", "ownerId", "people", "resized", "stack", "tags", "thumbhash", "type", "unassignedFaces", "updatedAt"]
updated_at: datetime = Field(description="The UTC timestamp when the asset record was last updated in the database. This is automatically maintained by the database and reflects when any field in the asset was last modified.", alias="updatedAt")
visibility: AssetVisibility
width: Optional[Annotated[int, Field(le=9007199254740991, strict=True, ge=0)]] = Field(description="Asset width")
__properties: ClassVar[List[str]] = ["checksum", "createdAt", "duplicateId", "duration", "exifInfo", "fileCreatedAt", "fileModifiedAt", "hasMetadata", "height", "id", "isArchived", "isEdited", "isFavorite", "isOffline", "isTrashed", "libraryId", "livePhotoVideoId", "localDateTime", "originalFileName", "originalMimeType", "originalPath", "owner", "ownerId", "people", "resized", "stack", "tags", "thumbhash", "type", "updatedAt", "visibility", "width"]
@field_validator('duplicate_id')
def duplicate_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('library_id')
def library_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('owner_id')
def owner_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
@@ -128,18 +166,21 @@ class AssetResponseDto(BaseModel):
if _item_tags:
_items.append(_item_tags.to_dict())
_dict['tags'] = _items
# override the default output from pydantic by calling `to_dict()` of each item in unassigned_faces (list)
_items = []
if self.unassigned_faces:
for _item_unassigned_faces in self.unassigned_faces:
if _item_unassigned_faces:
_items.append(_item_unassigned_faces.to_dict())
_dict['unassignedFaces'] = _items
# set to None if duplicate_id (nullable) is None
# and model_fields_set contains the field
if self.duplicate_id is None and "duplicate_id" in self.model_fields_set:
_dict['duplicateId'] = None
# set to None if duration (nullable) is None
# and model_fields_set contains the field
if self.duration is None and "duration" in self.model_fields_set:
_dict['duration'] = None
# set to None if height (nullable) is None
# and model_fields_set contains the field
if self.height is None and "height" in self.model_fields_set:
_dict['height'] = None
# set to None if library_id (nullable) is None
# and model_fields_set contains the field
if self.library_id is None and "library_id" in self.model_fields_set:
@@ -160,6 +201,11 @@ class AssetResponseDto(BaseModel):
if self.thumbhash is None and "thumbhash" in self.model_fields_set:
_dict['thumbhash'] = None
# set to None if width (nullable) is None
# and model_fields_set contains the field
if self.width is None and "width" in self.model_fields_set:
_dict['width'] = None
return _dict
@classmethod
@@ -173,16 +219,17 @@ class AssetResponseDto(BaseModel):
_obj = cls.model_validate({
"checksum": obj.get("checksum"),
"deviceAssetId": obj.get("deviceAssetId"),
"deviceId": obj.get("deviceId"),
"createdAt": obj.get("createdAt"),
"duplicateId": obj.get("duplicateId"),
"duration": obj.get("duration"),
"exifInfo": ExifResponseDto.from_dict(obj["exifInfo"]) if obj.get("exifInfo") is not None else None,
"fileCreatedAt": obj.get("fileCreatedAt"),
"fileModifiedAt": obj.get("fileModifiedAt"),
"hasMetadata": obj.get("hasMetadata"),
"height": obj.get("height"),
"id": obj.get("id"),
"isArchived": obj.get("isArchived"),
"isEdited": obj.get("isEdited"),
"isFavorite": obj.get("isFavorite"),
"isOffline": obj.get("isOffline"),
"isTrashed": obj.get("isTrashed"),
@@ -194,14 +241,15 @@ class AssetResponseDto(BaseModel):
"originalPath": obj.get("originalPath"),
"owner": UserResponseDto.from_dict(obj["owner"]) if obj.get("owner") is not None else None,
"ownerId": obj.get("ownerId"),
"people": [PersonWithFacesResponseDto.from_dict(_item) for _item in obj["people"]] if obj.get("people") is not None else None,
"people": [PersonResponseDto.from_dict(_item) for _item in obj["people"]] if obj.get("people") is not None else None,
"resized": obj.get("resized"),
"stack": AssetStackResponseDto.from_dict(obj["stack"]) if obj.get("stack") is not None else None,
"tags": [TagResponseDto.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None,
"thumbhash": obj.get("thumbhash"),
"type": obj.get("type"),
"unassignedFaces": [AssetFaceWithoutPersonResponseDto.from_dict(_item) for _item in obj["unassignedFaces"]] if obj.get("unassignedFaces") is not None else None,
"updatedAt": obj.get("updatedAt")
"updatedAt": obj.get("updatedAt"),
"visibility": obj.get("visibility"),
"width": obj.get("width")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,10 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -26,11 +28,25 @@ class AssetStackResponseDto(BaseModel):
"""
AssetStackResponseDto
""" # noqa: E501
asset_count: StrictInt = Field(alias="assetCount")
id: StrictStr
primary_asset_id: StrictStr = Field(alias="primaryAssetId")
asset_count: Annotated[int, Field(le=9007199254740991, strict=True, ge=0)] = Field(description="Number of assets in stack", alias="assetCount")
id: UUID = Field(description="Stack ID")
primary_asset_id: UUID = Field(description="Primary asset ID", alias="primaryAssetId")
__properties: ClassVar[List[str]] = ["assetCount", "id", "primaryAssetId"]
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('primary_asset_id')
def primary_asset_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictInt
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -26,9 +27,9 @@ class AssetStatsResponseDto(BaseModel):
"""
AssetStatsResponseDto
""" # noqa: E501
images: StrictInt
total: StrictInt
videos: StrictInt
images: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Number of images")
total: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Total number of assets")
videos: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Number of videos")
__properties: ClassVar[List[str]] = ["images", "total", "videos"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,7 +20,7 @@ from typing_extensions import Self
class AssetTypeEnum(str, Enum):
"""
AssetTypeEnum
Asset type
"""
"""
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,7 +20,7 @@ from typing_extensions import Self
class AudioCodec(str, Enum):
"""
AudioCodec
Target audio codec
"""
"""
@@ -28,7 +28,7 @@ class AudioCodec(str, Enum):
"""
MP3 = 'mp3'
AAC = 'aac'
LIBOPUS = 'libopus'
OPUS = 'opus'
PCM_S16LE = 'pcm_s16le'
@classmethod
@@ -1,88 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
from generated.immich.openapi_client.models.user_avatar_color import UserAvatarColor
from typing import Optional, Set
from typing_extensions import Self
class AvatarResponse(BaseModel):
"""
AvatarResponse
""" # noqa: E501
color: UserAvatarColor
__properties: ClassVar[List[str]] = ["color"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of AvatarResponse from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of AvatarResponse from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"color": obj.get("color")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,10 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr, field_validator
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from generated.immich.openapi_client.models.bulk_id_error_reason import BulkIdErrorReason
from typing import Optional, Set
from typing_extensions import Self
@@ -26,19 +28,17 @@ class BulkIdResponseDto(BaseModel):
"""
BulkIdResponseDto
""" # noqa: E501
error: Optional[StrictStr] = None
id: StrictStr
success: StrictBool
__properties: ClassVar[List[str]] = ["error", "id", "success"]
error: Optional[BulkIdErrorReason] = None
error_message: Optional[StrictStr] = Field(default=None, alias="errorMessage")
id: UUID = Field(description="ID")
success: StrictBool = Field(description="Whether operation succeeded")
__properties: ClassVar[List[str]] = ["error", "errorMessage", "id", "success"]
@field_validator('error')
def error_validate_enum(cls, value):
"""Validates the enum"""
if value is None:
return value
if value not in set(['duplicate', 'no_permission', 'not_found', 'unknown']):
raise ValueError("must be one of enum values ('duplicate', 'no_permission', 'not_found', 'unknown')")
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
@@ -93,6 +93,7 @@ class BulkIdResponseDto(BaseModel):
_obj = cls.model_validate({
"error": obj.get("error"),
"errorMessage": obj.get("errorMessage"),
"id": obj.get("id"),
"success": obj.get("success")
})
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -26,7 +27,7 @@ class BulkIdsDto(BaseModel):
"""
BulkIdsDto
""" # noqa: E501
ids: List[StrictStr]
ids: List[UUID] = Field(description="IDs to process")
__properties: ClassVar[List[str]] = ["ids"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,8 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -27,9 +27,10 @@ class ChangePasswordDto(BaseModel):
"""
ChangePasswordDto
""" # noqa: E501
new_password: Annotated[str, Field(min_length=8, strict=True)] = Field(alias="newPassword")
password: StrictStr
__properties: ClassVar[List[str]] = ["newPassword", "password"]
invalidate_sessions: Optional[StrictBool] = Field(default=False, description="Invalidate all other sessions", alias="invalidateSessions")
new_password: Annotated[str, Field(min_length=8, strict=True)] = Field(description="New password (min 8 characters)", alias="newPassword")
password: StrictStr = Field(description="Current password")
__properties: ClassVar[List[str]] = ["invalidateSessions", "newPassword", "password"]
model_config = ConfigDict(
populate_by_name=True,
@@ -82,6 +83,7 @@ class ChangePasswordDto(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"invalidateSessions": obj.get("invalidateSessions") if obj.get("invalidateSessions") is not None else False,
"newPassword": obj.get("newPassword"),
"password": obj.get("password")
})
@@ -1,90 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
class CheckExistingAssetsDto(BaseModel):
"""
CheckExistingAssetsDto
""" # noqa: E501
device_asset_ids: Annotated[List[StrictStr], Field(min_length=1)] = Field(alias="deviceAssetIds")
device_id: StrictStr = Field(alias="deviceId")
__properties: ClassVar[List[str]] = ["deviceAssetIds", "deviceId"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of CheckExistingAssetsDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of CheckExistingAssetsDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"deviceAssetIds": obj.get("deviceAssetIds"),
"deviceId": obj.get("deviceId")
})
return _obj
@@ -1,87 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self
class CheckExistingAssetsResponseDto(BaseModel):
"""
CheckExistingAssetsResponseDto
""" # noqa: E501
existing_ids: List[StrictStr] = Field(alias="existingIds")
__properties: ClassVar[List[str]] = ["existingIds"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of CheckExistingAssetsResponseDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of CheckExistingAssetsResponseDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"existingIds": obj.get("existingIds")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -26,8 +26,8 @@ class CLIPConfig(BaseModel):
"""
CLIPConfig
""" # noqa: E501
enabled: StrictBool
model_name: StrictStr = Field(alias="modelName")
enabled: StrictBool = Field(description="Whether the task is enabled")
model_name: StrictStr = Field(description="Name of the model to use", alias="modelName")
__properties: ClassVar[List[str]] = ["enabled", "modelName"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,7 +20,7 @@ from typing_extensions import Self
class CQMode(str, Enum):
"""
CQMode
CQ mode
"""
"""
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -19,6 +19,7 @@ import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from generated.immich.openapi_client.models.album_user_create_dto import AlbumUserCreateDto
from typing import Optional, Set
from typing_extensions import Self
@@ -27,10 +28,10 @@ class CreateAlbumDto(BaseModel):
"""
CreateAlbumDto
""" # noqa: E501
album_name: StrictStr = Field(alias="albumName")
album_users: Optional[List[AlbumUserCreateDto]] = Field(default=None, alias="albumUsers")
asset_ids: Optional[List[StrictStr]] = Field(default=None, alias="assetIds")
description: Optional[StrictStr] = None
album_name: StrictStr = Field(description="Album name", alias="albumName")
album_users: Optional[List[AlbumUserCreateDto]] = Field(default=None, description="Album users", alias="albumUsers")
asset_ids: Optional[List[UUID]] = Field(default=None, description="Initial asset IDs", alias="assetIds")
description: Optional[StrictStr] = Field(default=None, description="Album description")
__properties: ClassVar[List[str]] = ["albumName", "albumUsers", "assetIds", "description"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,6 +20,7 @@ import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,12 +28,19 @@ class CreateLibraryDto(BaseModel):
"""
CreateLibraryDto
""" # noqa: E501
exclusion_patterns: Optional[Annotated[List[StrictStr], Field(max_length=128)]] = Field(default=None, alias="exclusionPatterns")
import_paths: Optional[Annotated[List[StrictStr], Field(max_length=128)]] = Field(default=None, alias="importPaths")
name: Optional[StrictStr] = None
owner_id: StrictStr = Field(alias="ownerId")
exclusion_patterns: Optional[Annotated[List[StrictStr], Field(max_length=128)]] = Field(default=None, description="Exclusion patterns (max 128)", alias="exclusionPatterns")
import_paths: Optional[Annotated[List[StrictStr], Field(max_length=128)]] = Field(default=None, description="Import paths (max 128)", alias="importPaths")
name: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="Library name")
owner_id: UUID = Field(description="Owner user ID", alias="ownerId")
__properties: ClassVar[List[str]] = ["exclusionPatterns", "importPaths", "name", "ownerId"]
@field_validator('owner_id')
def owner_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,6 +20,7 @@ import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,11 +28,25 @@ class CreateProfileImageResponseDto(BaseModel):
"""
CreateProfileImageResponseDto
""" # noqa: E501
profile_changed_at: datetime = Field(alias="profileChangedAt")
profile_image_path: StrictStr = Field(alias="profileImagePath")
user_id: StrictStr = Field(alias="userId")
profile_changed_at: datetime = Field(description="Profile image change date", alias="profileChangedAt")
profile_image_path: StrictStr = Field(description="Profile image file path", alias="profileImagePath")
user_id: UUID = Field(description="User ID", alias="userId")
__properties: ClassVar[List[str]] = ["profileChangedAt", "profileImagePath", "userId"]
@field_validator('profile_changed_at')
def profile_changed_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
@field_validator('user_id')
def user_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -18,7 +18,7 @@ import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Union
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -27,9 +27,9 @@ class DatabaseBackupConfig(BaseModel):
"""
DatabaseBackupConfig
""" # noqa: E501
cron_expression: StrictStr = Field(alias="cronExpression")
enabled: StrictBool
keep_last_amount: Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]] = Field(alias="keepLastAmount")
cron_expression: StrictStr = Field(description="Cron expression", alias="cronExpression")
enabled: StrictBool = Field(description="Enabled")
keep_last_amount: Annotated[int, Field(le=9007199254740991, strict=True, ge=1)] = Field(description="Keep last amount", alias="keepLastAmount")
__properties: ClassVar[List[str]] = ["cronExpression", "enabled", "keepLastAmount"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,10 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -26,8 +28,8 @@ class DownloadArchiveInfo(BaseModel):
"""
DownloadArchiveInfo
""" # noqa: E501
asset_ids: List[StrictStr] = Field(alias="assetIds")
size: StrictInt
asset_ids: List[UUID] = Field(description="Asset IDs in this archive", alias="assetIds")
size: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Archive size in bytes")
__properties: ClassVar[List[str]] = ["assetIds", "size"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,9 +17,10 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,12 +28,32 @@ class DownloadInfoDto(BaseModel):
"""
DownloadInfoDto
""" # noqa: E501
album_id: Optional[StrictStr] = Field(default=None, alias="albumId")
archive_size: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, alias="archiveSize")
asset_ids: Optional[List[StrictStr]] = Field(default=None, alias="assetIds")
user_id: Optional[StrictStr] = Field(default=None, alias="userId")
album_id: Optional[UUID] = Field(default=None, description="Album ID to download", alias="albumId")
archive_size: Optional[Annotated[int, Field(le=9007199254740991, strict=True, ge=1)]] = Field(default=None, description="Archive size limit in bytes", alias="archiveSize")
asset_ids: Optional[List[UUID]] = Field(default=None, description="Asset IDs to download", alias="assetIds")
user_id: Optional[UUID] = Field(default=None, description="User ID to download assets from", alias="userId")
__properties: ClassVar[List[str]] = ["albumId", "archiveSize", "assetIds", "userId"]
@field_validator('album_id')
def album_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('user_id')
def user_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt
from pydantic import BaseModel, ConfigDict, Field, StrictBool
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -26,8 +27,8 @@ class DownloadResponse(BaseModel):
"""
DownloadResponse
""" # noqa: E501
archive_size: StrictInt = Field(alias="archiveSize")
include_embedded_videos: StrictBool = Field(alias="includeEmbeddedVideos")
archive_size: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Maximum archive size in bytes", alias="archiveSize")
include_embedded_videos: StrictBool = Field(description="Whether to include embedded videos in downloads", alias="includeEmbeddedVideos")
__properties: ClassVar[List[str]] = ["archiveSize", "includeEmbeddedVideos"]
model_config = ConfigDict(
@@ -82,7 +83,7 @@ class DownloadResponse(BaseModel):
_obj = cls.model_validate({
"archiveSize": obj.get("archiveSize"),
"includeEmbeddedVideos": obj.get("includeEmbeddedVideos") if obj.get("includeEmbeddedVideos") is not None else False
"includeEmbeddedVideos": obj.get("includeEmbeddedVideos")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from generated.immich.openapi_client.models.download_archive_info import DownloadArchiveInfo
from typing import Optional, Set
from typing_extensions import Self
@@ -27,8 +28,8 @@ class DownloadResponseDto(BaseModel):
"""
DownloadResponseDto
""" # noqa: E501
archives: List[DownloadArchiveInfo]
total_size: StrictInt = Field(alias="totalSize")
archives: List[DownloadArchiveInfo] = Field(description="Archive information")
total_size: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Total size in bytes", alias="totalSize")
__properties: ClassVar[List[str]] = ["archives", "totalSize"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -27,8 +27,8 @@ class DownloadUpdate(BaseModel):
"""
DownloadUpdate
""" # noqa: E501
archive_size: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, alias="archiveSize")
include_embedded_videos: Optional[StrictBool] = Field(default=None, alias="includeEmbeddedVideos")
archive_size: Optional[Annotated[int, Field(le=9007199254740991, strict=True, ge=1)]] = Field(default=None, description="Maximum archive size in bytes", alias="archiveSize")
include_embedded_videos: Optional[StrictBool] = Field(default=None, description="Whether to include embedded videos in downloads", alias="includeEmbeddedVideos")
__properties: ClassVar[List[str]] = ["archiveSize", "includeEmbeddedVideos"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -27,8 +27,8 @@ class DuplicateDetectionConfig(BaseModel):
"""
DuplicateDetectionConfig
""" # noqa: E501
enabled: StrictBool
max_distance: Union[Annotated[float, Field(le=0.1, strict=True, ge=0.001)], Annotated[int, Field(le=0, strict=True, ge=1)]] = Field(alias="maxDistance")
enabled: StrictBool = Field(description="Whether the task is enabled")
max_distance: Union[Annotated[float, Field(le=0.1, strict=True, ge=0.001)], Annotated[int, Field(le=0, strict=True, ge=1)]] = Field(description="Maximum distance threshold for duplicate detection", alias="maxDistance")
__properties: ClassVar[List[str]] = ["enabled", "maxDistance"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
from typing import Optional, Set
from typing_extensions import Self
@@ -27,9 +28,17 @@ class DuplicateResponseDto(BaseModel):
"""
DuplicateResponseDto
""" # noqa: E501
assets: List[AssetResponseDto]
duplicate_id: StrictStr = Field(alias="duplicateId")
__properties: ClassVar[List[str]] = ["assets", "duplicateId"]
assets: List[AssetResponseDto] = Field(description="Duplicate assets")
duplicate_id: UUID = Field(description="Duplicate group ID", alias="duplicateId")
suggested_keep_asset_ids: List[UUID] = Field(description="Suggested asset IDs to keep based on file size and EXIF data", alias="suggestedKeepAssetIds")
__properties: ClassVar[List[str]] = ["assets", "duplicateId", "suggestedKeepAssetIds"]
@field_validator('duplicate_id')
def duplicate_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
@@ -90,7 +99,8 @@ class DuplicateResponseDto(BaseModel):
_obj = cls.model_validate({
"assets": [AssetResponseDto.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None,
"duplicateId": obj.get("duplicateId")
"duplicateId": obj.get("duplicateId"),
"suggestedKeepAssetIds": obj.get("suggestedKeepAssetIds")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -26,9 +26,9 @@ class EmailNotificationsResponse(BaseModel):
"""
EmailNotificationsResponse
""" # noqa: E501
album_invite: StrictBool = Field(alias="albumInvite")
album_update: StrictBool = Field(alias="albumUpdate")
enabled: StrictBool
album_invite: StrictBool = Field(description="Whether to receive email notifications for album invites", alias="albumInvite")
album_update: StrictBool = Field(description="Whether to receive email notifications for album updates", alias="albumUpdate")
enabled: StrictBool = Field(description="Whether email notifications are enabled")
__properties: ClassVar[List[str]] = ["albumInvite", "albumUpdate", "enabled"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -26,9 +26,9 @@ class EmailNotificationsUpdate(BaseModel):
"""
EmailNotificationsUpdate
""" # noqa: E501
album_invite: Optional[StrictBool] = Field(default=None, alias="albumInvite")
album_update: Optional[StrictBool] = Field(default=None, alias="albumUpdate")
enabled: Optional[StrictBool] = None
album_invite: Optional[StrictBool] = Field(default=None, description="Whether to receive email notifications for album invites", alias="albumInvite")
album_update: Optional[StrictBool] = Field(default=None, description="Whether to receive email notifications for album updates", alias="albumUpdate")
enabled: Optional[StrictBool] = Field(default=None, description="Whether email notifications are enabled")
__properties: ClassVar[List[str]] = ["albumInvite", "albumUpdate", "enabled"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,35 +20,36 @@ import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional, Union
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
class ExifResponseDto(BaseModel):
"""
ExifResponseDto
EXIF response
""" # noqa: E501
city: Optional[StrictStr] = None
country: Optional[StrictStr] = None
date_time_original: Optional[datetime] = Field(default=None, alias="dateTimeOriginal")
description: Optional[StrictStr] = None
exif_image_height: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="exifImageHeight")
exif_image_width: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="exifImageWidth")
exposure_time: Optional[StrictStr] = Field(default=None, alias="exposureTime")
f_number: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="fNumber")
file_size_in_byte: Optional[StrictInt] = Field(default=None, alias="fileSizeInByte")
focal_length: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="focalLength")
iso: Optional[Union[StrictFloat, StrictInt]] = None
latitude: Optional[Union[StrictFloat, StrictInt]] = None
lens_model: Optional[StrictStr] = Field(default=None, alias="lensModel")
longitude: Optional[Union[StrictFloat, StrictInt]] = None
make: Optional[StrictStr] = None
model: Optional[StrictStr] = None
modify_date: Optional[datetime] = Field(default=None, alias="modifyDate")
orientation: Optional[StrictStr] = None
projection_type: Optional[StrictStr] = Field(default=None, alias="projectionType")
rating: Optional[Union[StrictFloat, StrictInt]] = None
state: Optional[StrictStr] = None
time_zone: Optional[StrictStr] = Field(default=None, alias="timeZone")
city: Optional[StrictStr] = Field(default=None, description="City name")
country: Optional[StrictStr] = Field(default=None, description="Country name")
date_time_original: Optional[datetime] = Field(default=None, description="Original date/time", alias="dateTimeOriginal")
description: Optional[StrictStr] = Field(default=None, description="Image description")
exif_image_height: Optional[Annotated[int, Field(le=9007199254740991, strict=True, ge=0)]] = Field(default=None, description="Image height in pixels", alias="exifImageHeight")
exif_image_width: Optional[Annotated[int, Field(le=9007199254740991, strict=True, ge=0)]] = Field(default=None, description="Image width in pixels", alias="exifImageWidth")
exposure_time: Optional[StrictStr] = Field(default=None, description="Exposure time", alias="exposureTime")
f_number: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="F-number (aperture)", alias="fNumber")
file_size_in_byte: Optional[Annotated[int, Field(le=9007199254740991, strict=True, ge=0)]] = Field(default=None, description="File size in bytes", alias="fileSizeInByte")
focal_length: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Focal length in mm", alias="focalLength")
iso: Optional[Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)]] = Field(default=None, description="ISO sensitivity")
latitude: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="GPS latitude")
lens_model: Optional[StrictStr] = Field(default=None, description="Lens model", alias="lensModel")
longitude: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="GPS longitude")
make: Optional[StrictStr] = Field(default=None, description="Camera make")
model: Optional[StrictStr] = Field(default=None, description="Camera model")
modify_date: Optional[datetime] = Field(default=None, description="Modification date/time", alias="modifyDate")
orientation: Optional[StrictStr] = Field(default=None, description="Image orientation")
projection_type: Optional[StrictStr] = Field(default=None, description="Projection type", alias="projectionType")
rating: Optional[Annotated[int, Field(le=5, strict=True, ge=1)]] = Field(default=None, description="Rating")
state: Optional[StrictStr] = Field(default=None, description="State/province name")
time_zone: Optional[StrictStr] = Field(default=None, description="Time zone", alias="timeZone")
__properties: ClassVar[List[str]] = ["city", "country", "dateTimeOriginal", "description", "exifImageHeight", "exifImageWidth", "exposureTime", "fNumber", "fileSizeInByte", "focalLength", "iso", "latitude", "lensModel", "longitude", "make", "model", "modifyDate", "orientation", "projectionType", "rating", "state", "timeZone"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictStr
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -26,9 +27,16 @@ class FaceDto(BaseModel):
"""
FaceDto
""" # noqa: E501
id: StrictStr
id: UUID = Field(description="Face ID")
__properties: ClassVar[List[str]] = ["id"]
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -27,11 +27,11 @@ class FacialRecognitionConfig(BaseModel):
"""
FacialRecognitionConfig
""" # noqa: E501
enabled: StrictBool
max_distance: Union[Annotated[float, Field(le=2, strict=True, ge=0.1)], Annotated[int, Field(le=2, strict=True, ge=1)]] = Field(alias="maxDistance")
min_faces: Annotated[int, Field(strict=True, ge=1)] = Field(alias="minFaces")
min_score: Union[Annotated[float, Field(le=1, strict=True, ge=0.1)], Annotated[int, Field(le=1, strict=True, ge=1)]] = Field(alias="minScore")
model_name: StrictStr = Field(alias="modelName")
enabled: StrictBool = Field(description="Whether the task is enabled")
max_distance: Union[Annotated[float, Field(le=2, strict=True, ge=0.1)], Annotated[int, Field(le=2, strict=True, ge=1)]] = Field(description="Maximum distance threshold for face recognition", alias="maxDistance")
min_faces: Annotated[int, Field(le=9007199254740991, strict=True, ge=1)] = Field(description="Minimum number of faces required for recognition", alias="minFaces")
min_score: Union[Annotated[float, Field(le=1, strict=True, ge=0.1)], Annotated[int, Field(le=1, strict=True, ge=1)]] = Field(description="Minimum confidence score for face detection", alias="minScore")
model_name: StrictStr = Field(description="Name of the model to use", alias="modelName")
__properties: ClassVar[List[str]] = ["enabled", "maxDistance", "minFaces", "minScore", "modelName"]
model_config = ConfigDict(
@@ -1,87 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictStr
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self
class FileChecksumDto(BaseModel):
"""
FileChecksumDto
""" # noqa: E501
filenames: List[StrictStr]
__properties: ClassVar[List[str]] = ["filenames"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of FileChecksumDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of FileChecksumDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"filenames": obj.get("filenames")
})
return _obj
@@ -1,89 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictStr
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self
class FileChecksumResponseDto(BaseModel):
"""
FileChecksumResponseDto
""" # noqa: E501
checksum: StrictStr
filename: StrictStr
__properties: ClassVar[List[str]] = ["checksum", "filename"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of FileChecksumResponseDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of FileChecksumResponseDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"checksum": obj.get("checksum"),
"filename": obj.get("filename")
})
return _obj
@@ -1,97 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictStr
from typing import Any, ClassVar, Dict, List
from generated.immich.openapi_client.models.file_report_item_dto import FileReportItemDto
from typing import Optional, Set
from typing_extensions import Self
class FileReportDto(BaseModel):
"""
FileReportDto
""" # noqa: E501
extras: List[StrictStr]
orphans: List[FileReportItemDto]
__properties: ClassVar[List[str]] = ["extras", "orphans"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of FileReportDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of each item in orphans (list)
_items = []
if self.orphans:
for _item_orphans in self.orphans:
if _item_orphans:
_items.append(_item_orphans.to_dict())
_dict['orphans'] = _items
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of FileReportDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"extras": obj.get("extras"),
"orphans": [FileReportItemDto.from_dict(_item) for _item in obj["orphans"]] if obj.get("orphans") is not None else None
})
return _obj
@@ -1,95 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
from generated.immich.openapi_client.models.file_report_item_dto import FileReportItemDto
from typing import Optional, Set
from typing_extensions import Self
class FileReportFixDto(BaseModel):
"""
FileReportFixDto
""" # noqa: E501
items: List[FileReportItemDto]
__properties: ClassVar[List[str]] = ["items"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of FileReportFixDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of each item in items (list)
_items = []
if self.items:
for _item_items in self.items:
if _item_items:
_items.append(_item_items.to_dict())
_dict['items'] = _items
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of FileReportFixDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"items": [FileReportItemDto.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None
})
return _obj
@@ -1,97 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from generated.immich.openapi_client.models.path_entity_type import PathEntityType
from generated.immich.openapi_client.models.path_type import PathType
from typing import Optional, Set
from typing_extensions import Self
class FileReportItemDto(BaseModel):
"""
FileReportItemDto
""" # noqa: E501
checksum: Optional[StrictStr] = None
entity_id: StrictStr = Field(alias="entityId")
entity_type: PathEntityType = Field(alias="entityType")
path_type: PathType = Field(alias="pathType")
path_value: StrictStr = Field(alias="pathValue")
__properties: ClassVar[List[str]] = ["checksum", "entityId", "entityType", "pathType", "pathValue"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of FileReportItemDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of FileReportItemDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"checksum": obj.get("checksum"),
"entityId": obj.get("entityId"),
"entityType": obj.get("entityType"),
"pathType": obj.get("pathType"),
"pathValue": obj.get("pathValue")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -26,8 +26,8 @@ class FoldersResponse(BaseModel):
"""
FoldersResponse
""" # noqa: E501
enabled: StrictBool
sidebar_web: StrictBool = Field(alias="sidebarWeb")
enabled: StrictBool = Field(description="Whether folders are enabled")
sidebar_web: StrictBool = Field(description="Whether folders appear in web sidebar", alias="sidebarWeb")
__properties: ClassVar[List[str]] = ["enabled", "sidebarWeb"]
model_config = ConfigDict(
@@ -81,8 +81,8 @@ class FoldersResponse(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"enabled": obj.get("enabled") if obj.get("enabled") is not None else False,
"sidebarWeb": obj.get("sidebarWeb") if obj.get("sidebarWeb") is not None else False
"enabled": obj.get("enabled"),
"sidebarWeb": obj.get("sidebarWeb")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -26,8 +26,8 @@ class FoldersUpdate(BaseModel):
"""
FoldersUpdate
""" # noqa: E501
enabled: Optional[StrictBool] = None
sidebar_web: Optional[StrictBool] = Field(default=None, alias="sidebarWeb")
enabled: Optional[StrictBool] = Field(default=None, description="Whether folders are enabled")
sidebar_web: Optional[StrictBool] = Field(default=None, description="Whether folders appear in web sidebar", alias="sidebarWeb")
__properties: ClassVar[List[str]] = ["enabled", "sidebarWeb"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,7 +20,7 @@ from typing_extensions import Self
class ImageFormat(str, Enum):
"""
ImageFormat
Image format
"""
"""
@@ -1,40 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import json
from enum import Enum
from typing_extensions import Self
class JobCommand(str, Enum):
"""
JobCommand
"""
"""
allowed enum values
"""
START = 'start'
PAUSE = 'pause'
RESUME = 'resume'
EMPTY = 'empty'
CLEAR_MINUS_FAILED = 'clear-failed'
@classmethod
def from_json(cls, json_str: str) -> Self:
"""Create an instance of JobCommand from a JSON string"""
return cls(json.loads(json_str))
@@ -1,90 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictBool
from typing import Any, ClassVar, Dict, List, Optional
from generated.immich.openapi_client.models.job_command import JobCommand
from typing import Optional, Set
from typing_extensions import Self
class JobCommandDto(BaseModel):
"""
JobCommandDto
""" # noqa: E501
command: JobCommand
force: Optional[StrictBool] = None
__properties: ClassVar[List[str]] = ["command", "force"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of JobCommandDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of JobCommandDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"command": obj.get("command"),
"force": obj.get("force")
})
return _obj
@@ -1,97 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictInt
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self
class JobCountsDto(BaseModel):
"""
JobCountsDto
""" # noqa: E501
active: StrictInt
completed: StrictInt
delayed: StrictInt
failed: StrictInt
paused: StrictInt
waiting: StrictInt
__properties: ClassVar[List[str]] = ["active", "completed", "delayed", "failed", "paused", "waiting"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of JobCountsDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of JobCountsDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"active": obj.get("active"),
"completed": obj.get("completed"),
"delayed": obj.get("delayed"),
"failed": obj.get("failed"),
"paused": obj.get("paused"),
"waiting": obj.get("waiting")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,27 +20,78 @@ from typing_extensions import Self
class JobName(str, Enum):
"""
JobName
Job name
"""
"""
allowed enum values
"""
THUMBNAILGENERATION = 'thumbnailGeneration'
METADATAEXTRACTION = 'metadataExtraction'
VIDEOCONVERSION = 'videoConversion'
FACEDETECTION = 'faceDetection'
FACIALRECOGNITION = 'facialRecognition'
SMARTSEARCH = 'smartSearch'
DUPLICATEDETECTION = 'duplicateDetection'
BACKGROUNDTASK = 'backgroundTask'
STORAGETEMPLATEMIGRATION = 'storageTemplateMigration'
MIGRATION = 'migration'
SEARCH = 'search'
SIDECAR = 'sidecar'
LIBRARY = 'library'
NOTIFICATIONS = 'notifications'
BACKUPDATABASE = 'backupDatabase'
ASSETDELETE = 'AssetDelete'
ASSETDELETECHECK = 'AssetDeleteCheck'
ASSETDETECTFACESQUEUEALL = 'AssetDetectFacesQueueAll'
ASSETDETECTFACES = 'AssetDetectFaces'
ASSETDETECTDUPLICATESQUEUEALL = 'AssetDetectDuplicatesQueueAll'
ASSETDETECTDUPLICATES = 'AssetDetectDuplicates'
ASSETEDITTHUMBNAILGENERATION = 'AssetEditThumbnailGeneration'
ASSETENCODEVIDEOQUEUEALL = 'AssetEncodeVideoQueueAll'
ASSETENCODEVIDEO = 'AssetEncodeVideo'
ASSETEMPTYTRASH = 'AssetEmptyTrash'
ASSETEXTRACTMETADATAQUEUEALL = 'AssetExtractMetadataQueueAll'
ASSETEXTRACTMETADATA = 'AssetExtractMetadata'
ASSETFILEMIGRATION = 'AssetFileMigration'
ASSETGENERATETHUMBNAILSQUEUEALL = 'AssetGenerateThumbnailsQueueAll'
ASSETGENERATETHUMBNAILS = 'AssetGenerateThumbnails'
AUDITTABLECLEANUP = 'AuditTableCleanup'
DATABASEBACKUP = 'DatabaseBackup'
FACIALRECOGNITIONQUEUEALL = 'FacialRecognitionQueueAll'
FACIALRECOGNITION = 'FacialRecognition'
FILEDELETE = 'FileDelete'
FILEMIGRATIONQUEUEALL = 'FileMigrationQueueAll'
LIBRARYDELETECHECK = 'LibraryDeleteCheck'
LIBRARYDELETE = 'LibraryDelete'
LIBRARYREMOVEASSET = 'LibraryRemoveAsset'
LIBRARYSCANASSETSQUEUEALL = 'LibraryScanAssetsQueueAll'
LIBRARYSYNCASSETS = 'LibrarySyncAssets'
LIBRARYSYNCFILESQUEUEALL = 'LibrarySyncFilesQueueAll'
LIBRARYSYNCFILES = 'LibrarySyncFiles'
LIBRARYSCANQUEUEALL = 'LibraryScanQueueAll'
HLSSESSIONCLEANUP = 'HlsSessionCleanup'
MEMORYCLEANUP = 'MemoryCleanup'
MEMORYGENERATE = 'MemoryGenerate'
NOTIFICATIONSCLEANUP = 'NotificationsCleanup'
NOTIFYUSERSIGNUP = 'NotifyUserSignup'
NOTIFYALBUMINVITE = 'NotifyAlbumInvite'
NOTIFYALBUMUPDATE = 'NotifyAlbumUpdate'
USERDELETE = 'UserDelete'
USERDELETECHECK = 'UserDeleteCheck'
USERSYNCUSAGE = 'UserSyncUsage'
PERSONCLEANUP = 'PersonCleanup'
PERSONFILEMIGRATION = 'PersonFileMigration'
PERSONGENERATETHUMBNAIL = 'PersonGenerateThumbnail'
SESSIONCLEANUP = 'SessionCleanup'
SENDMAIL = 'SendMail'
SIDECARQUEUEALL = 'SidecarQueueAll'
SIDECARCHECK = 'SidecarCheck'
SIDECARWRITE = 'SidecarWrite'
SMARTSEARCHQUEUEALL = 'SmartSearchQueueAll'
SMARTSEARCH = 'SmartSearch'
STORAGETEMPLATEMIGRATION = 'StorageTemplateMigration'
STORAGETEMPLATEMIGRATIONSINGLE = 'StorageTemplateMigrationSingle'
TAGCLEANUP = 'TagCleanup'
VERSIONCHECK = 'VersionCheck'
OCRQUEUEALL = 'OcrQueueAll'
OCR = 'Ocr'
WORKFLOWASSETTRIGGER = 'WorkflowAssetTrigger'
INTEGRITYUNTRACKEDFILESQUEUEALL = 'IntegrityUntrackedFilesQueueAll'
INTEGRITYUNTRACKEDFILES = 'IntegrityUntrackedFiles'
INTEGRITYUNTRACKEDREFRESH = 'IntegrityUntrackedRefresh'
INTEGRITYMISSINGFILESQUEUEALL = 'IntegrityMissingFilesQueueAll'
INTEGRITYMISSINGFILES = 'IntegrityMissingFiles'
INTEGRITYMISSINGFILESREFRESH = 'IntegrityMissingFilesRefresh'
INTEGRITYCHECKSUMFILES = 'IntegrityChecksumFiles'
INTEGRITYCHECKSUMFILESREFRESH = 'IntegrityChecksumFilesRefresh'
INTEGRITYDELETEREPORTTYPE = 'IntegrityDeleteReportType'
INTEGRITYDELETEREPORTS = 'IntegrityDeleteReports'
@classmethod
def from_json(cls, json_str: str) -> Self:
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -27,7 +27,7 @@ class JobSettingsDto(BaseModel):
"""
JobSettingsDto
""" # noqa: E501
concurrency: Annotated[int, Field(strict=True, ge=1)]
concurrency: Annotated[int, Field(le=9007199254740991, strict=True, ge=1)] = Field(description="Concurrency")
__properties: ClassVar[List[str]] = ["concurrency"]
model_config = ConfigDict(
@@ -1,97 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from generated.immich.openapi_client.models.job_counts_dto import JobCountsDto
from generated.immich.openapi_client.models.queue_status_dto import QueueStatusDto
from typing import Optional, Set
from typing_extensions import Self
class JobStatusDto(BaseModel):
"""
JobStatusDto
""" # noqa: E501
job_counts: JobCountsDto = Field(alias="jobCounts")
queue_status: QueueStatusDto = Field(alias="queueStatus")
__properties: ClassVar[List[str]] = ["jobCounts", "queueStatus"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of JobStatusDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of job_counts
if self.job_counts:
_dict['jobCounts'] = self.job_counts.to_dict()
# override the default output from pydantic by calling `to_dict()` of queue_status
if self.queue_status:
_dict['queueStatus'] = self.queue_status.to_dict()
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of JobStatusDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"jobCounts": JobCountsDto.from_dict(obj["jobCounts"]) if obj.get("jobCounts") is not None else None,
"queueStatus": QueueStatusDto.from_dict(obj["queueStatus"]) if obj.get("queueStatus") is not None else None
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -18,8 +18,10 @@ import re # noqa: F401
import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,17 +29,55 @@ class LibraryResponseDto(BaseModel):
"""
LibraryResponseDto
""" # noqa: E501
asset_count: StrictInt = Field(alias="assetCount")
created_at: datetime = Field(alias="createdAt")
exclusion_patterns: List[StrictStr] = Field(alias="exclusionPatterns")
id: StrictStr
import_paths: List[StrictStr] = Field(alias="importPaths")
name: StrictStr
owner_id: StrictStr = Field(alias="ownerId")
refreshed_at: Optional[datetime] = Field(alias="refreshedAt")
updated_at: datetime = Field(alias="updatedAt")
asset_count: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Number of assets", alias="assetCount")
created_at: datetime = Field(description="Creation date", alias="createdAt")
exclusion_patterns: List[StrictStr] = Field(description="Exclusion patterns", alias="exclusionPatterns")
id: UUID = Field(description="Library ID")
import_paths: List[StrictStr] = Field(description="Import paths", alias="importPaths")
name: StrictStr = Field(description="Library name")
owner_id: UUID = Field(description="Owner user ID", alias="ownerId")
refreshed_at: Optional[datetime] = Field(description="Last refresh date", alias="refreshedAt")
updated_at: datetime = Field(description="Last update date", alias="updatedAt")
__properties: ClassVar[List[str]] = ["assetCount", "createdAt", "exclusionPatterns", "id", "importPaths", "name", "ownerId", "refreshedAt", "updatedAt"]
@field_validator('created_at')
def created_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('owner_id')
def owner_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
@field_validator('refreshed_at')
def refreshed_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
@field_validator('updated_at')
def updated_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictInt
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -26,10 +27,10 @@ class LibraryStatsResponseDto(BaseModel):
"""
LibraryStatsResponseDto
""" # noqa: E501
photos: StrictInt
total: StrictInt
usage: StrictInt
videos: StrictInt
photos: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Number of photos")
total: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Total number of assets")
usage: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Storage usage in bytes")
videos: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Number of videos")
__properties: ClassVar[List[str]] = ["photos", "total", "usage", "videos"]
model_config = ConfigDict(
@@ -83,10 +84,10 @@ class LibraryStatsResponseDto(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"photos": obj.get("photos") if obj.get("photos") is not None else 0,
"total": obj.get("total") if obj.get("total") is not None else 0,
"usage": obj.get("usage") if obj.get("usage") is not None else 0,
"videos": obj.get("videos") if obj.get("videos") is not None else 0
"photos": obj.get("photos"),
"total": obj.get("total"),
"usage": obj.get("usage"),
"videos": obj.get("videos")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -27,15 +27,15 @@ class LicenseKeyDto(BaseModel):
"""
LicenseKeyDto
""" # noqa: E501
activation_key: StrictStr = Field(alias="activationKey")
license_key: Annotated[str, Field(strict=True)] = Field(alias="licenseKey")
activation_key: StrictStr = Field(description="Activation key", alias="activationKey")
license_key: Annotated[str, Field(strict=True)] = Field(description="License key (format: /^IM(SV|CL)(-[\\dA-Za-z]{4}){8}$/)", alias="licenseKey")
__properties: ClassVar[List[str]] = ["activationKey", "licenseKey"]
@field_validator('license_key')
def license_key_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"IM(SV|CL)(-[\dA-Za-z]{4}){8}", value):
raise ValueError(r"must validate the regular expression /IM(SV|CL)(-[\dA-Za-z]{4}){8}/")
if not re.match(r"^IM(SV|CL)(-[\dA-Za-z]{4}){8}$", value):
raise ValueError(r"must validate the regular expression /^IM(SV|CL)(-[\dA-Za-z]{4}){8}$/")
return value
model_config = ConfigDict(
@@ -1,100 +0,0 @@
# coding: utf-8
"""
Immich
Immich API
The version of the OpenAPI document: 1.131.3
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
class LicenseResponseDto(BaseModel):
"""
LicenseResponseDto
""" # noqa: E501
activated_at: datetime = Field(alias="activatedAt")
activation_key: StrictStr = Field(alias="activationKey")
license_key: Annotated[str, Field(strict=True)] = Field(alias="licenseKey")
__properties: ClassVar[List[str]] = ["activatedAt", "activationKey", "licenseKey"]
@field_validator('license_key')
def license_key_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"IM(SV|CL)(-[\dA-Za-z]{4}){8}", value):
raise ValueError(r"must validate the regular expression /IM(SV|CL)(-[\dA-Za-z]{4}){8}/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of LicenseResponseDto from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of LicenseResponseDto from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"activatedAt": obj.get("activatedAt"),
"activationKey": obj.get("activationKey"),
"licenseKey": obj.get("licenseKey")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,7 +20,7 @@ from typing_extensions import Self
class LogLevel(str, Enum):
"""
LogLevel
Log level
"""
"""
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -26,10 +27,17 @@ class LoginCredentialDto(BaseModel):
"""
LoginCredentialDto
""" # noqa: E501
email: StrictStr
password: StrictStr
email: Annotated[str, Field(strict=True)] = Field(description="User email")
password: StrictStr = Field(description="User password")
__properties: ClassVar[List[str]] = ["email", "password"]
@field_validator('email')
def email_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$", value):
raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,10 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -26,14 +28,29 @@ class LoginResponseDto(BaseModel):
"""
LoginResponseDto
""" # noqa: E501
access_token: StrictStr = Field(alias="accessToken")
is_admin: StrictBool = Field(alias="isAdmin")
name: StrictStr
profile_image_path: StrictStr = Field(alias="profileImagePath")
should_change_password: StrictBool = Field(alias="shouldChangePassword")
user_email: StrictStr = Field(alias="userEmail")
user_id: StrictStr = Field(alias="userId")
__properties: ClassVar[List[str]] = ["accessToken", "isAdmin", "name", "profileImagePath", "shouldChangePassword", "userEmail", "userId"]
access_token: StrictStr = Field(description="Access token", alias="accessToken")
is_admin: StrictBool = Field(description="Is admin user", alias="isAdmin")
is_onboarded: StrictBool = Field(description="Is onboarded", alias="isOnboarded")
name: StrictStr = Field(description="User name")
profile_image_path: StrictStr = Field(description="Profile image path", alias="profileImagePath")
should_change_password: StrictBool = Field(description="Should change password", alias="shouldChangePassword")
user_email: Annotated[str, Field(strict=True)] = Field(description="User email", alias="userEmail")
user_id: UUID = Field(description="User ID", alias="userId")
__properties: ClassVar[List[str]] = ["accessToken", "isAdmin", "isOnboarded", "name", "profileImagePath", "shouldChangePassword", "userEmail", "userId"]
@field_validator('user_email')
def user_email_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$", value):
raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/")
return value
@field_validator('user_id')
def user_id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
@@ -88,6 +105,7 @@ class LoginResponseDto(BaseModel):
_obj = cls.model_validate({
"accessToken": obj.get("accessToken"),
"isAdmin": obj.get("isAdmin"),
"isOnboarded": obj.get("isOnboarded"),
"name": obj.get("name"),
"profileImagePath": obj.get("profileImagePath"),
"shouldChangePassword": obj.get("shouldChangePassword"),
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -26,8 +26,8 @@ class LogoutResponseDto(BaseModel):
"""
LogoutResponseDto
""" # noqa: E501
redirect_uri: StrictStr = Field(alias="redirectUri")
successful: StrictBool
redirect_uri: StrictStr = Field(description="Redirect URI", alias="redirectUri")
successful: StrictBool = Field(description="Logout successful")
__properties: ClassVar[List[str]] = ["redirectUri", "successful"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -20,7 +20,7 @@ from typing_extensions import Self
class ManualJobName(str, Enum):
"""
ManualJobName
Manual job name
"""
"""
@@ -32,6 +32,15 @@ class ManualJobName(str, Enum):
MEMORY_MINUS_CLEANUP = 'memory-cleanup'
MEMORY_MINUS_CREATE = 'memory-create'
BACKUP_MINUS_DATABASE = 'backup-database'
INTEGRITY_MINUS_MISSING_MINUS_FILES = 'integrity-missing-files'
INTEGRITY_MINUS_UNTRACKED_MINUS_FILES = 'integrity-untracked-files'
INTEGRITY_MINUS_CHECKSUM_MINUS_MISMATCH = 'integrity-checksum-mismatch'
INTEGRITY_MINUS_MISSING_MINUS_FILES_MINUS_REFRESH = 'integrity-missing-files-refresh'
INTEGRITY_MINUS_UNTRACKED_MINUS_FILES_MINUS_REFRESH = 'integrity-untracked-files-refresh'
INTEGRITY_MINUS_CHECKSUM_MINUS_MISMATCH_MINUS_REFRESH = 'integrity-checksum-mismatch-refresh'
INTEGRITY_MINUS_MISSING_MINUS_FILES_MINUS_DELETE_MINUS_ALL = 'integrity-missing-files-delete-all'
INTEGRITY_MINUS_UNTRACKED_MINUS_FILES_MINUS_DELETE_MINUS_ALL = 'integrity-untracked-files-delete-all'
INTEGRITY_MINUS_CHECKSUM_MINUS_MISMATCH_MINUS_DELETE_MINUS_ALL = 'integrity-checksum-mismatch-delete-all'
@classmethod
def from_json(cls, json_str: str) -> Self:
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional, Union
from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -26,14 +27,21 @@ class MapMarkerResponseDto(BaseModel):
"""
MapMarkerResponseDto
""" # noqa: E501
city: Optional[StrictStr]
country: Optional[StrictStr]
id: StrictStr
lat: Union[StrictFloat, StrictInt]
lon: Union[StrictFloat, StrictInt]
state: Optional[StrictStr]
city: Optional[StrictStr] = Field(description="City name")
country: Optional[StrictStr] = Field(description="Country name")
id: UUID = Field(description="Asset ID")
lat: Union[StrictFloat, StrictInt] = Field(description="Latitude")
lon: Union[StrictFloat, StrictInt] = Field(description="Longitude")
state: Optional[StrictStr] = Field(description="State/Province name")
__properties: ClassVar[List[str]] = ["city", "country", "id", "lat", "lon", "state"]
@field_validator('id')
def id_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$", value):
raise ValueError(r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/")
return value
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,7 +17,7 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -26,9 +26,9 @@ class MapReverseGeocodeResponseDto(BaseModel):
"""
MapReverseGeocodeResponseDto
""" # noqa: E501
city: Optional[StrictStr]
country: Optional[StrictStr]
state: Optional[StrictStr]
city: Optional[StrictStr] = Field(description="City name")
country: Optional[StrictStr] = Field(description="Country name")
state: Optional[StrictStr] = Field(description="State/Province name")
__properties: ClassVar[List[str]] = ["city", "country", "state"]
model_config = ConfigDict(
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictBool
from pydantic import BaseModel, ConfigDict, Field, StrictBool
from typing import Any, ClassVar, Dict, List
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -26,8 +27,9 @@ class MemoriesResponse(BaseModel):
"""
MemoriesResponse
""" # noqa: E501
enabled: StrictBool
__properties: ClassVar[List[str]] = ["enabled"]
duration: Annotated[int, Field(le=9007199254740991, strict=True, ge=-9007199254740991)] = Field(description="Memory duration in seconds")
enabled: StrictBool = Field(description="Whether memories are enabled")
__properties: ClassVar[List[str]] = ["duration", "enabled"]
model_config = ConfigDict(
populate_by_name=True,
@@ -80,7 +82,8 @@ class MemoriesResponse(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"enabled": obj.get("enabled") if obj.get("enabled") is not None else True
"duration": obj.get("duration"),
"enabled": obj.get("enabled")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictBool
from pydantic import BaseModel, ConfigDict, Field, StrictBool
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from typing import Optional, Set
from typing_extensions import Self
@@ -26,8 +27,9 @@ class MemoriesUpdate(BaseModel):
"""
MemoriesUpdate
""" # noqa: E501
enabled: Optional[StrictBool] = None
__properties: ClassVar[List[str]] = ["enabled"]
duration: Optional[Annotated[int, Field(le=9007199254740991, strict=True, ge=1)]] = Field(default=None, description="Memory duration in seconds")
enabled: Optional[StrictBool] = Field(default=None, description="Whether memories are enabled")
__properties: ClassVar[List[str]] = ["duration", "enabled"]
model_config = ConfigDict(
populate_by_name=True,
@@ -80,6 +82,7 @@ class MemoriesUpdate(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"duration": obj.get("duration"),
"enabled": obj.get("enabled")
})
return _obj
@@ -5,7 +5,7 @@
Immich API
The version of the OpenAPI document: 1.131.3
The version of the OpenAPI document: 3.0.1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
@@ -18,8 +18,9 @@ import re # noqa: F401
import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictBool
from typing import Any, ClassVar, Dict, List, Optional
from uuid import UUID
from generated.immich.openapi_client.models.memory_type import MemoryType
from generated.immich.openapi_client.models.on_this_day_dto import OnThisDayDto
from typing import Optional, Set
@@ -29,13 +30,52 @@ class MemoryCreateDto(BaseModel):
"""
MemoryCreateDto
""" # noqa: E501
asset_ids: Optional[List[StrictStr]] = Field(default=None, alias="assetIds")
asset_ids: Optional[List[UUID]] = Field(default=None, description="Asset IDs to associate with memory", alias="assetIds")
data: OnThisDayDto
is_saved: Optional[StrictBool] = Field(default=None, alias="isSaved")
memory_at: datetime = Field(alias="memoryAt")
seen_at: Optional[datetime] = Field(default=None, alias="seenAt")
hide_at: Optional[datetime] = Field(default=None, description="Date when memory should be hidden", alias="hideAt")
is_saved: Optional[StrictBool] = Field(default=None, description="Is memory saved", alias="isSaved")
memory_at: datetime = Field(description="Memory date", alias="memoryAt")
seen_at: Optional[datetime] = Field(default=None, description="Date when memory was seen", alias="seenAt")
show_at: Optional[datetime] = Field(default=None, description="Date when memory should be shown", alias="showAt")
type: MemoryType
__properties: ClassVar[List[str]] = ["assetIds", "data", "isSaved", "memoryAt", "seenAt", "type"]
__properties: ClassVar[List[str]] = ["assetIds", "data", "hideAt", "isSaved", "memoryAt", "seenAt", "showAt", "type"]
@field_validator('hide_at')
def hide_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
@field_validator('memory_at')
def memory_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
@field_validator('seen_at')
def seen_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
@field_validator('show_at')
def show_at_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if value is None:
return value
if not re.match(r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$", value):
raise ValueError(r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/")
return value
model_config = ConfigDict(
populate_by_name=True,
@@ -93,9 +133,11 @@ class MemoryCreateDto(BaseModel):
_obj = cls.model_validate({
"assetIds": obj.get("assetIds"),
"data": OnThisDayDto.from_dict(obj["data"]) if obj.get("data") is not None else None,
"hideAt": obj.get("hideAt"),
"isSaved": obj.get("isSaved"),
"memoryAt": obj.get("memoryAt"),
"seenAt": obj.get("seenAt"),
"showAt": obj.get("showAt"),
"type": obj.get("type")
})
return _obj

Some files were not shown because too many files have changed in this diff Show More